使用符合設計或「代碼合同」(前置條件,檢查斷言,後置條件,類不變量等)的語言使「測試」儘可能接近您的類和類特徵(方法和屬性)儘可能。然後使用TDD以合同測試您的代碼。
盡你所能使用盡可能多的自建代碼生成。生成的代碼被驗證,可預測,更易於調試,並且比全手編碼的代碼更容易/更快地修復。爲什麼寫下你能產生的東西?但是,請不要使用OPG(其他人)生成器!您生成的代碼是您控制並知道的代碼。
您可以期望在項目過程中花費翻轉比率 - 也就是說 - 您將在項目的開始階段(1:1)編寫大量手寫代碼和合同。當你看到模式時,教你編寫一個代碼生成器來爲你生成代碼並重用它。您生成得越多,設計,編寫,調試和測試的次數就越少。到項目結束時,你會發現你的方程已經顛倒過來:你的核心代碼少了,你的焦點轉移到了你的「葉代碼」(最後一英里)或專業化(相對於泛化和生成的)代碼。
最後 - 得到一個代碼分析器。一個好的,自動化的代碼分析規則系統和引擎將爲您節省大量時間,找到「愚蠢的錯誤」,因爲人們在如何使用特定語言編寫代碼方面存在衆所周知的問題。在艾菲爾,我們現在擁有埃菲爾督察,我們不僅使用了90多條規則,而且正在學習爲自己發現的「陷阱」編寫自己的規則。這樣的分析器不僅可以幫助您節省錯誤,而且可以提高您的設計 - 即使是綠色程序員也能「快速獲得它」,並儘早停止發現菜鳥錯誤並學習更快!
重寫現有系統的經驗法則是:「如果寫了10年,重寫需要10年。」在我們的案例中,我們使用艾菲爾,設計合同,代碼分析和代碼生成,在4年內重新編寫了14年系統,並將全部交付4/2。新系統比舊系統複雜約4倍至5倍,所以這就說了很多!