文章最後更新於 2024 年 10 月 3 日
Clean Code是什麼?
所謂的Clean Code,其實就是指一種工程師一看到會覺得:這樣的Code很乾淨、整潔、易懂,也就是在合理的時間,不用花非常多的心力即可以理解的程度,或是俗稱無瑕的程式碼,源自Robert Cecil Martin所著的同名書籍,有下列幾種特性:
Clean Code淺顯易懂
Clean Code是淺顯易懂的程式,不會有複雜的邏輯、糟糕的變數命名、過以肥大冗長、一次做太多事的classes或methods、不知道什麼意思的魔術數字(magic numbers)等等一些讓工程師一眼或短時間無法理解的程式。
Clean Code 應該:
- 邏輯簡單明瞭
- 變數命名恰當
- 避免過於龐大或複雜的類別和方法
- 不使用難以理解的魔術數字(magic numbers)
Clean Code不會有重覆的程式碼
如果你有重覆的程式分佈在不同的地方,那你每次更改,就需要記得哪裡也用了一樣的程式,一併做修改,這樣會大大降低了開發的效率,而且萬一漏改了,程式就很容易出現Bug,也同時增加了Debug的難度,初學者容易犯的錯就是Copy別邊做一樣事情的程式碼貼到自己開發的程式中來使用,便宜行事卻產生了技術債,增加未來維護的困難。
Clean Code 應該避免重複
- 消除重複的程式碼片段
- 提高開發效率和程式一致性
- 降低 Bug 出現的機會和除錯難度
Clean Code以最小量的Classes、最少的操作去達到目的
這裡指的最小量Classes不是叫你去只寫一隻God Class然後做了全部的事,這會產生Bloater這個Code Smell,程式碼越少表示你要維護的程式就更少,更少的程式碼就表示相對會有更少的錯誤,邏輯上就是不說廢話,直接了當的把事做完,Keep it simple!
Clean Code 應該精簡且高效
- 使用最少量的類別和操作來實現功能
- 避免創建過於龐大的「上帝類別」(God Class)
- 遵循「簡單即是美」的原則
Clean Code通過所有的測試
沒有辦法100%通過測試的程式就是Dirty Code,Clean Code是通過所有測試的,總不能說通過0%測試的程式很乾淨無瑕,是吧?
Clean Code 應該全面通過測試
- 100% 通過所有測試是 Clean Code 的基本要求
- 確保程式的穩定性和可靠性
Clean Code的維護成本很低,也很簡單
基本上如果你的程式都通過測試,而且是自動化的測試,那在維護上就會很容易,不用怕新增的功能搞壞了原本的功能,因為邏輯簡單明瞭的特性,降低了理解的難度而增加了開發的效率,也減少了維護的成本。
Clean Code 應該易於維護
- 通過自動化測試來確保維護的簡易性
- 降低理解難度,提高開發效率
- 減少長期維護成本
參考資料
關於作者
- 我是Oscar (卡哥),前Yahoo Lead Engineer、高智商同好組織Mensa會員,超過十年的工作經驗,服務過Yahoo關鍵字廣告業務部門、電子商務及搜尋部門,喜歡彈吉他玩音樂,也喜歡投資美股、虛擬貨幣,樂於與人分享交流!
最新文章
- 2024 年 8 月 26 日Java如何在 Java Spring Boot 中輕鬆使用 @Cacheable 提高應用效能
- 2024 年 8 月 25 日技術文章新手必看:MongoDB 實用入門指南 – 從零開始學習 NoSQL 數據庫
- 2024 年 7 月 18 日未分類ChatGPT, Claude AI 進階提示詞技巧:掌握AI對話的藝術 (Prompt Engineering)
- 2024 年 6 月 11 日程式設計Java 中的 volatile