大话重构——改善代码

       前段时间,进行项目验收的时候。现在项目已经上线了,需要对线上的程序,添加一些新的功能——日志,来为之后的开发提供一些统计数据。

日志最重要的两个功能:

       一、跟踪线上程序出现bug的根源
       二、可以根据日志做数据统计
       记得深刻的就是,需要添加日志统计的功能,既然如此,系统的日志如何写现在一个问题。

可采用的两种方案:

       一是手写日志,这样需要对已有的代码内写一些日志输出。
       二是加入AOP来打印日志。
       这两种方式,肯定是第二种方式修改的方便。而手写日志,肯定会破坏开闭原则。因此,我们尝试使用AOP打印日志,曾经写了一部分模块。也部署到生产环境上去了。使用了一段时间,发现这些日志文件并没有提高我们在生产环境上找问题的效率。于是乎,决定又选择了几个模块,采用了手写日志的方式。这样的确提高效率,但是代码看起来就不友好了。
       师父,了解了这两种情况之后,仍然要求我用AOP的方式加日志。然后给我推荐了一本书《大话重构》.
       看完这本书之后,感觉这本书非常适合我现在遇到的问题的。接下来反思一下。
       采用手写日志的方式,是由于方法太过沉重。而使用AOP写日志的前提,是代码得功能单一、简单。这样才能很好的定位。所以我们要改善我们的代码。
当然,如果对整个项目进行重构的话,那成本可就花费的有些大了,领导肯定不同意。所以我们需要建立重构的意识。这个重构是一种习惯。

重构的原则:

       1、小步快跑:一次一小步的修改模式,没修改一点点就进行一个测试,再修改一点点再测试
       2、两顶帽子:一顶是只重构源代码而不增加新功能,另一顶帽子是增加新功能以实现新需求
       3、糟糕设计零容忍度:先重构代码或系统使之适应新的需求,再顺理成章的去实现这些新需求

重构的流程

Created with Raphaël 2.1.0 开始 确定本次要重构的代码 修改一个小功能的代码 对修改代码的测试是否通过? 对源代码的重构是否完成? 在重构后的代码中添加本次新需求 对新需求的测试是否通过? 对新程序的所有测试是否通过? 结束 yes no yes no yes no yes no

重构的方法:

1、分解大函数
2、拆分大对象
3、提高代码复用率
4、发现程序的可扩展点
5、降低程序依赖度——多使用设计模式
6、分层

总结:

        通过上面这种方法,把代码的可读性 耦合性都降低了。而且还可以使用AOP方法添加日志。后期维护的工作也会方便很多。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值