2.1 介绍
2.2 名副其实
名称告诉是什么
一旦发现有更好的名称,就换掉旧的
2.3 避免误导
- 名称中写出容器类型名,如List,用
accountGroup不用accountList - 使用不同之处较小的名称
2.4 做有意义的区分
数字系列
废话
- 杜绝废话 name和nameString, customer和customerInfo, money和moneyAccount
- Info和Data是废话
2.5 使用读得出来的名称
2.6 使用可搜索的名称
单字母名称仅用于短方法中的本地变量。名称长短应与其作用域大小相对应。
2.7 避免使用编码
2.7.1 不要用类型编码
2.7.2 成员前缀
2.7.3 接口和实现
特殊情况,如抽象工厂,用实现 shapeFactoryImp ,不用 IshapeFactory
即:不要对接口编码
2.8 避免思维映射
让其他人也能理解
2.9 类名
名词 如 Customer , WikiPage , Account , AddressParser ,
避免 Manager , Processor , Data , Info
2.10 方法名
动词 get , set , is
命名方式保持一致,使用与模块名一脉相承的短语、名词和动词给函数命名。——使用类似的措辞。
重载构造器,使用描述了参数的静态工厂方法名,不要直接new,可以把构造器设置为private,强制使用这种命名手段。
public class Complex {private float realNumber;public static fromRealNumber(float realNumber) {Complex complex = new Complex();complex.setRealNumber(realNumber);return complex;}private Complext() {}}
2.11 别扮可爱
2.12 每个概念对应一个词
例如使用 fetch , retrieve , get 来给在多个类中的同种方法命名。
没有本质上的区别,get是美式英语,fetch是英式英语,只要统一一种即可。
2.13 别用双关语
例如相加用了 add ,添加就另用 insert 或 append
2.14 使用解决方案领域名称
用技术名称
2.15 使用源自所涉问题领域的名称
即业务。当代码与所涉问题领域贴近时,
