最近在 code review
時,看到不少讓人頭暈的程式碼
在討論如何寫出更好的程式碼之外,應該要回顧幾個軟體開發原則,避免自己走歪路
DRY
wiki: https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
原文: Don't repeat yourself
,如同字面上的意思,不要重複你的程式碼。
最直接的例子就是在開發程式時,不想思考跟設計,直接使用複製貼上。
這種方式看似可以很快的產出程式碼,實際上只會變成你的拌腳石。 當你遇到要修改的時候,複製貼上的次數就會變成工作時間的倍數。
Example
當你會重複的使用某個 function 時
|
|
請善用 for loop
|
|
KISS
wiki: https://en.wikipedia.org/wiki/KISS_principle
原文: Keep It Simple, Stupid,意思是要化繁為簡,保持程式碼簡單。
足夠直白簡單的程式碼,讓其他人容易閱讀、理解跟維護。
Example
經典的波動拳程式碼 (我想故意寫寫看,還會寫不太出來…
|
|
設計一或多個 function 把條件分類,並且優先排除不附合條件的資料
|
|
YAGNI
wiki: https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it
原文: You aren’t gonna need it,你不會需要它
不要預先寫一些還用不到的程式,只有在你需要用到時,才寫程式。 在你不知道接下來的程式會需要怎麼樣改動的情況下,多餘的設計是沒有必要的。
你可能會運用過去的經驗,來評估程式未來的走向,做一些預測的設計。 但是這些設計,很有可能派不上用場,也等於了你白白的浪費時間。
說到這邊,一定會有人說,那是不是只要完成需求規格,其他就不管了?這樣反而是誤用了這個原則。 只要程式還有人在使用,就一定會有一個基礎的標準要滿足。
YAGNI 原則是希望你不要過早的去優化程式碼。
小結
太過執著於特定的原則,可能會落入過度設計 (Over Engineering) 或是不求甚解的狀況。
了解這些軟體開發原則並且適當的運用在程式開發上,有助於設計出更加優美的程式。