痛点
- 难以修改
- 老代码看不懂,难以理解
- 改一个问题,冒出N个问题
- 业务逻辑太分散,没有一个整体的集中的抽象
- 牵一发动全身,改个小功能要推翻重做
- 难以测试
- 条件太多,无法模拟
- 只能一起跑,不能部分测试
解决方案
- 架构设计:领域驱动设计
- 代码设计:面向对象、重构、设计模式
- 自动化管理:SonarQube + jacoco + Jenkins
评价代码质量的维度
- 复杂度
- 认知复杂度
- 圈复杂度
- 覆盖率
- 分支覆盖率
- 行覆盖率
- 单元测试成功率
- 重复
- 重复的块
- 重复的行%
- 问题
- 阻断
- 严重
- 主要
- 次要
- 可维护性
- 技术债务
- 异味
自动化代码质量检测
-
sonarlint
IDE插件,实时监测代码问题,提供修改建议
sonarlint.png -
sonarqube
-
质量阀配置
sonar_quality_gate.png -
质量高的项目
sonarqube_good.png -
质量差的项目
sonar_bad.png -
查找问题大的类
sonar_big_bubble.png -
集成单元测试覆盖
sonar_jacoco.png
-
-
持续集成
-
jenkins集成
sonar_jenkins.png
-
网友评论