程序员修炼之道阅读笔记2
第二章 注重实效的途径
7 重复的危害
DRY: Don't repeat yourself.
这句话可以说是最最重要的代码原则。当你为了追求绩效而去单纯的拷贝某一段现有的代码,而不做任何逻辑抽离和修饰时,你就已经是个『失足』程序员了。
当你觉得复用变得困难时,再退一步审视一下自己的代码,肯定有重构的空间。
8 正交性
几何概念,互相垂直的两条线就是正交的。
反应在软件设计中意味着,当一个组件的修改完全不会牵动另外一个时,这两者即正交。
避免耦合,分层分模块,善用设计模式。让系统富有弹性,可以随需应变。
9 可撤销性
还是系统的可变性,是否可以快速应付其中一些改变而快速改变。一言以蔽之:面向接口编程。
10 曳光弹
当你狙击时,你需要曳光弹帮你定位目标。一言以蔽之:做大型项目时,先出一个简陋可运行可展示的版本。不要在黑夜中盲狙。
11 原型与便笺
作为曳光弹的替代,可以使用原型来架构。这方面实践不多。
12 领域语言
『语言的界限就是一个人世界的界限』维特根斯坦的这句名言就足够描述了。java程序员会习惯性的啰嗦,c++程序员可能是最严谨的。
13 估算
敏捷团队的程序员每时每刻都在估算,估算这个功能需要多少个story point,估算这次重构需要多久。当你觉得难以估算工作量的时候,试着拆分。敏捷团队需要每个人每时每刻都知道自己和项目的进度,知道自己所处的位置。