我們在我們的項目中有這個遺留的圖像查看器組件,它工作正常,但它的來源是一個真正的混亂。我必須爲該組件添加一項新功能,以便人們可以使用光筆爲圖像添加註釋,這本來不是一項複雜的任務,但可能是處理我們現有代碼的噩夢。如何將新功能添加到現有組件?
我真的很困惑,現在我不知道該從哪裏開始。我是否必須重構現有代碼?如果不是,我還能做什麼?
所以,這裏是我的問題:處理這種情況的最好方法是什麼(不那麼痛苦)?
我們在我們的項目中有這個遺留的圖像查看器組件,它工作正常,但它的來源是一個真正的混亂。我必須爲該組件添加一項新功能,以便人們可以使用光筆爲圖像添加註釋,這本來不是一項複雜的任務,但可能是處理我們現有代碼的噩夢。如何將新功能添加到現有組件?
我真的很困惑,現在我不知道該從哪裏開始。我是否必須重構現有代碼?如果不是,我還能做什麼?
所以,這裏是我的問題:處理這種情況的最好方法是什麼(不那麼痛苦)?
的問題不是一個確切的重複,但此相同的答案適用(你只需要一個變化的列表)
寫了很多很多的測試,可以讓您驗證您對系統所做的更改不會更改或破壞現有功能。
這些測試就像施工人員正在進行重建時用於支撐實體建築物的支撐工作。該支架工作用於保持現有基礎架構完好無損。您需要儘可能多的單元和集成測試來保留系統的基礎架構,因爲您有時間編寫。
這些測試將允許您對系統進行小的迭代更改,並輕鬆驗證這些更改是否仍然保持預期行爲。
你應該閱讀本非常好的文章Big Ball of Mud。並且爲了您的答案,我們在某個時候會得到一大堆泥巴,我們需要添加新的功能。重新分解這樣的代碼不是一個好主意,因爲它需要大量的測試。但增加幾條新線不會損害它。所以,除非你有很多時間,測試人員也可以將新功能添加到現有代碼中。雖然目前的代碼看起來很亂,但記住它的工作原理和測試。閱讀這篇文章,並將你的想法化妝爲哪種方法是好的。
儘管我不認爲爲我們的組件編寫測試會很容易,但是當涉及到重構時,我特別喜歡單元測試的粉絲。感謝您的建議 – Beatles1692 2010-01-19 07:43:05