2.1介绍
软件命名随处可见,函数、变量。。。
2.2名副其实
变量、函数、类的命名应该已经告诉你做什么事,怎么用等大问题,这才是名副其实。
如果名称需要注释来补充,那就不算是名副其实。
给人模糊的感觉不在于代码的简洁度,而在于代码的模糊度,无法直观了解到它该干嘛。
魔术数:程序设计中直接写在代码中的具体数字,虽然作者可以了解其意义,但对别的程序员来讲是说难以理解的。
程序中应该避免:数值的意义难以理解,数字需要变动的时候,可能要改的地方不止一个。
2.3避免误导
避免使用与本意相悖的词,避免使用具体特定意义的词语。
2.4做有意义的区分
废话或者以充数为目的的错误的拼写是无意义的。有意义的的区分是以读者能鉴别不同之处的的方式来区分。
2.5使用读得出来的名称
命名名称的时候要以每个人读得出其意义为标准。
2.6使用可搜索的名称
单字母名称和数字难以搜索,或容易逃过搜索,容易造成错误。
名称长短应与其作用域大小相对应,若变量或常量在程序中多处使用,则应赋其以便于搜索的名称。
2.7避免使用编码
把类型或作用域编进代码里面,徒然增加了解码的负担,纯属多余的负担,同时带编码的名称通常也不变发音,容易打错。
2.7.1匈牙利语标记法
匈牙利语标记法(Hungarian Notation)HN。
随着时代的进步和现代编程语言的丰富类型系统,人们趋向于使用更小的类、更短的方法,变量的定义在视野范围之内,所以如今HN和其他类型编码形式纯属多余。
2.7.2成员前缀
把类和函数做得足够小,消除对成员前缀的需要。
2.7.3接口和实现
有时候也会采用编码的特殊情形比如接口和实现,更应该用容易识别的命名。
2.8避免思维映射
不应当让读者在脑海里把你的名称翻译为他们所熟知的名称,比如单字母变量,尽可能避免使用,除了循环变量之外。
编写代码时,明确是王道,编写其他人能理解的代码。
2.9类名
类名和对象应该是名词或名词短语,类名不应该是动词。
2.10方法名
方法名应该是动词或动词短语,属性访问器、修改器或断言应根据其值命名,按照相关依据加上get、set、is前缀,同时应该将相应的构造器设置为private。
2.11别扮可爱
命名时不可为了好玩而耍宝,需要明确意义。要做到言道意到,意到言道,见其言知其意。
2.12每个概念对应一个词
给每个抽象概念选一个词,并且一以贯之,避免在程序中用多种方式命名同一个东西,也即一词一义。
2.13别用双关词
双关语:同一术语用于不同的概念。程序中避免将同一单词用于不同目的。
2.14使用解决方案领域名称
代码是给程序员来读的,所以应该用程序员领域的名词来命名,取一个技术性的名称是最靠谱的方法。
2.15使用源自所涉及问题领域的名称
如果无法使用程序员所熟悉的术语来命名,就应采用从所涉问题领域而来的名称。
2.16添加有意义的语境
命名时应该用良好命名的类、函数、名称空间来放置名称,给读者提供语境。
2.17不要添加没用的语境
只要短名称足够清楚,就要比长名称好。别给名称添加不必要的语境,精确正是命名的要点。
2.18最后的话
取好一个命名难在需要良好的技巧和相同的文化背景,尝试以上的规则,去练习它,实践它。