注意命名,一旦发现有更好的名称,就替换掉旧的。 变量、函数或类的名称应该可以告诉你:为什么会存在,做什么事,应该怎么用。不需要用注释来补充。
避免留下掩藏代码本意的错误线索,比如关键字、专有名词等。
根据名称不会做出错误的判断,比如xxxList,而实际上该变量不是List类型。
不要使用看起来很相似的名称。
比如变量moneyAccount和money,customerInfo和customer,accountData和account,又如方法: getActiveAccount(); getActiveAccounts(); getActiveAccountInfo(); 意思基本一样,无法有效区分。要区分名称,就要以读者能鉴别不同之处的方式来区分。
名称尽量使用单词,容易记忆,也容易知晓意思。比如genymdhms,你能想象出来这是生成日期的变量吗?如果使用generationTimestamp,很容易就知道什么意思吧。
尽量不要使用单字母和数字常量(单字母名称仅用于短方法中的本地变量)。名称长短应与其作用域大小相对应。 尤其是在多处使用的变量或常量,更应该赋予其便于搜索的名称。
类名和对象名应该是名词或名词短语,不应当是动词。
方法名应当是动词或动词短语。 重载构造器时,使用描述 了参数的静态工厂方法名。如Complex fulcrumPoint = Complex.FromRealNumber(23.0); 通常好于 Complex fulcrumPoint = new Complex(23.0);
给每个抽象概念选一个词,并且一以贯之。例如,使用fetch、retrieve和get来给多个类中的同种方法命名。函数名称应当独一无二,而且要保持一致。
避免将同一单词用于不同目的。比如,多个类中都有add方法,该方法通过增加或连接两个现存值来获得新值。假设要写个新类,该类中有一个方法,把单个参数放到群集中,如果这个方法也叫做add,实际上它却是表达了不同的语义。
由于很少有名称能自我说明,所以需要用良好命名的类、函数或名称空间来放置名称,给读者提供语境。如果没这么做,给名称添加前缀也是一个不错的办法。比如state和addrState。
只要短名称足够清楚,就要比长名称好。