程式碼氣味(Code Smell)已經是一個軟體開發中廣為人知的概念,但是每一種氣味能夠對應到特定的重構手法(Refactorings),氣味與重構技巧之間的多對多關係這樣的概念,相較之下並沒有這麼普及。本次想要挑戰統整這些觀念,為自己的專業深度打底,同時也希望能分享給更多人知道。
本次挑戰特別之處在於草稿為英文寫作,發表當日才翻譯為中文。因為中文為母語可能會加上更多詮釋而非逐字翻譯,決定採用中英文併陳的方式呈現。
前言 系列文章進入到第二個氣味類別。在完成第一個氣味分類:臃腫怪(Bloaters)的過程中,我就隱約發現一件之前一直沒有注意到的事情。就是這個「氣味對應重構」...
氣味的徵兆 相較於之前介紹過的氣味,我認為這個程式碼氣味存在一些爭議。 Switch Statements(Switch 條件語句)是多數語言中都存在的邏輯語法...
氣味的徵兆 這個氣味專屬於「子類別(Subclass)」,以父類別存在為氣味的前提條件。當子類別沒有使用到多數從「父類別」所繼承而來的屬性與方法,或是雖然繼承了...
氣味的徵兆 這個氣味的名稱很長,根據「重構」一書的中文版翻譯為「異曲同工的類別」。當存在兩個彼此具有相同功能可以彼此取代的類別,但是這些類別的「介面(Inter...
氣味徵兆 當一個類別或物件有一個或多個欄位只有在特定情況下才會使用到,例如在方法呼叫階段用來暫時儲存資料,其他多數時候只是空值或沒有相關的值。這種實作模式我們可...
經過兩週共16天的挑戰,完成了兩個氣味的介紹進入第三種氣味分類:「改變的阻礙者(Change Preventers)」。 如果我在系列文首日的文章提及,許多人不...
氣味的徵兆 「發散式修改(Divergent Change)」 有時候會與另一種乍看之下相似的氣味「散彈槍手術(Shotgun Surgery)」混淆,但實際上...
氣味的徵兆 這個程式碼氣味是我最喜歡的氣味名稱之一,因為它生動地描述了當我們試圖修改具有這種味道的程式碼時會發生什麼情況。顧名思義,就像我們朝著的程式碼射上一發...
氣味的徵兆 這種氣味可以視為是「散彈槍手術(Shotgun Surgery)」的一種特例。但和散彈槍手術不同的地方在於,「平行繼承的類別關係」中我們僅只聚焦在新...
「Dispensables」這個氣味分類是指程式碼中出現一些不必要的元素。如果移除它們,可以使程式碼更加乾淨、效率更高,並且更容易理解。 這個分類概念相當容易理...