目录
第一章《整洁代码 》
这章先是给我们传递一个观点:整洁代码是十分有必要的。然后就列举了几位java大师级人物对整洁代码的定义和看法。
真正有用的就是这些大师人物的观点,都是经过几十年的编程经验总结而成的,下面我再将这些观点进行总结,得到以下几个“真理”:
- 尽量减少依赖关系,便于维护
- 简单直接,充满了干净利落的抽象和直截了当的控制语句。
- 能够全部运行通过,并配有单元测试和验收测试
- 没有重复的代码(提取公共方法和公共类)
- 写的代码能够完全提现我们的设计理念(类、方法、属性的命名)
第二章《 有意义的命名》
● 在给 标识符 命名的时候应该选择能够体现本意的名称,最好能体现该名称是干嘛的,有什么作用,做什么事情,如何使用等等。 这样可以让人更容易理解和修改代码。注意: 在阅读或修改过程中,如果发现有更好的名称, 就要换掉旧的。
举个栗子:以下的这句代码里的d就不算是个好命名。名称d 什么都没说,它没引起我们对时间消逝的感觉,更别说单位是天了:
int d; // elapsed time in days || 经过了几天时间
我们应该选择这样的指明了计量对象和计量单位的名称:
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
● 我们应该避免留下隐藏代码本意的错误线索,也应该避免使用与本意相悖的词。例如,别用accountList来指一组账号,除非它真的是List类型,用accountGroup、bunchOfAccounts,或者直接用accounts,都是更好的选择。
尽量提防长得太像的名称。想区分XYZControllerForEfficientHandlingOfStrings和XYZControllerForEfficientStorageOfStrings,会花费我们太多的时间。因为这两个词,实在太相似了。
注意: 不要用 小写字母 “ l ” 和 " O" 做变量名,特别是组合使用的时候。
● 尽量避免使用数字系列命名(a1、a2…….aN)。这样的名称纯属误导,因为很多时候完全没有提供正确的信息,没有提供导向作者意图的线索。
废话是另一种没有意义的区分。如果我们有一个Product类,还有一个ProductInfo或ProductData类,那么他们的名称虽然不同,但意思却无区别。这里的Info、Data就像a、an和the一样,是意义含混的废话。
注意,只要体现出有意义的区分,使用a、the这样的前缀就没错。例如,将a用在域内变量,把the用于函数参数。
● 我们要使用读得出来的名称。如果名称读不出来,讨论的时候就会不方便且很尴尬,甚至让旁人觉得很蠢。
例如,变量名称是beeceearrthreecee,讨论的时候读起来简直像没吃药。
单字母和数字常量有个问题&#