软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。
第一章 整洁代码
-
应该如何来考察代码?要从各个方向来考察这些代码。从顶向下,从底往上,从里而外。
-
为什么要写糟糕的代码呢?勒布朗(LeBlanc)法则:稍后等于永不(Later equals never)。
-
整洁代码的艺术:明确整洁代码的意义、学会分辨优劣代码、增强代码“整洁感”意识。
-
“整洁的代码只做好一件事,糟糕的代码想做太多事”;糟糕的代码意图混乱、目的含混。整洁的代码力求集中,每个函数、每个类和每个模块都全神贯注于一事,完全不受四周细节的干扰和污染。
-
简单代码:1)能通过所有测试;2)没有重复代码;3)体现系统中的全部设计理念;4)包括尽量少的实体,比如类、方法、函数等。
第二章 有意义的命名
-
名副其实:选一个好名字要花时间,但省下来的时间比花掉的多。注意命名,而且一旦发现有其他更好的名称,就换掉旧的。
-
变量、函数或类的名称应该已经答复了所有的大问题。它该告诉你,它为什么会存在它做什么事,应该怎么用。如果名称需要注释来补充,那就不算是名副其实。
-
避免误导:以同样的方式拼写出同样的概念才是信息。拼写前后不一致就是误导。必须避免留下掩藏代码本意的错误线索。应当避免使用与本意相悖的词。
-
做有意义的区分:不要定义,没有提供正确信息,没有提供导向作者意图的线索的命名。如果名称必须相异,那其意思也应该不同才对。
-
使用读得出来的名称,使用可搜索的名称。单字母名称和数字常量有个问题,就是很难在一大篇文字中找出来。长名称胜于短名称,搜得到的名称胜于用自造编码代写就的名称。单字母名称仅用于短方法中的本地变量。名称长短应与其作用域大小相对应。
-
避免使用编码:不必用前缀来标明成员变量。应当把类和函数做得足够小,消除对成员前缀的需要。
-
聪明程序员和专业程序员之间的区别在于,专业程序员了解,明确是王道。专业程序员善用其能,编写其他人能理解的代码,避免思维映射。
-
类名:类名和对象名应该是名词或名词短语。类名不应当是动词。
-
方法名:方法应当是动词或动词短语。可适当加上get、set、is等前缀。
-
言到意到。意到言到。每个抽象概念选一个词,并且一以贯之。函数名称应当独一无二,而且要保持一致,这样你才能不借助多余的浏览就找到正确的方法。避免将同一单词用于不同的目的。
-
添加有意义的语境:需要用有良好命名的类、函数或名称空间来放置名称,给读者提供语境。
-
不要添加没用的语境。