`
阅读更多

 开发人员的七宗罪

  1. 糟糕的复杂度分布
    文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,
    且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试
  2. 重复\\显然程序中包含大量复制粘贴的代码是质量低下的,
    sonar可以展示源码中重复严重的地方
  3. 缺乏单元测试
    sonar可以很方便地统计并展示单元测试覆盖率
  4. 没有代码标准
    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写
  5. 没有足够的或者过多的注释
    没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降
    而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷
  6. 潜在的bug
    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug
  7. 糟糕的设计(原文Spaghetti Design,意大利面式设计)
    通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系
    可以检测自定义的架构规则
    通过sonar可以管理第三方的jar包
    可以利用LCOM4检测单个任务规则的应用情况
    检测耦合

 

      随着工作代码质量要求越来越高,团队人员逐步扩大,GIT库每天上传的代码量也越来越多,

这个时候问题来,代码规范,代码质量成了一个比较难维护管理,初步尝试过很多基于ide的工具,

例如checkstyle,findbug等工具,但是无法形成统一的平台报表,也不方便对研发bug、开发质量

的问题的统计,通过查阅相关资料,以及看到itchina的推荐sonar代码质量管理平台。

      sonar,管理java源代码的质量,可以集成不同的测试工具,代码分析工具,例如checkstyle,findbug,jenkins,maven等流行构建工具,对分析的结果进行加工处理,分析代码需要优化完善地方,以及相关可以预计的bug,便于开发统一模式,加强开发上的细节问题。

       sonar5.1 的具体的安装教程详细请查看附件《sonar使用手册.docx》,在这里我主要描述的下sonar的客户端和服务端的大概的安装流程,使用思路,做任何事情,先确定前期的思路路线总是很重要,避免踩更多的坑

 

       sonar服务安装的流程:

       配置jdk---->sonar安装---->数据库安装---->配置sonar的数据库连接信息---->运行sonar平台----->web查看分析报表。

       客户端sonar的分析流程:配置jdk---->sonar-runner安装---->配置环境变量---->配置数据库访问信息----->配置需要进行分析的项目信息---->运行命令sonar-runner;

 

       那些年,我们一起踩过的坑?

       1.sonar5以上需要安装sonar-runner客户端,之前都是可以继承maven的sonar插件的,通过 mvn sonar:sonar 可以直接生成报表,导致我在这块浪费很多时间去继承maven项目,直到发现附件的sonar教程(百度文库某哥们整理的,充分感谢)sonar-runner客户端可以直接生成代码审查报表,方便省事,比maven插件好用多,避免代码审查侵入项目。

        2.sonar常用参数整理,避免理解太过于复杂,其实sonar的考核参数还是比较容易理解的,常用主要如下:

         常用参数:

    复杂度:简单归结于方法中包含“if、for、while、case、||、&&、?”等块的数目时,复杂度会加1,如果复       杂超过10,sonar认为是一个严重的问题。

    重复快:重读的代码块数;

    代码块:含有if, else, while, do, for, switch, break, continue, return, throw, synchronized, catch, finally等关键字的语句;

    违规级别:次要、主要、严重、阻塞;

       3.sonar客户端的配置信息,必须要和服务端保持一致;

 

        注意:附件《自动化审查工具指南.ppt》主要介绍了checkstyle,findbug,sonar工具的使用,以及相关截图;

                   附件《Sonar参数分析.docx》对sonar参数指标的相关的解释。

 

分享到:
评论

相关推荐

    Sonar Code Quality Testing Essentials

    《Sonar Code Quality Testing Essentials》不仅适合初学者入门学习Sonar的基本操作,也适合有一定经验的开发者深入了解Sonar的高级功能。通过本书的学习,开发者能够掌握如何有效地使用Sonar来提高代码质量,进而...

    SonarQube快速入门手册借鉴.pdf

    SonarQube提供了详细的文档和教程,包括安装指南、使用手册和FAQ等。开发者和项目经理可以通过官网http://www.sonarqube.org/下载相关资源和文档,以快速入门SonarQube。 SonarQube的主要特点包括: * 多语言支持...

    超声波接近开关使用入门.zip

    超声波接近开关是一种常用的传感器,它通过..."Sonar Bero Getting Started.pdf"这份文档应该会详细讲解超声波接近开关的入门知识,包括基本操作、设置指南和常见问题解答,对于初学者来说是一份非常有价值的参考资料。

    gf-golang资源

    sonar-project.properties文件是SonarQube项目属性配置文件,SonarQube是一个自动代码审查工具,用于持续检查代码质量和代码中的bug。这个文件定义了如何扫描GoFrame项目,包括配置项目特有的参数和规则。 .set_...

    vanilla-front-end-starter:香草前端入门套件,其工具可支持代码质量,可访问性,单元测试,端到端测试,连续集成设置和功能分支测试

    手册审核指南 CSS 使用BEM命名约定 JS 前缀DOM元素类名称或带有“ js-”的ID,以指示元素已链接到Javascript JS 对承诺使用Async / Await JS 保持代码分支到一个级别并减少嵌套的if / else语句 JS

    SonarWeb

    SonarQube和SonarLint等工具就是静态代码分析的代表,而SonarWeb可能是这类工具的一个Web实现。 代码质量管理则关注于确保代码的可读性、可维护性和可靠性。这包括遵循编码标准,保持一致的命名约定,减少冗余代码...

Global site tag (gtag.js) - Google Analytics