從機器的視角來看,變數、函式、類……的名字,是用來區別其它事物的,從人的視角來看,區別其它事物只是對名字最基本的要求,名字還要能幫助讀者理解代碼,
為了讓讀者更好地理解代碼,起名時下面兩點需要注意:
- 避免歧義 - 讓讀者正確理解
- 說明「what」而不是「how」- 提高讀者理解效率
1. 避免歧義
const limitOfLoginTries = 5;
這個變數用于定義:密碼輸入錯誤多少次,用戶將會被鎖定,
到底 錯 4 次會鎖定 還是 錯 5 次會鎖定?limit 在是否包含邊界值的問題上存在歧義,這里用 max 比 limit 好,
const getPath = (start, end) => {
// expensive calculation
......
}
這個函式用于找出一條 起點到終點 的路徑,
get 操作常見于從 map 中取一個元素,潛意識會覺得它是一個輕量級的操作,但示例函式會執行復雜的計算,函式呼叫者容易掉以輕心,重復呼叫,最終導致性能問題,這里用 caculate 比 get 好,
上述兩個例子來源于《撰寫可讀代碼的藝術》這本書,
2. 說明 what 而不是 how
const moneyMultiplyRatio = money * 0.027;
錢乘以一個比例,名字和代碼說的一樣,看完了還是不知道這個變數想干嗎,如果想表達利息,用 interest 更好,
用變數名表達變數的意圖,給一段代碼起個名字,表達代碼的意圖,就是 function,
把大象裝冰箱,閱讀理解 3 行名字 顯然比 100 行實作細節 更有效率,
refrigerator.open();
refrigerator.put(elephant);
refrigerator.close();
這和函式式編程中申明式的思想一致,說明要干什么「what」,隱藏技術細節「how」,寫的人思路更清晰,讀的人理解更輕松,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/110900.html
標籤:其他
上一篇:實時雙向同步實作
下一篇:kali下安裝phpstudy
