
重構為模式
2004
多年來,我一直在推廣敏捷方法,特別是極端程式設計。當我這麼做時,人們常質疑這與我對設計模式的長期興趣有何關聯。的確,我聽過有人聲稱,我鼓勵重構和演化式設計,等於收回我之前對分析和設計模式所寫的內容。
然而,只要快速觀察一下人們,就會發現這種觀點有缺陷。看看模式社群的領導者和敏捷與 XP 社群的領導者,你會發現一個巨大的交集。事實上,模式和演化式設計從一開始就關係密切。
Josh Kerievsky 一直處於這個重疊的中心。我第一次認識他是在他組織紐約市成功的模式研究小組時。這些小組對設計模式的相關文獻進行了協作研究。我很快了解到,Josh 對設計模式的理解無人能及,而我透過聆聽他說話,對這些模式有了很多見解。Josh 很早就採用了重構,並且是我書中的極有幫助的審稿人。因此,他也是極端程式設計的先驅,這對我來說並不意外。他在第一次 XP 大會上關於模式和極端程式設計的論文是我的最愛之一。
因此,如果有人非常適合撰寫關於模式和重構的交互作用,那個人就是 Josh。這是我在「重構」中探討過的一點領域,但我沒有深入探討,因為我想專注於基本的重構。這本書大幅擴展了該領域,詳細討論如何演化大多數流行的四人幫模式,表明這些模式不必事先設計,而是隨著系統的成長而演化。
除了你可以從研究這些重構中獲得的特定知識外,本書還告訴你更多關於模式和重構的資訊。許多人表示,他們發現重構方法是學習模式的更好方式,因為你可以逐步看到問題和解決方案的交互作用。這些重構也強化了一個關鍵事實,那就是重構就是以微小的步驟進行大幅度的變更。
因此,我很榮幸能向各位介紹這本書。我花了很長一段時間勸說 Josh 寫一本書,然後與他合作完成這本書。我對結果感到非常滿意,我相信各位也會滿意。