重構 (Refactoring) 學習心得筆記 – Clean Code

文章最後更新於 2020 年 12 月 21 日

Clean Code是什麼?

所謂的Clean Code,其實就是指一種工程師一看到會覺得:這樣的Code很乾淨、整潔、易懂,也就是在合理的時間,不用花非常多的心力即可以理解的程度,或是俗稱無瑕的程式碼,源自Robert Cecil Martin所著的同名書籍,有下列幾種特性:

Clean Code淺顯易懂

Clean Code是淺顯易懂的程式,不會有複雜的邏輯、糟糕的變數命名、過以肥大冗長、一次做太多事的classes或methods、不知道什麼意思的魔術數字(magic numbers)等等一些讓工程師一眼或短時間無法理解的程式。

Clean Code不會有重覆的程式碼

如果你有重覆的程式分佈在不同的地方,那你每次更改,就需要記得哪裡也用了一樣的程式,一併做修改,這樣會大大降低了開發的效率,而且萬一漏改了,程式就很容易出現Bug,也同時增加了Debug的難度,初學者容易犯的錯就是Copy別邊做一樣事情的程式碼貼到自己開發的程式中來使用,便宜行事卻產生了技術債,增加未來維護的困難。

Clean Code以最小量的Classes、最少的操作去達到目的

這裡指的最小量Classes不是叫你去只寫一隻God Class然後做了全部的事,這會產生Bloater這個Code Smell,程式碼越少表示你要維護的程式就更少,更少的程式碼就表示相對會有更少的錯誤,邏輯上就是不說廢話,直接了當的把事做完,Keep it simple!

Clean Code通過所有的測試

沒有辦法100%通過測試的程式就是Dirty Code,Clean Code是通過所有測試的,總不能說通過0%測試的程式很乾淨無瑕,是吧?

Clean Code的維護成本很低,也很簡單

基本上如果你的程式都通過測試,而且是自動化的測試,那在維護上就會很容易,不用怕新增的功能搞壞了原本的功能,因為邏輯簡單明瞭的特性,降低了理解的難度而增加了開發的效率,也減少了維護的成本。

參考資料

關於作者

卡哥
卡哥
我是Oscar (卡哥),現為Yahoo Lead Engineer、高智商同好組織Mensa會員,超過十年的工作經驗,服務過Yahoo關鍵字廣告業務部門、電子商務及搜尋部門,喜歡彈吉他玩音樂,也喜歡投資美股、虛擬貨幣,樂於與人分享交流!

如果對文章內容有任何問題,歡迎在底下留言讓我知道。
如果你喜歡我的文章,可以按分享按鈕,讓更多的人看見我的文章。

網友留言