clean code读书笔记
命名,很多人戏称为编程中最难的事情。从实践经验出发来看,一个好的命名能够让代码阅读者迅速的知道代码的实际用途,而坏的命名不仅仅是让人摸不着头脑,而且可能误导他人。
本文主要是clean code第二章有意义的命名的笔记,该章节系统的讲述了什么才是一个好的名字。
-
名副其实
如果命名需要注释,则不是一个好的命名。
命名需要表达出准确的含义,不应该使用magic num或者i、j、k这类无意义的变量名。
-
避免误导
0和O、1、I和l。这类视觉上容易混淆的名字不需要使用。
假设存在一个vector,里面存储这actor_rid,但是你命名为actor_list,导致阅读者误认为是用链表实现的。
-
做有意义的区分
类似a1、a2、a3不能够带来任何信息的变量命名
类似thexx、xxdata、xxinfo、xxobject这类没有意义的前缀、后缀
不使用匈牙利命名法带上类型信息,现在ide随时可以看到类型
变量的命名需要带有含义,不要带上冗余的无效的信息。
-
使用读得出来的名称
如果变量难易阅读的话,对阅读者总是负担,难以记住也难易和他人交流
-
使用可搜索的名称
作用域越大变量名越长,便于搜索同时不会重复。
-
避免使用编码
匈牙利命名法在现代ide没有必要,同时影响ide的自动补全,修改类型名同时需要修改变量名
类似m_的前缀没有必要
-
避免翻译
缩写
-
类名
类名应该是名词或者名词短语,不应该是动词
-
方法名
方法名应该是动词或者动词短语,类似set_xx、is_xx
-
别扮可爱
不要使用难以联想到的词,即使你认为很精妙,直接了当的命名。
-
每个概念对应一个词
controller、manager、driver。英语中有很多语义相似的词语,代码中统一使用一个词来描述。
-
不使用双关
双关代表者二义性。比如add,有可能是insert的意思,有可能是append的意思。
-
使用解决方案领域名称
计算机科学属于、算法名、模式名。使用领域内专有名词利于有共同经验的人理解程序
-
使用源自所涉问题领域名称
我们是游戏编程,有很多游戏专有名词。比如exp、level、dps等,更业务的代码使用这些名词易于理解
-
添加有意义的语境
将相关的变量设置统一的前缀、后缀,建立语境。
-
不要添加没用的语境
比如给同一个项目里的所有类添加上项目名称。