第3章:意图向导的编程
1. 意图向导的编程(Programming by Intention)是极限编程的核心理念之一,意识是在编写代码的时候清晰地表明自己的意图。
2. 需要选择语义清晰的(semantically transparent)名字,也就是说这些名字要达意。
3. 使用名词或名词短语作为类的名字。
4. 使用形容词或具有一般性的名词或名词短语来为结构命名(书中不推荐用I开头的命名,但是我是用C#的)。
5. 使用动词或动词短语作为方法名。
6. 使用公认的取值方法(accessor)和赋值方法(mutator)的命名习惯。
7. 不要在方法名中保留多余的信息。
8. 使用名词或者名词短语作为变量名。
9. 不要在方法名中保留多余的信息。
10. 使用名词或者名词短语作为变量名。
11. 怎么简单怎么来(Do the Simplest Thing)。
12. 使用一些重构方法,使代码意图明确:把临时代码替换成查询方法(类似于抽取方法);切分临时变量(不要复用临时变量);消除对参数的赋值。
13. 要作有根据的假设(warranted assumption),只有事实证明有必要,才添加代码。
14. 每个参与项目的任都应当使用一种共同的词汇(Common Vocabulary)来谈论与领域和系统有关的各种问题。
15. 测试优先:测试通过,那么工作就完成了,避免过度设计(overengineering)而把系统设计得更加复杂。
16. 避免不必要的注释,正当的注释如下:不完整的代码(TODO: The tree should be balanced after the insertion);有疑义代码需要复查(CODE DEBT: The looping structure is a bit convoluted.);重构无法使其足够清楚(NEEDS WORK: I tried extract method, but it’s still awkward. Maybe refactoring to a Strategy would clean it up?);使用了某种非同寻常的算法(注明那里可以找到这种算法即可);性能调整(防止别人把有意的技巧性代码重构,一般只在性能成为瓶颈时进行);类注释(简单解释类的存在意义及用途)。