1.有意义的命名
1.1名副其实
注意命名,而且一旦发现有更好的名称,就换掉旧的。
变量、函数或类的名称已经答复了所有的大问题。它该告诉你,它为什么会存在,它做什么事,应该怎么用。如果名称需要注释来补充,它就不算是名副其实。
1.2避免误导
1.3做有意义的区分
如果以数字系列命名(a1、a2、a3、aN)毫无意义
废话是另一种没意义的区分。假如有一个Product类,如果还有一个ProductInfo或ProductData类,那它们的名称虽然不同,意思却毫无区别。Info和Data就像a、an和the一样。
废话都是冗余。Variable一词永远不应当出现在变量名中。
1.4使用读得出来的名称
1.5使用可搜索的名称
单字母名称和数字常量有个问题,就是很难在一大片文字中找出来。
找MAX_CLASSES_PER_STUDENT很容易,但找7就麻烦了。
单字母名称仅用于短方法中的本地变量。名称长短应与其作用域大小相对应。若变量或者常量可能在代码中多处使用,则应赋予其便于搜索的名称。
1.6避免使用编码
1.7避免思维映射
不应当让读者在闹钟把你的名称翻译为他们熟知的名称。
单字母变量名就是个问题。在作用域较小,也没有名称冲突时,循环计数器自然有可能被命名为i或j或k。但这并不是一个好办法
1.8类名
类名和对象名应该是名词或名词短语,如Customer、WikiPage、Account和AddressParser。
避免使用Manager、Processor、Data或Info这样的类名、类名不应当是动词
1.9方法名
方法名应当是动词或动词短语,如postPayment、deletePage或save。属性访问器、修改器和断言应该根据其值命名。
重载构造器时,使用描述了参数的静态工厂方法名,例如
Complex fulcrumPoint = Complex.FromRealNumber(23.0);
通常好于
Complex fulcrumPoint = new Complex(23.0);