【C++代码整洁之道】遗留系统之殇
遺留系統之殤
本系列文章均整理自《C++代碼整潔之道——C++17可持續軟件開發模式實踐》
測試金字塔
在軟件開發項目中有不同級別的質量保證措施, 這些不同級別的質量保證措施通常使用金字塔的形式形象的表達, 也就是所謂的測試金字塔.
因為實踐表明, 關于測試實施和維護的總成本是朝著金字塔頂端增長的. 大型系統的測試和手動的用戶驗收測試通常是很復雜的, 并且一般需要大規模的組織又難以實施自動化.
但是不幸的是, 在一些軟件開發項目中, 你會發現退化的測試金字塔. 這些項目中人們把更多的精力投入到高層的測試中, 忽略甚至沒有單元測試.
破窗效應
此理論認為環境中的不良現象如果被放任存在, 會誘使人們仿效, 甚至變本加厲.
一幢有少許破窗的建筑為例, 如果那些窗不被修理好, 可能將會有破壞者破壞更多的窗戶. 最終他們甚至會闖入建筑內, 如果發現無人居住, 也許就在那里定居或者縱火. 一面墻, 如果出現一些涂鴉沒有被清洗掉, 很快的, 墻上就布滿了亂七八糟的東西. 一條人行道有些許紙屑, 不久后就會有更多垃圾, 最終人們會視若理所當然地將垃圾順手丟棄在地上. 這個現象, 就是犯罪心理學中的破窗效應.
童子軍原則
在離開露營地的時候, 應該讓露營地比你來之前還要干凈.
改善代碼并不一定要大刀闊斧的去做, 也可能只是一次小小的清理. 例如:
- 重命名命名不佳的類, 變量, 函數或方法
- 將大型函數分解為更小的函數
- 讓需要注釋的代碼不言自明, 以避免注釋
- 清理復雜而令人費解的 if-else 組合
- 刪除一小部分重復的代碼
代碼所有權集體化
代碼所有權集體化意味著我們應該真正的融入團隊. 每個團隊成員在任何時候都可以對任何代碼進行更改或擴展, 不應該有這樣的態度 “這是 A 的代碼, 這是 B 的模塊, 我不會碰他們!”. 其他人可以接管我們寫的代碼, 這應該被當做一種很高的衡量標準, 團隊中的任何人都不應該害怕, 或者必須獲得許可才能整理代碼或添加新功能. 代碼所有權集體化這種文化將使童子軍原則很好的執行.
是什么在阻擋我們的步伐
惡性循環
如何改善
我們首先開啟了為遺留代碼補充單元測試的工作, 新需求按照 TDD 的方法進行開發, 期望通過建立更加完善的測試體系來打破上述的惡性循環
但是為遺留系統補充單元測試確實非常困難, 任重道遠, 方向方法都還需要不斷的摸索改進.
總結
以上是生活随笔為你收集整理的【C++代码整洁之道】遗留系统之殇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 商品分类无限层级递归
- 下一篇: koa --- [MVC实现之一]自定