《程序员修炼之道——从小工到专家》 第二章部分读书笔记

1.重复的危害  就重复产生的种类,可以分类为:

(1) 强加的重复  信息的多种表示,对于同一信息我们可以用不同形式表示。这在一定程度上造成了重复,就这个问题而言,我们可以编写简单的过滤器和代码生成器,用公共的元数据表示结构。

                          代码中的文档,对于一些低级知识不需注释,对于一些高级知识才需要注释,这就可以避免了重复。

                          文档与代码, 对于文档的设计,我们可以自动生成文档,而不需要每次都去写。

                          语言问题,在换用语言时,会明显的产生各种各样的重复。对于这种情况没有太多的解决方法,只能通过人为的后期修改。

(2)无意的重复 这种重复的要点在于一些变量的定义时,无意的进行了重复,一些类的定义属性进行了重复。这种重复很难避免,但这要我们有着良好的书写习惯。

(3) 无耐性的重复 在某些项目很赶的时候,我们会选择去复制之前的代码并且做出简单的修改。但这种其实也是一种重复,需要我们养成很好的习惯。

(4) 开发者之间的重复 在编写一个具体项目时,会有不同的开发者。如果这两者之间缺乏交流,那么最后可能会导致某个功能被多次重复实现。要解决这种情况最好的办法就是鼓励开发者之间交流。

2.正交性 

    所谓的正交性,是从数学上学来的概念。在计算机中,可以解释为某种不相依赖性或者说解耦性。这种正交系统有着很多明显的好处:可以提高生产率,降低风险。那么我们应该怎么在工程中应用这种思想呢?有着这么几种方式:项目团队,设计,工具箱与库 ,编码,测试,文档。可以看到,不同情况下正交性的实现方法也不相同。我们应该具体情况具体而论,不能一概而论。在工作中尽力做到实现正交性,增加解耦性。

3.可撤销性

  工程师都喜欢能够有单一的方法来解决一个问题,然而很遗憾,在我们的现实生活中,总是会有各种各样的变动。在这样的情况下,我们就需要让我们的代码具有可撤销性。 

  所谓的可撤销性,指的是在开发初期就做好一些准备,让代码变得更加灵活,以便一些临时更改。在制作架构时,可以让架构更加的灵活可变,在这样的情况下我们的代码就具有了可撤销性,不会让代码十分不可逆。

4. 曳光弹

  所谓的曳光弹,放在工程中其实就是用来方便前期测试的一个架构。只有一些框架和基本功能,可以用来测试框架里一些基本功能,曳光代码的存在只是为了前期的测试,他只是具有较少的功能,但并不代表他并不能执行,就这点来说,曳光代码其实也是整体架构的一部分,他的存在只是为了测试。

 

你可能感兴趣的:(《程序员修炼之道——从小工到专家》 第二章部分读书笔记)