重構和增加功能

重構和增加功能 

 黃國強 2004年09月16日                                 

    今天有一位同事問到一些開發的問題,我認爲比較典型,故寫上一段短文,希望能給大家一點啓發。
    我們遇到軟件增加功能的時候,傳統的方法是拿過源代碼直接動手修改。這本身亦無可厚非,一般都是這樣。但如果我們換個角度,從敏捷開發方法的角度考慮,卻大有問題。因爲直接修改代碼本身有一個可怕的後果,就是引入bug,原先正常運轉的功能面臨被破壞的危險。
    敏捷開發方法以快速響應用戶需求和提供高質量的產品而博的廣泛的讚譽。從這個角度分析,上述增加功能的行爲應該由兩部分步驟構成,即重構和OCP擴展。我們看一下重構的定義。重構即在不改變現有功能的情況下修改現有代碼。而OCP(開閉原則)的定義是在不改變現有代碼的情況下,擴展軟件功能。
    所以,第一步我們改代碼的時候千萬不要引入新的功能。重構的目的是在增加新的功能的時候不用更改現有的哪怕一行代碼。第二步OCP擴展階段則用繼承的方式增加新的類來擴展軟件的功能,從而達到在不修改現有代碼的情況下擴展軟件功能的目的。
    好像有點過於理想化了,不過儘量把握這個原則,才能使我們有可能開發出高質量的軟件產品。否則必然陷入泥潭而不能自拔。

發佈了93 篇原創文章 · 獲贊 11 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章