命名
- 避免泛化詞
所有數(shù)據(jù)都叫 data -> PersonalInfo ? ImageContent ? - 增加信息量
帶上單位 delay -> delayMS , size->sizeMB
包含必要的解釋 days->daysSinceLastUpdate - 用的詞要有效
converToString -> toString
有歧義的詞
result = filter(objects, "year"<="2016")
filter是要保留select還是排除exclude - 符合慣例
約定俗成
循環(huán)變量:i, j, k
表示范圍:[begin, end) [first, last]
noSurprise! 只表達簡單的操作、無副作用拜轨,成對的API參數(shù)含義一致
注釋
- 不加沒有價值的注釋,如果變量名就可以說明允青,就不必要加注釋
- 為常量加注釋橄碾,為什么取這個值
- 解釋Hack
- 解釋可能出現(xiàn)的風(fēng)險: 非線程安全
邏輯:表達式
- 變量與常量:變量在左,常量在右
變量與變量:小于號原則颠锉,與數(shù)軸一致 - 臨時變量+好的命名
if (lhs.min <= rhs.max && lhs.max<=rhs.min) {
operations
}
bool isOverlay = 表達式;
if (isOverlay) {
operations
}