我最近參與了一個基於網絡的遊戲使用PHP編寫的引擎的項目。遊戲運行良好,但可能更強大,並有更多的功能 - 而且代碼既舊又相當醜陋。你如何重構你的舊PHP代碼?
這段代碼的問題(以及我懷疑的一般PHP代碼)的問題在於它已經發展到了它所處的位置,結構也不是很好,有很多幾乎相同的剪切/粘貼代碼片斷,即使在涉及功能的情況下也大量使用全局變量。當然,在任何地方都不是單一的單元測試,並且代碼被硬編碼爲使用特定的數據庫,並依賴於調用代碼的網頁中的$ _REQUEST字符串。
正確的做法是將部分代碼作爲子函數進行抽取,整理並添加一些單元測試以確保它繼續工作,並在此過程中添加一些模擬對象。然而,完全用手完成這件事是很乏味和容易出錯的,我想知道你是如何做到這一點的 - 有沒有一個IDE或工具可以幫助你,例如?我想有一個工具,可以幫助產生一個定義的代碼段的功能,建議哪些變量應該是參數,按價值或參考,自動添加$ this-> reference等。
這是太多了問,還是有一個很好的解決方案?
謝謝!
鏈接斷開,顯然不再在網上。 – Kzqai 2013-03-15 15:58:28
[本文](http://thinkinghard.com/blog/EconomicsOfTestingUglyCode.html)具有相同的標題,並且在2008年與@David的答案日期一致。 – 2013-07-29 21:50:25