close

什麼是程式碼壞味道(Code Bad Smell)?

簡單的說就是指程式碼中會讓你感覺不舒服的地方,比如說洛洛長的程式碼和重複性的程式碼沒有被提出來成為一個function來執行功能。

這樣的狀況是不是常常出現在你的程式碼中?

減少程式碼壞味道的出現不只方便給別人參考、修改,對自己日後的維護也是受益良多。

以下列出幾項常見的程式碼壞味道:

1. 重複的程式碼(Duplicated Code)

    如果你在一個以上的地方看到相同的程式結構,那就可以肯定,設法將它整合,讓程式變的更好。

2. 過長函式(Long Method)

3. 過大類別(Larg Class)

4. 過長參數列(Long Parameter List)

5. 發散式變化(Divergent Change)

    這是指如果一個class如果再產生幾個新class時必須要額外多出幾個Method來對應其他類別的互動,那麼就將其分散為幾個class分別對應

6. 散彈式修改(Shotgun Surgery)

    這跟發散式變化相反,這是指如果每遇到某種變化你就必須在許多不同的class內做出許多小修改。如果要修改的程式散佈四處不但難找也容易忘記。

7. 依戀情結(Feature Envy)

    物件導向就是將資料與其操作方法的封裝技術。如果當一個class的函式對某一個class的興趣高過對自己的host class的興趣,這就是依戀情結。

8. 資料泥團(Data Clumps)

9. 基本型別偏執(Primitive Obsession)

    物件導向的好處就是讓資料結構有意義,如果你在一個class裡要用很多基本型別來分別表示一些資料時,試著把這些資料整理出一個class,讓他去做一些簡單的事情。

10 switch驚悚現身(Switch Statements)

    物件導向的一個最明顯的特徵就是:少用switch。本質上來說switch的問題就在於重複。常會看到相同的switch在不同的地方。如果要添加一個case就要找到所有的switch。

全站熱搜
創作者介紹
創作者 kgsprogrammer 的頭像
kgsprogrammer

太陽系後援會

SnakeEater 發表在 痞客邦 留言(0) 人氣()