鮑勃大爺調查提問:兩者哪個更昂貴?A.在程式碼中新增難以更改的功能。B.保持程式碼足夠靈活性以輕鬆新增新功能。
眾說紛紜:
靈活性可能導致更多的設計時間和複雜性。這個詞本身看起來不錯,但沒那麼簡單。
我現在正在(艱難地)學習到,隨著複雜性的增加,維持軟體專案中的變化速率變得越來越困難。如果我可以回去一年,我肯定會在設計更多SOLID方面投入更多的前期精力。
我認為靈活性更昂貴。理由:靈活性通常會導致過度抽象,從而過度滲透到測試中。另外,使用者可能會注意到效能降低。我寧願在舊程式碼上使用TDD,並且僅在測試告訴我需要時才引入靈活性。
我記得歷史老師說,在宗教法庭上,可怕的事情是以上帝的名義完成的。我已經看到以OO的名義做的可怕的事情。
我選擇A,但我認為B也取決於開發人員/工程師的技能。
這個問題缺乏背景。也許程式碼很簡單,但是很難更改。然後將其丟棄並使用新功能再次編寫將更便宜。只要具有有意義的測試更改就很便宜。
最好的方法是:“保持程式碼“簡單”到足以輕鬆新增新功能。” 另外:“保持足夠的迴歸測試以無畏地新增新功能。” 簡單性和迴歸測試取代了為未知的未來提供靈活性的需求。
有人說靈活性會導致過度投入和過度抽象,但這將意味著程式碼難以維護。因此,我選擇A,因為靈活的程式碼必須良好且易於維護。
取決於您如何量化技術債務成本
取決於您對“難以改變”的含義以及為何難以改變。
這就像複利-取決於變化率。最初,義大利麵條程式碼的成本較低。隨著時間的流逝,變化的速度增加-作為人類,我們希望在更短的時間內得到更多。這時靈活性變得更便宜,而義大利麵條式程式碼開始削弱企業。
相關文章
- C# 程式碼中呼叫 Javascript 程式碼段以提高應用程式的配置靈活性(使用 Javascript .NET 與 Jint)C#JavaScript
- 掌握C語言指標,輕鬆解鎖程式碼高效性與靈活性(中)C語言指標
- 程式碼歷史上最昂貴的 7 個錯誤
- EST——編寫Less程式碼更輕鬆!
- 為什麼你的程式碼如此難以理解
- 輕鬆導航:教你在Excel中新增超連結功能Excel
- 兩行程式碼輕鬆讓 Java 實現大文字平行計算行程Java
- 短影片app原始碼應以多元化的特色功能來滿足使用者APP原始碼
- 輕鬆連線 ChatGPT實現程式碼審查ChatGPT
- pdf程式碼新增水印
- 程式碼大全中保持鬆散耦合的demo
- 思考:如何寫出讓同事難以維護的程式碼?doge
- 如何通過程式碼庫的抽象分支以增量方式進行大規模更改 - Paul抽象
- 程式碼分享:體現js靈活性的def.jsJS
- HOOK大法實現不修改程式程式碼給程式新增功能Hook
- Google 現在可以更輕鬆地檢查你的密碼是否洩露Go密碼
- 運用動態代理來提高程式碼的靈活性
- 輕鬆整合系列一:如何向 KubeBlocks 新增新的資料庫型別?以 Oracle MySQL 為例BloC資料庫型別OracleMySql
- 以程式碼愛好者角度來看AMD與CMD
- 鮑勃大爺:SOLID概念解釋Solid
- 填報表中如何新增 html 程式碼HTML
- 新增多個使用者的shell指令碼指令碼
- ChatGPT:讓程式開發更輕鬆ChatGPT
- javascript新增刪除cookie程式碼JavaScriptCookie
- 尋找寫程式碼感覺(十四)之 新增功能的開發
- 【譯】在除錯時輕鬆導航程式碼委託除錯
- 編寫程式碼的若干個基本規則(以Java為例)Java
- Java 18 新增@snipppet標籤,註釋中寫樣例程式碼更舒適了!Java
- 怎樣在Excel中新增水印?學會這個方法可以輕鬆搞定Excel
- 兩個案例輕鬆理解MyBatis中的TypeHandler!MyBatis
- 動態脫敏落地不再難,昂楷助您輕鬆解決!
- 輕鬆使用WebWorker,解放耗時較大的演算法程式碼Web演算法
- TIOBE 和 PyPI 兩大程式語言排行榜哪個更靠譜?
- 遊戲AI三大難:樣本大、成本高、靈活性差遊戲AI
- JavaScript 程式碼開頭新增分號JavaScript
- JavaScript新增class樣式類程式碼JavaScript
- 在redis中使用lua指令碼讓你的靈活性提高5個逼格Redis指令碼
- ORACLE 12.2中的更改與新功能Oracle