项目管理:如何控制代码质量

痛点

  • 难以修改
    • 老代码看不懂,难以理解
    • 改一个问题,冒出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

你可能感兴趣的:(项目管理:如何控制代码质量)