《代码整洁之道》——(1)有意义的命名
目录
1、什么是整洁代码
我喜欢优雅和高效的代码,代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省的引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。
糟糕的代码引发混乱!别人修改糟糕的代码时,往往会越改越烂!
整洁的代码应可由作者之外的开发者阅读和增补。它应该有单元测试和验收测试。它使用有意义的命名。它只提供一种而非多种做一件事的途径。它只有尽量少的依赖关系,而且要明确的定义和提供清晰、尽量少的API。
简单代码,依其重要顺序:
- 能通过所有测试
- 没有重复代码
- 体现系统中的全部设计理念
- 包括尽量少的实体,比如类、方法、函数等。
2、有意义的命名
避免误导
程序员必须避免留下掩藏代码本意的错误线索。应当避免使用与本意相悖的词。
提防使用不同之处较小的名称。
做有意义的区分
如果程序员只是为满足编译器或解释器的需要而写代码,就会制造麻烦。
废话都是冗余。Variable一词永远不应当出现在变量中。Table一词永远不应当出现在标明中。
使用读得出来的名称
使用可搜索的名称
单字母名称仅用于短方法中的本地变量。名称长短应与其作用域大小向对应。若变量或常量可能在代码中多处使用,则应赋其以便于搜索的名称。
避免思维映射
聪明程序员和专业程序员之间的区别在于,专业程序员了解,明确才是王道。专业程序员善用其能,编写其他人能理解的代码。
类名
类名和对象名应该是名称或名称短语。
方法名
方法名应当是动词或动词短语。属性访问器、修改器和断言应该根据其值命名。
每个概念对应一个词
别用双关语
避免将同一单词用于不同目的。同一术语用于不同概念,基本上就是双关语了。
使用源自所涉问题领域的名称。
添加有意义的语境
很少有名称是能自我说明的——多数都不能。反之,你需要用良好的命名的类、函数或名称空间来放置名称,给读者提供语境。如果没这么做,给名称添加前缀就是最后一招了。
不要添加没用的语境
只要短名称足够清楚,就要比长名称好。别给名称添加不必要的语境。