读书笔记
这一周写写注重实效的程序员
重复的危害:
我个人觉的重复是有两个层次的,
第一个层级就是直接copy代码,这个是最低级别的重复,有经验的人基本都不会干这样的事情。
第二个层级就是对于一些业务算法的重复。
当A 与B之间的对于一个业务的实现方法基本一致,但是与C的差异特别大的时候,A与B之间最好不进行依赖的时候,这个重复怎么去解决?
这个应该通过一定的重构解决,说到重构,我就想到代码的注释,其实在代码的维护过程中,注释是对于维护人员非常重要的信息,可以很容易的看懂代码,但是如果这个注释本来就是有问题的,就另当别论了。注释也是需要维护的,所以也是不应该重复的,经常看到很多的地方在接口定义的地方写了注释了,在方法的实现的时候还写个注释,这就有点为了注释而注释了,定义个变量也写个注释,感觉这样的注释还是少点比较好。
感觉很多的时候的重构只是一个代码的迁移。把一个比较长的方法,只是拆分成了几个方法就算是重构了一回,很简单的例子就是方法的参数使用到一些hashMap ArrayList的定义的时候,这个方法基本就是通过IDE的方式迁移过来的。
编码:编写害羞的代码,可以保持模块之间的独立性。如果一段算法可以在另外一个地方使用到的时候,而这一段代码又是私有的,这就又有些代码的重复。
避免使用全局变量:可能是因为我一直多多线程的一种恐惧心理,我基本不太用全局变量。全局变量会使得多个方法之间有一定的耦合性,而且在多线程的情况下,很难去控制这个变量的并发。当然定义一些常量的时候还是需要使用全局变量的。