童子军军规:
让营地比你来时更干净
有意义的命名
1. 名副其实
// bad
const a // elapsed time in days
// good
const elapsedTimeInDays
2. 避免误导
避免使用与本意相悖的词:如果你的 AccountList 变量不是 List 类型的话,就不要这样命名
3. 做有意义的区分
如果只是为了满足编译器或解释器的需要而写代码,就会制造麻烦 例如:因为同一作用域下不能重名,就干脆随便改掉一个的名称
const klass // class
会出现在更正拼写错误后导致编译出错的情况
也不要使用废话做无意义的区分
// bad
const productInfo
const productData
// good
const product
废话代表冗余, variable 永远不应该出现在变量名中, table 永远不应该出现在表名中,NameString 这样的变量名永远不该出现,Name还能是浮点数吗?
使用读得出来的名称
你的变量名最好可以被发音 读出来
// bad
const genymdhms // 生成日期年月日
// 上面的变量名在沟通中无法被说出来
// good
const generationTimestamp;
// 可被发音
使用可搜索的名称
a, b, c 这样的名称在读代码时,难以被搜索定位,但是 MAX_CLASS_PER_STUDENT 就很容易 单字母名称仅用于短方法中的本地变量
不要在变量名中表示类型
例如匈牙利标记法: bBusy. b 代表 Boolean 类型
不要使用成员前缀
在维护中很快就会忽视前缀 m_des
不要使用缩写
类名
类名应该是名词不应当是动词
方法名
应当是动词或动词短语
别抖机灵
别使用不一定所有人都懂的梗
每个概念对应一个词
比如 get. fetch. request. 选一个词从一而终
别使用双关语 数组 add 元素,既可以代表 append 也可以代表 insert