Clean Code
A Handbook of Agile Software Craftsmanship
[美] Robert C. Martin
命名规则
1. 名副其实
命名的变量名称要具体,不要用通用的名称,如theList
,getItem()
等
// Bad Name
int d; //太简短,反而需要注释来说明
// Good Name
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
2. 避免误导
不要使用专有名词(缩写)来给变量命名,避免产生误导。
例如,hp、aix 和 sco 都不应该用作变量名(Unix平台的专有名词)
accountList
:最好变量就是List
类型,不然使用accountGroup
,bunchOfAccounts
,甚至使用accounts
都要好一些。
同一个模块内的不同用途的函数的名称最好差异化比较明显一点。
例如
XYZControllerForEfficientHandlingOfStrings
XYZControllerForEfficientStorageOfStrings
差异应该尽可能明显,最好是通过自动补全工具能够迅速找到想要键入的函数名称。
小写字母l和大写字母O,不要用作单个变量名。(提高可读性)
【其实使用某些编程专用字体,能够很好解决问题】
3. 做有意义的区分
- 使用读得出来的名称
- 使用可搜索的名称
- 避免使用编码
6.1 匈牙利语标记法
6.2 成员前缀
6.3 接口和实现 - 避免思维映射
- 类名
- 方法名
- 别扮可爱
- 每个概念对应一个词
- 别用双关语
- 使用解决方案领域名称
- 使用源自所涉问题领域的 名称
- 添加有意义的语境
- 不要添加没用的语境
需要良好的描述技巧和共有文化背景。