代码整洁之道(Clean Code)—读书笔记
第一章: 整洁代码
为什么还要关注代码, 糟糕的代码及其恶劣影响, 什么是整洁的代码
为什么会有糟糕的代码, 为什么要整洁代码
美国童子军军规: 让营地比你来时更干净。
第二章:有意义的命名
变量名的命名建议:
- 有具体意义,可以自解释。 自解释:根据变量名,可以推断出变量的作用,以及怎么用。
- 变量名间的意义区别应比较明显。这其实是上一条的进一步限制。 (比如 ProductData和ProductInfo,就不那么容易区分它们的意义。)
- 避免误导程序员。
1. 变量名中尽量不要包含 程序员敏感的词汇 。 (比如 accountList中的List。)
2. 应该避免变量名过于相似。 (既不利于程序员分辨,也不利于IDE自动代码完成。)
自动代码完成,即IDE根据输入的不完整的变量名,寻找匹配的变量名,并提示给用户。
- 能读得出来。 便于交流。
- 可搜索。 变量名在适度的情况下,长一点比较好。而且名称的长短应与其作用域大小相对应。
- 避免使用编码。
1. 匈牙利语标记法(Hungarian Notation,HN)。 如果是强类型语言,IDE在编译前就可以侦测到类型错误,所以没必要用HN。
2. 成员前缀。(m_ ) 人们很快就无视前缀。
3.接口和实现。 如果一定要用,就用ShapeFactoryImpl。
- 每个概念对应一个词。 避免同意堆代码中,既有controller,又有manager,还有driver。容易使人困惑。
- 当变量名脱离语境,会产生理解困难时,添加有意义的语境。 (比如:有一系列变量firstName,lastName,state,其中state要是脱离语境,就不那么容易理解了。)
PS:不要添加没有意义的语境。 这句看上去像是废话,但是人们有时会不自觉的这么做。
比如:有个项目为 加油站豪华版(Gas Station Deluxe),里面很多类就变成:GSDAccountAddress等。
(未完,待续,希望大家一起讨论。)