程式碼氣味(Code Smell)已經是一個軟體開發中廣為人知的概念,但是每一種氣味能夠對應到特定的重構手法(Refactorings),氣味與重構技巧之間的多對多關係這樣的概念,相較之下並沒有這麼普及。本次想要挑戰統整這些觀念,為自己的專業深度打底,同時也希望能分享給更多人知道。
本次挑戰特別之處在於草稿為英文寫作,發表當日才翻譯為中文。因為中文為母語可能會加上更多詮釋而非逐字翻譯,決定採用中英文併陳的方式呈現。
氣味的徵兆 「無謂的註解」是一種非常特殊的「程式碼」氣味,因為註解本身並不算是真正的程式碼。 在文章繼續之前,為了表達我對於各種不同的程式語言中最佳實踐與慣例的...
氣味的徵兆 Data Class(資料類別)氣味是指當一個類別內缺乏足夠的實作功能來證明其存在意義時所出現的一種情況。它指的是一個僅包含屬性欄位和用於訪問這些資...
氣味的徵兆 在軟體開發的世界中,術語「亡靈程式碼(Dead Code)」可能含有多重定義。作為一種程式碼氣味,我們也可以將亡靈程式碼稱之為「未執行的程式碼(Un...
氣味的徵兆 重複的程式碼可能發生在多名開發者在同一個程式碼專案的不同部分同時工作時,或者當團隊的新成員在撰寫自己的新程式碼時未詳細檢查現有程式碼。會發生這種情況...
根據Joshua Kerievsky於2005年創建的「程式碼氣味到重構速查表」中,我們可以得到以下十二種對應「重複的程式碼」這種氣味的重構技巧。但如同上一篇文...
氣味的徵兆 「冗余類別(Lazy Class)」也被稱為「遊手好閒者(Freeloader)」。當你在專案內發現存在一個無所事事的類別,幾乎沒有實作任何方法與職...
氣味的徵兆 通用畫大餅(Speculative Generality)是指當我們撰寫的程式碼是用來應對未來需求,但現實中卻可能永遠都派不上用場的這種情況。這與「...
「耦合怪(Couplers)」是一種程式碼氣味的類別。這個氣味識別出將物件通通綁在一起的情況,這妨礙了在不同情境下程式碼的使用靈活性。這種高耦合阻礙了可用性和模...
氣味的徵兆 當一個方法過於貪心不安於現狀,過度依戀屬於另外一個類別內的屬性或資料時,可以稱之為「依戀情節(Feature Envy)」氣味。這個氣味代表了實現該...
氣味的徵兆 Inappropriate是不當、不妥的意思,Intimacy則是親密之意,兩個字合起來可以直接翻譯為「不當的親密關係」。中文版的「Refactor...