如果名称需要注释来补充,那就不算是名副其实。
不要使用魔数。
别用accountList来指称一组账号,除非它真的是List类型。List对程序员有特殊意义,最好用accountGroup甚至accounts都会更好。
单独的小写字母l和大写字母O作为变量名不合适,容易误导。
做有意义的区分:Product类,ProductInfo或ProductData类,Info和Data就像a、an和the一样,是意义含混的废话。废话都是冗余的。Variable一词永远不应当出现在变量名中。Table一词永远不应当出现在表名中。
使用读得出来的名称。
使用可搜索的名称。长名称胜于短名称。单字母名称仅用于短方法的本地变量。
把类型或作用域编进名称里面,徒然增加了解码的负担。带编码的名称通常也不便发音,容易打错。
Java程序员不需要类型编码。对象是强类型的,代码编辑环境已经先进到在编译开始前就侦测到类型错误的程度。匈牙利标记法出现在编译器不做类型检查的年代。
成员前缀m_是旧代码时代的标志物。
接口不要有前导字母I,宁愿实现多一个impl的后缀。
类名:类名和对象应该是名词或名词短语,如Customer、WikiPage、Account和AddressParser。避免使用Manager、Processor、Data或Info这样的类名。类名不应该是动词。
方法名应当是动词或动词短语,如postPayment、deletePage或save。
不要添加没用的语境。比如加一些没用的大写模块前缀。
取好名字最难的地方在于需要良好的描述技巧和共有的文化背景。