爲什麼重構有用(Why Refactoring Works)

程序有兩面價值:“今天可以爲你做什麼”和“明天可以爲你做什麼”。大多數時候,我們都只關注自己今天想要程序做什麼。不論是修復錯誤或是添加特性,我們都是爲了讓程序能力更強,讓它在今天更有價值。

但是系統今天(當下)的行爲,只是整個故事的一部分,如果沒有人認清這一點,你無法長期從事編程工作。如果你“爲求完成今天任務”而採取的手法使你不可能在明天完成明天的任務,那麼你還是失敗。但是,你知道自己今天需要什麼,卻不一定知道自己明天需要什麼。也許你可以猜到明天的需求,也許吧,但肯定還有些事情出乎你的意料。

對於今天的工作,我瞭解得很充分;對於明天的工作,我瞭解得不夠充分。但如果我純粹只爲今天工作,明天我將完全無法工作。

重構是一條擺脫束縛的道路。如果你發現昨天的決定已經不適合今天的情況,放心改變這個決定就是,然後你就可以完成今天的工作了。明天,喔,明天回頭看今天的理解也許覺得很幼稚,那時你還可以改變你的理解。

是什麼讓程序如此難以相與?下筆此刻,我想起四個原因,它們是:
難以閱讀的程序,難以修改;
邏輯重複的程序,難以修改;
添加新行爲時需要修改既有代碼者,難以修改;
帶複雜條件邏輯的程序難以修改;

因此,我們希望程序:1、容易閱讀;2、所有邏輯都只在唯一地點指定;3、新的改動不會危及現有行爲;4、儘可能簡單地表達條件邏輯。

重構是這樣一個過程:它在一個目前可以運行的程序上進行,企圖在“不改變程序行爲”的情況下賦予上述美好的性質,使我們能夠繼續保持高速開發,從而增加程序的價值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章