痛點
- 難以修改
- 老代碼看不懂味滞,難以理解
- 改一個問題,冒出N個問題
- 業(yè)務(wù)邏輯太分散壮莹,沒有一個整體的集中的抽象
- 牽一發(fā)動全身,改個小功能要推翻重做
- 難以測試
- 條件太多姻檀,無法模擬
- 只能一起跑命满,不能部分測試
解決方案
- 架構(gòu)設(shè)計:領(lǐng)域驅(qū)動設(shè)計
- 代碼設(shè)計:面向?qū)ο蟆⒅貥?gòu)绣版、設(shè)計模式
- 自動化管理:SonarQube + jacoco + Jenkins
評價代碼質(zhì)量的維度
- 復(fù)雜度
- 認知復(fù)雜度
- 圈復(fù)雜度
- 覆蓋率
- 分支覆蓋率
- 行覆蓋率
- 單元測試成功率
- 重復(fù)
- 重復(fù)的塊
- 重復(fù)的行%
- 問題
- 阻斷
- 嚴重
- 主要
- 次要
- 可維護性
- 技術(shù)債務(wù)
- 異味
自動化代碼質(zhì)量檢測
-
sonarlint
IDE插件胶台,實時監(jiān)測代碼問題,提供修改建議
-
sonarqube
-
質(zhì)量閥配置
-
質(zhì)量高的項目
-
質(zhì)量差的項目
-
查找問題大的類
-
集成單元測試覆蓋
-
-
持續(xù)集成
-
jenkins集成
-