前段时间,进行项目验收的时候。现在项目已经上线了,需要对线上的程序,添加一些新的功能——日志,来为之后的开发提供一些统计数据。
日志最重要的两个功能:
一、跟踪线上程序出现bug的根源
二、可以根据日志做数据统计
记得深刻的就是,需要添加日志统计的功能,既然如此,系统的日志如何写现在一个问题。
可采用的两种方案:
一是手写日志,这样需要对已有的代码内写一些日志输出。
二是加入AOP来打印日志。
这两种方式,肯定是第二种方式修改的方便。而手写日志,肯定会破坏开闭原则。因此,我们尝试使用AOP打印日志,曾经写了一部分模块。也部署到生产环境上去了。使用了一段时间,发现这些日志文件并没有提高我们在生产环境上找问题的效率。于是乎,决定又选择了几个模块,采用了手写日志的方式。这样的确提高效率,但是代码看起来就不友好了。
师父,了解了这两种情况之后,仍然要求我用AOP的方式加日志。然后给我推荐了一本书《大话重构》.
看完这本书之后,感觉这本书非常适合我现在遇到的问题的。接下来反思一下。
采用手写日志的方式,是由于方法太过沉重。而使用AOP写日志的前提,是代码得功能单一、简单。这样才能很好的定位。所以我们要改善我们的代码。
当然,如果对整个项目进行重构的话,那成本可就花费的有些大了,领导肯定不同意。所以我们需要建立重构的意识。这个重构是一种习惯。
重构的原则:
1、小步快跑:一次一小步的修改模式,没修改一点点就进行一个测试,再修改一点点再测试
2、两顶帽子:一顶是只重构源代码而不增加新功能,另一顶帽子是增加新功能以实现新需求
3、糟糕设计零容忍度:先重构代码或系统使之适应新的需求,再顺理成章的去实现这些新需求
重构的流程
重构的方法:
1、分解大函数
2、拆分大对象
3、提高代码复用率
4、发现程序的可扩展点
5、降低程序依赖度——多使用设计模式
6、分层
总结:
通过上面这种方法,把代码的可读性 耦合性都降低了。而且还可以使用AOP方法添加日志。后期维护的工作也会方便很多。