发布于 

《代码大全》阅读笔记

  1. 架构应该模块化,以便在替换为新用户界面时不影响业务规则和程序的输出部分。例如砍掉交互式界面的类,插入一组命令行的类,这种替换能力很有用,命令行界面便于单元级别和子系统级别的软件测试。

  2. 程序中不应有任何环形关系,比如说A类使用了B类,B类使用了C类,而C类又使用了A类。循环依赖会让代码难以进行单独测试,因为无法独立地测试A类或B类或C类。

  3. 松散耦合的关键之处在于,一个有效的模块提供出了一层附加的抽象旦你写好了它,你就可以想当然地去用它。这样就降低了整体系统的复杂度,使得你可以在同一时间只关注一件事。如果对一个模块的使用要求你同时关注好几儿件事一其内部工作的细节、对全局数据的修改、不确定的功能点等一一一那么就失去了抽象的能力,模块所具有的管理复杂度的能力也削弱或完全丧失了。

  4. 好的程序要适应变化,可以找出容易变化的项目,将它们独立出来,做成模块,这样就可以在不影响其他部分的情况下,对这些模块进行修改。

  5. 如果使用了变成语言的非标准扩展,需要把这样的扩展单独隐藏到某个类里,到了新的环境可以用自己写的代码取代它,同样的,如果使用了并非在所有环境中都可用的子程序库,请把这些子程序隐藏在一个接口的后面,为新环境做好准备。

  6. 把困难的设计区域和构建区域隐藏起来,因为代码可能涉及得很差需要重做,将它们隔离起来,把其拙劣的设计和构建对系统其余部分的可能影响降到最低。