」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 清晰函數名稱的力量:乾淨的程式碼必不可少

清晰函數名稱的力量:乾淨的程式碼必不可少

發佈於2024-10-31
瀏覽:957

The Power of Clear Function Names: A Clean Code Essential

在程式設計世界中,清晰是王道。提高程式碼可讀性和可維護性的最有效方法之一是使用清晰、描述性的函數名稱。讓我們深入探討為什麼這很重要以及如何在程式碼中實現此實踐。

模糊函數名稱的問題

考慮這段程式碼:

function addToDate(date, month) {
  // ... implementation
}

const date = new Date();

// What exactly is being added here?
addToDate(date, 1);

乍一看,你能看出這個函數是做什麼的嗎? addToDate 這個名字很模糊。它告訴我們某些內容正在添加到日期中,但是什麼?天?幾個月?年?這種模糊性迫使讀者深入實施以了解其目的,這是低效的並且可能導致誤用。

解決方案:描述性函數名稱

現在,讓我們來看看改進版本:

function addMonthToDate(month, date) {
  // ... implementation
}

const date = new Date();
addMonthToDate(1, date);

差異很明顯(雙關語)。 addMonthToDate 明確說明了函數的作用。它為日期添加了一個月。沒有歧義,無需檢查實作即可了解其基本目的。

為什麼這很重要

  1. 可讀性:清晰的函數名稱使您的程式碼自我記錄。新的團隊成員或未來的你無需深入了解細節即可理解程式碼的意圖。

  2. 可維護性:當功能明確說明其目的時,在需求發生變化時更容易確定需要進行更改的位置。

  3. 減少認知負荷:開發人員可以專注於解決複雜的問題,而不是破解模糊的函數名稱。

  4. 更少的錯誤:清楚的名稱可以減少誤用的可能性。在我們的範例中,很明顯我們添加的是月份,而不是天或年。

編寫清晰函數名稱的技巧

  1. 具體:使用 getUserById() 取代 get()。
  2. 使用動詞:從計算、取得、更新或驗證等操作開始。
  3. 避免縮寫:除非它們被普遍理解(例如 ID 代表識別碼),否則請將其拼寫出來。
  4. 保持簡潔:在進行描述性的同時,也盡量保持名稱相當簡短。
  5. 保持一致:在整個專案中堅持命名約定。

結論

花時間設計清晰、描述性的函數名稱是一項很小的投資,但可以在程式碼品質方面帶來巨大的回報。這是編寫乾淨、可維護的程式碼的一個基本方面,你的同事(以及未來的你)會欣賞的。

記住:程式碼的閱讀次數遠多於寫作次數。讓閱讀成為一種樂趣!

版本聲明 本文轉載於:https://dev.to/56_kode/the-power-of-clear-function-names-a-clean-code-essential-12l2?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 觸發MySQL操作的SELECT語句技巧
    觸發MySQL操作的SELECT語句技巧
    在選擇語句上觸發mySQL action Alternative SolutionHowever, there is a potential workaround for this unique scenario:Create Stored Procedures for SELECTs:Defin...
    程式設計 發佈於2025-04-17
  • 如何根據特定列值整理關聯數組行?
    如何根據特定列值整理關聯數組行?
    在使用由子陣列組成的關聯陣列工作時,按列值通常是基於特定列值重新組織數據的必要條件。這允許更輕鬆的數據檢索和分析。 假設我們有以下格式的子陣列數組: 'a'=> ['id'=> 20,'名稱'=>'chimpanzee'],...
    程式設計 發佈於2025-04-17
  • 如何在Java的全屏獨家模式下處理用戶輸入?
    如何在Java的全屏獨家模式下處理用戶輸入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    程式設計 發佈於2025-04-17
  • 如何使用Python有效地以相反順序讀取大型文件?
    如何使用Python有效地以相反順序讀取大型文件?
    在python 反向行讀取器生成器 == ord('\ n'): 緩衝區=緩衝區[:-1] 剩餘_size- = buf_size lines = buffer.split('\ n'....
    程式設計 發佈於2025-04-17
  • 如何使用“ JSON”軟件包解析JSON陣列?
    如何使用“ JSON”軟件包解析JSON陣列?
    parsing JSON與JSON軟件包 QUALDALS:考慮以下go代碼:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    程式設計 發佈於2025-04-17
  • 為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    程式設計 發佈於2025-04-17
  • 對象擬合:IE和Edge中的封面失敗,如何修復?
    對象擬合:IE和Edge中的封面失敗,如何修復?
    To resolve this issue, we employ a clever CSS solution that solves the problem:position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%)...
    程式設計 發佈於2025-04-17
  • 如何避免Go語言切片時的內存洩漏?
    如何避免Go語言切片時的內存洩漏?
    ,a [j:] ...雖然通常有效,但如果使用指針,可能會導致內存洩漏。這是因為原始的備份陣列保持完整,這意味著新切片外部指針引用的任何對象仍然可能佔據內存。 copy(a [i:] 對於k,n:= len(a)-j i,len(a); k
    程式設計 發佈於2025-04-17
  • Python中何時用"try"而非"if"檢測變量值?
    Python中何時用"try"而非"if"檢測變量值?
    使用“ try“ vs.” if”來測試python 在python中的變量值,在某些情況下,您可能需要在處理之前檢查變量是否具有值。在使用“如果”或“ try”構建體之間決定。 “ if” constructs result = function() 如果結果: 對於結果: ...
    程式設計 發佈於2025-04-17
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-04-17
  • 如何限制動態大小的父元素中元素的滾動範圍?
    如何限制動態大小的父元素中元素的滾動範圍?
    在交互式接口中實現垂直滾動元素的CSS高度限制問題:考慮一個佈局,其中我們具有與用戶垂直滾動一起移動的可滾動地圖div,同時與固定的固定sidebar保持一致。但是,地圖的滾動無限期擴展,超過了視口的高度,阻止用戶訪問頁面頁腳。 $("#map").css({ margin...
    程式設計 發佈於2025-04-17
  • 如何高效地在一個事務中插入數據到多個MySQL表?
    如何高效地在一個事務中插入數據到多個MySQL表?
    mySQL插入到多個表中,該數據可能會產生意外的結果。雖然似乎有多個查詢可以解決問題,但將從用戶表的自動信息ID與配置文件表的手動用戶ID相關聯提出了挑戰。 使用Transactions和last_insert_id() 插入用戶(用戶名,密碼)值('test','tes...
    程式設計 發佈於2025-04-17
  • 使用jQuery如何有效修改":after"偽元素的CSS屬性?
    使用jQuery如何有效修改":after"偽元素的CSS屬性?
    在jquery中了解偽元素的限制:訪問“ selector 嘗試修改“:”選擇器的CSS屬性時,您可能會遇到困難。 This is because pseudo-elements are not part of the DOM (Document Object Model) and are th...
    程式設計 發佈於2025-04-17
  • 如何使用Python理解有效地創建字典?
    如何使用Python理解有效地創建字典?
    在python中,詞典綜合提供了一種生成新詞典的簡潔方法。儘管它們與列表綜合相似,但存在一些顯著差異。 與問題所暗示的不同,您無法為鑰匙創建字典理解。您必須明確指定鍵和值。 For example:d = {n: n**2 for n in range(5)}This creates a dict...
    程式設計 發佈於2025-04-17
  • 如何正確使用與PDO參數的查詢一樣?
    如何正確使用與PDO參數的查詢一樣?
    在pdo 中使用類似QUERIES在PDO中的Queries時,您可能會遇到類似疑問中描述的問題:此查詢也可能不會返回結果,即使$ var1和$ var2包含有效的搜索詞。錯誤在於不正確包含%符號。 通過將變量包含在$ params數組中的%符號中,您確保將%字符正確替換到查詢中。沒有此修改,PD...
    程式設計 發佈於2025-04-17

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3