(English follows Chinese) 上次參賽已經是好幾年前,除了選題障礙之外,連續三十天的寫作對我來說早已經證實並不是太過困難的挑戰。這次恰好在...
(No English version yet.) 上一篇我們介紹到Long Method(長方法)的特徵與成為不良氣味(Bad Smell)的原因,接下來我們...
消除你程式碼的臭味 Day 17- 分離關注點:設定與主要邏輯分開 把變動頻繁的設定從穩定的主要邏輯裡拿出去。 你的核心商業邏輯,應該像一個在無菌室裡工作的科...
氣味的徵兆 在軟體開發的世界中,術語「亡靈程式碼(Dead Code)」可能含有多重定義。作為一種程式碼氣味,我們也可以將亡靈程式碼稱之為「未執行的程式碼(Un...
氣味的徵兆 重複的程式碼可能發生在多名開發者在同一個程式碼專案的不同部分同時工作時,或者當團隊的新成員在撰寫自己的新程式碼時未詳細檢查現有程式碼。會發生這種情況...
消除你程式碼的臭味 Day 5 - 簡潔性:程式碼是斯巴達式的 如果程式碼需要超過 3 層縮排,就代表已經發臭了,應該去處理好你的程式碼。 深度縮排的程式...
氣味的徵兆 「發散式修改(Divergent Change)」 有時候會與另一種乍看之下相似的氣味「散彈槍手術(Shotgun Surgery)」混淆,但實際上...
前言 程式碼臭臭? 何為程式碼異味? 程式碼又是如何散發「臭味」? 在「重構:改善既有程式的設計」 這本書有提到,程式碼異味(Code Smell)是在講說,程...
(English follows Chinese) 首先我們來談談程式碼氣味(Code Smell)中的第一個分類:Bloaters 臃腫怪。我查了一下,華文世...
消除你程式碼的臭味 Day 7- 資料結構至上:好程式碼的關鍵思考 搞錯了資料結構,寫的就不是程式碼,是日後要爆炸的地雷。 Bad programmers...
氣味的徵兆 這個程式碼氣味是我最喜歡的氣味名稱之一,因為它生動地描述了當我們試圖修改具有這種味道的程式碼時會發生什麼情況。顧名思義,就像我們朝著的程式碼射上一發...
(English follows Chinese) 前言 根據「Refactoring to Patterns」一書的作者Joshua Kerievsky所提供...
氣味的徵兆 當一個方法過於貪心不安於現狀,過度依戀屬於另外一個類別內的屬性或資料時,可以稱之為「依戀情節(Feature Envy)」氣味。這個氣味代表了實現該...
氣味的徵兆 「無謂的註解」是一種非常特殊的「程式碼」氣味,因為註解本身並不算是真正的程式碼。 在文章繼續之前,為了表達我對於各種不同的程式語言中最佳實踐與慣例的...
氣味的徵兆 訊息鏈(Message Chains)又被稱為「火車殘骸(Train Wrecks)」,當我們執行方法時會需要呼叫一個物件,然後該物件又需要呼叫另外...
氣味的徵兆 相似於我們上一篇所介紹的長方法(Long Method)氣味,「大類別(Large Class)」顧名思義,是指隨著時間累積,開發者不斷疊加新功能與...
氣味的徵兆 通用畫大餅(Speculative Generality)是指當我們撰寫的程式碼是用來應對未來需求,但現實中卻可能永遠都派不上用場的這種情況。這與「...
消除你程式碼的臭味 Day 2- 好品味:優秀工程師的直覺 很多人以為,程式設計的厲害在於演算法或是那些設計模式。但還有一個更務實的概念一定要掌握。 Bad...
氣味的徵兆 Data Class(資料類別)氣味是指當一個類別內缺乏足夠的實作功能來證明其存在意義時所出現的一種情況。它指的是一個僅包含屬性欄位和用於訪問這些資...
前言 今天是第三十六天,這也是本系列介紹的最後一個程式碼氣味。明天總結出新版本的氣味對照重構表後,終於可以完成這次的鐵人賽挑戰。昨天剛巧看見龍哥分享資深工程師身...
消除你程式碼的臭味 Day 8- 消除抽象層:直接存取資料,不要繞路 抽象是個工具。它的存在只有一個目的:管理複雜度。 當你的抽象層沒有隱藏任何複雜性,反而製...
前言 系列文章進入到第二個氣味類別。在完成第一個氣味分類:臃腫怪(Bloaters)的過程中,我就隱約發現一件之前一直沒有注意到的事情。就是這個「氣味對應重構」...
「耦合怪(Couplers)」是一種程式碼氣味的類別。這個氣味識別出將物件通通綁在一起的情況,這妨礙了在不同情境下程式碼的使用靈活性。這種高耦合阻礙了可用性和模...
氣味的徵兆 「冗余類別(Lazy Class)」也被稱為「遊手好閒者(Freeloader)」。當你在專案內發現存在一個無所事事的類別,幾乎沒有實作任何方法與職...
消除你程式碼的臭味 Day 3- 實用主義:拒絕象牙塔裡的完美理論 有時候寫出的程式碼變得複雜、難以理解,並非因為技術不足,而是我們追求了錯誤的目標——忽略了...
「Dispensables」這個氣味分類是指程式碼中出現一些不必要的元素。如果移除它們,可以使程式碼更加乾淨、效率更高,並且更容易理解。 這個分類概念相當容易理...
氣味的徵兆 這個程式碼氣味發生在多個程式碼片段執行「幾乎相同」的任務,但卻使用了不同的資料或行為組合。請特別留意「幾乎相同」而不是真正完全相同。 如果當你注意到...
氣味的徵兆 當我們發現類別或方法毫無節操的對外洩漏內部實作細節時,我們可能發現了「過度揭露」氣味(Indecent Exposure or Excessive...
根據Joshua Kerievsky於2005年創建的「程式碼氣味到重構速查表」中,我們可以得到以下十二種對應「重複的程式碼」這種氣味的重構技巧。但如同上一篇文...
氣味的徵兆 如果一個類別除了當作另外一個類別的中間通道之外,沒有提供更多額外的價值,我們可以稱呼這種情況為「中間人(Middle Man)」氣味。物件導向中一個...