我繼承了一個C#.NET應用程序,我一直在擴展和改進一段時間。總的來說,這顯然是一項急功近利的工作(或者寫這篇文章的人似乎不如我自己)。該應用程序從嵌入式設備中提取一些數據並對其進行處理。核心是主應用程序表單中的通信線程,該線程執行600多行代碼方法,該方法在整個地方調用函數,實現一個狀態機 - 大量的if-state-then-do類型代碼。與設備的交互是通過全局設置狀態/模式並讓線程完成它的事情來完成的。 (這只是代碼糟糕的一個例子 - 總體上它不像OO,它提醒了設備固件寫入的嵌入式C代碼的風格)。
我的問題是這段代碼是應用程序的核心。軟件,通信協議或設備固件根本沒有記錄。顯然,繼續我的工作,我必須與此代碼進行交互。
我想得到的一些指導是,是否值得報廢這個代碼&試圖從我可以逆向工程的信息中拼湊出更合理的東西?我無法決定!我不想重構的原因是因爲代碼已經工作,而改變它肯定會是一個漫長而艱辛的任務。另一方面,不重構意味着我不得不妥協其他模塊的設計,以便我可以從這個狀態機調用我的代碼!
我聽說過「如果沒有損壞就不修復它!」,所以我想知道它是否應該適用於「它」影響未來代碼的設計!任何意見,將不勝感激!
謝謝!
此處的關鍵是確保您正在重構即改進結構*而不會修改行爲*爲此,在進行任何更改之前,您需要將測試更新到該核心,沒有人喜歡破壞的代碼。 – Gishu 2010-06-11 08:00:41