2010-01-19 64 views
0

我們在我們的項目中有這個遺留的圖像查看器組件,它工作正常,但它的來源是一個真正的混亂。我必須爲該組件添加一項新功能,以便人們可以使用光筆爲圖像添加註釋,這本來不是一項複雜的任務,但可能是處理我們現有代碼的噩夢。如何將新功能添加到現有組件?

我真的很困惑,現在我不知道該從哪裏開始。我是否必須重構現有代碼?如果不是,我還能做什麼?

所以,這裏是我的問題:處理這種情況的最好方法是什麼(不那麼痛苦)?

回答

1

寫了很多很多的測試,可以讓您驗證您對系統所做的更改不會更改或破壞現有功能。

這些測試就像施工人員正在進行重建時用於支撐實體建築物的支撐工作。該支架工作用於保持現有基礎架構完好無損。您需要儘可能多的單元和集成測試來保留系統的基礎架構,因爲您有時間編寫。

這些測試將允許您對系統進行小的迭代更改,並輕鬆驗證這些更改是否仍然保持預期行爲。

+0

儘管我不認爲爲我們的組件編寫測試會很容易,但是當涉及到重構時,我特別喜歡單元測試的粉絲。感謝您的建議 – Beatles1692 2010-01-19 07:43:05

1

你應該閱讀本非常好的文章Big Ball of Mud。並且爲了您的答案,我們在某個時候會得到一大堆泥巴,我們需要添加新的功能。重新分解這樣的代碼不是一個好主意,因爲它需要大量的測試。但增加幾條新線不會損害它。所以,除非你有很多時間,測試人員也可以將新功能添加到現有代碼中。雖然目前的代碼看起來很亂,但記住它的工作原理和測試。閱讀這篇文章,並將你的想法化妝爲哪種方法是好的。

+0

順便說一下Vrsalovic指出了一篇很好的文章你也應該讀一讀。 – affan 2010-01-19 07:28:12

+0

取決於你如何去重構。大的重構當然不是可取的,但最好是在做出這些小改動時儘量做出小的改進。特別是如果你預見到你會在一段時間內陷入泥巴球。 – 2010-01-19 07:28:40

+0

是的你的權利。我絕對贊成重新考慮因素,但改變大量的好處並不是一個好主意。如果您可以以可恢復的方式首先重構我的隔離功能,而不是經常進行更改,那麼可以提高代碼的質量。我假設那個人必須做出一次性改變。 – affan 2010-01-19 07:53:28

相關問題