《程序员修炼之道:从小工到专家》读后感(2)

第二章:注重实效的程序员

1.重复的危害

给予计算机两项自相矛盾的知识,能够使代码失效。知识是变化的,系统中的每一项知识都必须具有单一、无歧义、权威的表示,可靠的开发软件,并让我们的开发更易于理解和维护的唯一途径,要遵循DRY原则(不要重复你自己)。

重复的发生分为四点:强加的重复,无意的重复,无耐性的重复,开发者之间的重复。

2.正交性

在计算技术中,正交性用于表示某种不相依赖性或是解耦性。

正交的好处:消除无关事物之间的影响

提高生产率:改动得以局部化,开发和测试的时间得以降低;促进复用;对正交的组件进行组合,生产率会有所提高。

降低风险:有问题的代码被隔离开来:系统更健壮;正交系统很可能能得到更好的测试;不会与特定的供应商、产品,或者死是平台紧绑在一起。

工作中运用正交原则的几种方式:

1.项目团队:把团队划分为有了良好定义的小组,使重叠降至最低。

2.设计:系统应该由一组相互协作的模块组成,每个模块都实现不依赖于其他模块的功能。有时,这些组件被组织为多个层次,每层提供一级抽象。这种分层的途径是设计正交系统的强大方式。因为每层都只使用在其下面的层次提供的抽象,在改动底层实现、而又不影响其他代码方面,你拥有极大的灵活性。我们要思考我们的设计在多大程度上解决了与现实世界中变化的耦合。

3).工具箱与库:引用第三方工具箱与库时,要注意保持系统的正交性,明智的选择技术。

4).编码:让代码保持解耦;避免使用全局数据,避免编写相似的函数。

5).测试:模块级(单元)测试要容易规定和进行。让每个模块都有自己的、内建在代码中的单元测试,并让这些测试作为常规构建中的一部分自行运行。

文档:显著的改变外观而不改变内容。

6)认同正交性:运用DRY原则,使系统中的重复降至最小;运用正交性原则,降低系统各组件之间的相互依赖性,则我们开发的系统会变得更为灵活。更易于理解、调试、测试和维护。

3.可撤销性

可撤销性: 考虑可撤销性,不必做出许多关键的,不可逆转的决策,可以让我们应对一些突如其来的变化。

灵活的架构:保持代码的灵活性考虑维持架构,部署及供应商集成等领域的灵活性。

4.曳光弹

在黑暗中发光的代码:用曳光弹找到目标,让我们能快速、直观和可重复的从需求出发,满足最终系统的某个方面要求。优点是:用户能够及早看到工作的东西开发者构建了一个他们能在其中工作的结构;你有了一个工作平台;你有了一个可用于演示的东西;你将更能感受到工作的进展。

曳光代码方法处理的是不同的问题,你需要知道应用怎样结合成--个整体你想要向用户演示,实际的交互是怎样工作的,同时你还想要给出一个架构骨架,开发者可以在其上增加代码

原文地址:https://www.cnblogs.com/ywqtro/p/11686444.html