編寫程式碼時,最容易被忽略但又至關重要的方面之一就是命名。
我們為程式碼中的變數、函數、類別和其他實體選擇的名稱可以顯著影響可讀性、可維護性和整體品質。
《清潔程式碼》第 2 章深入研究了選擇有意義的名稱的藝術和科學,提供了一組指南,可以幫助開發人員編寫既具有表現力又易於理解的程式碼。
在這篇文章中,我們將探討本章的重點,並用 JavaScript 中的範例說明每個概念。
您選擇的名稱應清楚傳達變數、函數或類別背後的意圖。讀者應該能夠理解程式碼的作用,而無需額外的上下文。
// Bad let d; // Good let daysUntilDeadline;
在第一個範例中,d 很模糊且沒有提供任何上下文。改進版本 daysUntilDeadline 清楚地表明了變數代表的內容。
名稱不應具有誤導性。避免使用可能暗示與程式碼實際含義不同的名稱。
// Bad let accountList = new Map(); // Good let accountsMap = new Map();
在這裡,accountList 可能會產生誤導,因為它暗示一個列表(這是一個有序集合),而實際的資料結構是一個 Map。使用accountsMap更準確。
如果您需要區分相似的變數、函數或類,請以一種使區別清晰且有意義的方式進行操作。
// Bad getUserInfo(); getUserData(); // Good getUserProfile(); getUserSettings();
在第一個範例中,getUserInfo 和 getUserData 太相似,並且沒有清楚地表達它們的差異。第二個範例透過根據傳回的內容命名函數來闡明差異。
名稱應該易於閱讀和發音。這使得與其他人討論程式碼變得更加直接。
// Bad let genymdhms; // Good let generationTimestamp;
genymdhms 是一個難以發音的名字,很難記住或討論。然而, GenerationTimestamp 很清楚,也很容易說。
在較大的程式碼庫中,使用易於搜尋的名稱非常重要。避免使用單字母名稱或過度縮寫的名稱。
// Bad let e = document.getElementById('email'); // Good let emailInputElement = document.getElementById('email');
e 不容易搜索,而且它不能傳達它所代表的含義。 emailInputElement 更具描述性,並且更容易在程式碼庫中找到。
避免在名稱中包含類型、前綴或其他編碼。讓名稱本身俱有足夠的描述性。
// Bad let phoneString; // Good let phoneNumber;
在這種情況下,phoneString 包含不必要的類型編碼(String)。電話號碼更簡單、更直接。
類別代表物件或概念,因此它們的名稱應該是名詞。另一方面,函數代表動作,因此它們的名稱應該是動詞。
// Class names (Nouns) class UserAccount {} class ShoppingCart {} // Function names (Verbs) function calculateTotal() {} function sendEmail() {}
這種區別有助於理解程式碼中每個元素的作用。
不要強迫讀者將名字翻譯成更有意義的東西。名稱應該是不言自明的。
// Bad let n = 5; // Number of users // Good let userCount = 5;
n 需要讀者記住或推斷它代表使用者數量,而 userCount 則一目了然。
選擇有意義的名稱不僅僅是風格問題,它是編寫乾淨、可維護程式碼的基本實踐。
透過遵循《簡潔程式碼》第 2 章中概述的指南,您可以提高 JavaScript 程式碼的可讀性,並使其他人(和您自己)更容易理解和維護。
請記住,我們的目標是編寫能夠傳達其目的和邏輯的程式碼,從而減少讀者的認知負擔。
下次命名變數、函數或類別時,請考慮有意義的命名原則以及它們如何有助於產生更清晰、更有效的程式碼。
快樂編碼!
以上是理解乾淨的代碼:有意義的名字 ⚡的詳細內容。更多資訊請關注PHP中文網其他相關文章!