爲什麼開發者不願意重構他們的程序?(摘錄)

爲什麼開發者不願意重構他們的程序?
---摘自《重構--改善既有代碼的設計》

假設你是一位軟件開發者。如果你的項目剛剛開始(沒有向下兼容的問題),如果你知道系統想要解決的問題,如果你的投資方願意一直付錢知道你對結果滿意,你真夠幸運。雖然這樣情景適用面向對象技術,但對我們大多數人來說,這是夢中才會出現的情景。

更多時候,你需要對既有軟件進行擴展,你對自己所做的事情沒有完整的瞭解,你受到生產進度的壓力。這種情況下你該怎麼辦?

你可以重寫整個程序。你可以依賴自己的設計經驗來糾正程序中存在的錯誤,真是創造性的工作,也很有趣。但誰來付錢呢?你又如何保證新的系統能夠完成舊系統所做的每一件事情呢?

你可以拷貝、修改現有系統的一部分,以擴展它的功能。這看上去也許很好,甚至可能被看做一種複用的方式:你甚至不必理解自己複用的東西。但是,隨着時間流逝,錯誤會不斷地被複制、被傳播,程序變得臃腫,程序的當初設計開始腐敗變質,修改的整體成本逐漸上升。

重構是上述兩個極端的中庸之道。通過“重新組織軟件結構”,重構使得設計思路更詳盡明確。重構被用於開發框架、抽取可複用組件、使軟件架構更清晰、使新功能的增加更容易。重構可以幫助你充分利用以前的投資,減少重複勞動、使程序更簡化更有性能。

假設你是一位開發者,你也想獲得這些好處。你同意Fred Brooks所說的“應對並處理變化,是軟件開發的根本複雜性之一”。你也同意,就理論而言,重構能夠提供上面所說的各種好處。

爲什麼還不肯重構你的程序呢?有幾個可能的原因:
1、你不知道如何重構;
2、如果這些利益是長遠(才展現)的,何必現在付出這種努力呢?長遠看來,說不定當項目收穫這些利益時,你已經不在職位上了。
3、代碼重構是一項額外工作,老闆付錢給你,主要是讓你編寫新功能。
4、重構可能破壞現有程序。

這些擔憂都很正常,我經常聽到電信公司和其他高科技公司的員工那麼說。這其中有一些技術問題,以及一些管理問題。首先必須解決所有這些問題,然後開發者才能會考慮在他們的軟件中使用重構技術。
發佈了23 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章