成為卓越程式設計師的38項必修法則 - 筆記

May 30, 2021

本篇主要紀錄書中提到的三個軟體設計的原則,以及記錄三元運算子如何簡化程式碼。

DRY 原則

Don’t Repeat Yourself

不要重複自己做過的事。不要草率的剪下或貼上程式碼,如果有 Bug 的話,會需要修改所有的程式碼片段,維護起來較為不便。若有類似的程式碼,可以重構為共用函式,並透過參數傳遞處理不同的部分。

但如果將類似的程式碼重構為共用函式,會增加共用函式的耦合性,一旦修改函式,引用函式的部分都要修改,因此要小心重構。

也要注意是否重新發明車輪,如前人已有撰寫同樣功能的程式碼,並檢查有沒有第三方程式可用─通常第三方的程式經過多使用者的驗證,會比自己手刻的更穩定和易用。

YANGI 原則

You Aren’t Gonna Need It

不寫非必要的程式。維護多餘的程式碼費時費力,也讓專案難以被理解。新進入專案的人員,需要花更多時間瞭解程式。

這些程式碼常來自未使用的後端支援程式、不再使用的成品或功能,永遠否定的條件或不成立的迴圈、回傳用不到的值等。通常是多次修改程式碼或沒有謹慎撰寫程式碼,導致這些狀況。

雖然有時會擔心某段程式碼可能會在未來用到,但在有版控的狀況下,還是可以放心地移除。

KISS 原則

Keep It Simple, Stupid

不是用最輕鬆的方式寫程式,而是使用者可以很輕易地使用程式,複雜的管理交由程式內部處理,例如 API。此外,也應減少中間層的加入,減少追蹤困難。

此外,也要撰寫平實近人的程式碼,讓他人和自己都能快速理解,並避免過早最佳化程式。過早最佳化程式,容易增加程式的複雜度,減少修改的彈性。

三元運算子

三元運算子 (?) 可簡化雜亂邏輯。

原本使用 if 指定變數數值的程式碼:

if(a > b)
{
    c = 1;
}
else
{
    c = 0;
}

可以簡化為以下描述: c c = (a > B) ? 1 : 0;

延伸閱讀

書籍資訊

成為卓越程式設計師的38項必修法則
Becoming a Better Programmer
作者: Pete Goodliffe  
譯者: 賴屹民
出版社:歐萊禮  
出版日期:2015/05/05
ISBN:9789863475699