iT邦幫忙

refactoring相關文章
共有 51 則文章

技術 Other Smell > Incomplete Library Class 不完美的外部套件與重構

前言 今天是第三十六天,這也是本系列介紹的最後一個程式碼氣味。明天總結出新版本的氣味對照重構表後,終於可以完成這次的鐵人賽挑戰。昨天剛巧看見龍哥分享資深工程師身...

技術 Dispensables > Oddball Solution 歧異解方與重構

氣味的徵兆 當你在專案內的不同地方發現存在實現相同功能,但卻是不同實作細節的程式碼片段,這種現象可被稱為「歧異解方(Oddball Solution)」氣味,或...

技術 Couplers > Indecent Exposure 過度揭露與重構

氣味的徵兆 當我們發現類別或方法毫無節操的對外洩漏內部實作細節時,我們可能發現了「過度揭露」氣味(Indecent Exposure or Excessive...

技術 Change Preventers > Combinatorial Explosion 組合爆發與重構

氣味的徵兆 這個程式碼氣味發生在多個程式碼片段執行「幾乎相同」的任務,但卻使用了不同的資料或行為組合。請特別留意「幾乎相同」而不是真正完全相同。 如果當你注意到...

技術 Couplers > Middle Man 中間人與重構

氣味的徵兆 如果一個類別除了當作另外一個類別的中間通道之外,沒有提供更多額外的價值,我們可以稱呼這種情況為「中間人(Middle Man)」氣味。物件導向中一個...

技術 Couplers > Message Chains 訊息鏈與重構

氣味的徵兆 訊息鏈(Message Chains)又被稱為「火車殘骸(Train Wrecks)」,當我們執行方法時會需要呼叫一個物件,然後該物件又需要呼叫另外...

鐵人賽 Software Development DAY 30

技術 Couplers > Inappropriate Intimacy 不當親密類別與如何重構

氣味的徵兆 Inappropriate是不當、不妥的意思,Intimacy則是親密之意,兩個字合起來可以直接翻譯為「不當的親密關係」。中文版的「Refactor...

鐵人賽 Software Development DAY 29

技術 Couplers > Feature Envy 依戀情節與重構

氣味的徵兆 當一個方法過於貪心不安於現狀,過度依戀屬於另外一個類別內的屬性或資料時,可以稱之為「依戀情節(Feature Envy)」氣味。這個氣味代表了實現該...

鐵人賽 Software Development DAY 27

技術 Dispensables > Speculative Generality 通用畫大餅與重構

氣味的徵兆 通用畫大餅(Speculative Generality)是指當我們撰寫的程式碼是用來應對未來需求,但現實中卻可能永遠都派不上用場的這種情況。這與「...

鐵人賽 Software Development DAY 26

技術 Dispensables > Lazy Class 冗余類別與如何重構

氣味的徵兆 「冗余類別(Lazy Class)」也被稱為「遊手好閒者(Freeloader)」。當你在專案內發現存在一個無所事事的類別,幾乎沒有實作任何方法與職...

鐵人賽 Software Development DAY 25

技術 Duplicated Code > Refactoring 重構重複的程式碼

根據Joshua Kerievsky於2005年創建的「程式碼氣味到重構速查表」中,我們可以得到以下十二種對應「重複的程式碼」這種氣味的重構技巧。但如同上一篇文...

鐵人賽 Software Development DAY 23

技術 Dispensables > Dead Code 亡靈程式碼與如何重構

氣味的徵兆 在軟體開發的世界中,術語「亡靈程式碼(Dead Code)」可能含有多重定義。作為一種程式碼氣味,我們也可以將亡靈程式碼稱之為「未執行的程式碼(Un...

鐵人賽 Software Development DAY 22

技術 Dispensables > Data Class 資料類別與如何重構

氣味的徵兆 Data Class(資料類別)氣味是指當一個類別內缺乏足夠的實作功能來證明其存在意義時所出現的一種情況。它指的是一個僅包含屬性欄位和用於訪問這些資...

鐵人賽 Software Development DAY 21

技術 Dispensables > Comment 無謂的註解與重構

氣味的徵兆 「無謂的註解」是一種非常特殊的「程式碼」氣味,因為註解本身並不算是真正的程式碼。 在文章繼續之前,為了表達我對於各種不同的程式語言中最佳實踐與慣例的...

鐵人賽 Software Development DAY 19

技術 Change Preventers > Parallel Inheritance Hierarchies 平行繼承的類別關係與重構

氣味的徵兆 這種氣味可以視為是「散彈槍手術(Shotgun Surgery)」的一種特例。但和散彈槍手術不同的地方在於,「平行繼承的類別關係」中我們僅只聚焦在新...

鐵人賽 Software Development DAY 18

技術 Change Preventers > Shotgun Surgery 散彈槍手術與重構

氣味的徵兆 這個程式碼氣味是我最喜歡的氣味名稱之一,因為它生動地描述了當我們試圖修改具有這種味道的程式碼時會發生什麼情況。顧名思義,就像我們朝著的程式碼射上一發...

鐵人賽 Software Development DAY 17

技術 Change Preventers > Divergent Change 發散式修改與重構

氣味的徵兆 「發散式修改(Divergent Change)」 有時候會與另一種乍看之下相似的氣味「散彈槍手術(Shotgun Surgery)」混淆,但實際上...

鐵人賽 Software Development DAY 15

技術 Tool Abusers > Temporary Field 臨時欄位與如何重構

氣味徵兆 當一個類別或物件有一個或多個欄位只有在特定情況下才會使用到,例如在方法呼叫階段用來暫時儲存資料,其他多數時候只是空值或沒有相關的值。這種實作模式我們可...

鐵人賽 Software Development DAY 14

技術 Tool Abusers > Alternative Classes with Different Interfaces 異曲同工的類別

氣味的徵兆 這個氣味的名稱很長,根據「重構」一書的中文版翻譯為「異曲同工的類別」。當存在兩個彼此具有相同功能可以彼此取代的類別,但是這些類別的「介面(Inter...

鐵人賽 Software Development DAY 13

技術 Tool Abusers > Refused Bequest 被拒絕的遺產與如何重構

氣味的徵兆 這個氣味專屬於「子類別(Subclass)」,以父類別存在為氣味的前提條件。當子類別沒有使用到多數從「父類別」所繼承而來的屬性與方法,或是雖然繼承了...

鐵人賽 Software Development DAY 12

技術 Tool Abusers > Switch Statements (Switch 驚悚現身)

氣味的徵兆 相較於之前介紹過的氣味,我認為這個程式碼氣味存在一些爭議。 Switch Statements(Switch 條件語句)是多數語言中都存在的邏輯語法...

鐵人賽 Software Development DAY 11

技術 Code Smells > Tool Abusers 工具誤用者

前言 系列文章進入到第二個氣味類別。在完成第一個氣味分類:臃腫怪(Bloaters)的過程中,我就隱約發現一件之前一直沒有注意到的事情。就是這個「氣味對應重構」...

鐵人賽 Software Development DAY 10

技術 Bloaters > Data Clumps 資料團塊與如何重構

氣味的徵兆 如果我們在程式中發現一組相關的資料總是同時出現,而且當我們拿掉其中一個資料時,會讓剩下的部分失去意義或不完整時,這就是資料團塊(Data Clump...

鐵人賽 Software Development DAY 9

技術 Bloaters > Long Parameter List 過長參數列與如何重構

(English follows Chinese) 氣味的徵兆 過長參數列(Long Parameter List)氣味是當函式(Function)或方法(Me...

鐵人賽 Software Development DAY 8

技術 Primitive Obsession > Refactoring 如何重構基本型別偏執

本篇文章會介紹如何重構基本型別偏執(Primitive Obsession),根據對照表上一共有十四種重構手法可以對應。部分重構技巧在之前的系列文章中已經提及。...

鐵人賽 Software Development DAY 6

技術 Large Class > Refactoring 如何重構 Large Class 大類別

為了消除 Large Class 大類別的氣味,開發者可以考慮使用下列八種重構技巧,其中不少都與設計模式(Design Pattern)有關聯: Extrac...

技術 [筆記] 設計重構 - 技術債

Hi all,最近在台北敗了幾本書籍來看,抱持著 "想到就看,看了就更新"的心態於是有了此系列筆記。 閱讀書籍 技術債 ( Technic...

鐵人賽 Software Development DAY 5

技術 Bloaters > Large Class 大類別

氣味的徵兆 相似於我們上一篇所介紹的長方法(Long Method)氣味,「大類別(Large Class)」顧名思義,是指隨著時間累積,開發者不斷疊加新功能與...

鐵人賽 Software Development DAY 4

技術 Long Method > Refactoring 如何重構Long Method

(No English version yet.) 上一篇我們介紹到Long Method(長方法)的特徵與成為不良氣味(Bad Smell)的原因,接下來我們...

鐵人賽 Software Development DAY 1

技術 Code Smells to Refactorings

(English follows Chinese) 上次參賽已經是好幾年前,除了選題障礙之外,連續三十天的寫作對我來說早已經證實並不是太過困難的挑戰。這次恰好在...