原文地址:https://blog.csdn.net/luckystar689/article/details/53871821

------------------------------------------------------------------------

【前言】

bug越改越多,程序一换数据就崩,这就是目前我们系统的一个现状。在这之前,进行过前后台代码规范整理,代码判空等工作,但这是人工检测的,有点慢,效率也比较低。当重新导入数据之后,模块大多都起不来了。于是乎,忍无可忍,我们就用了强大的代码质量工具——sonar来自动检测我们的代码,因为我们要写更安全,更优雅的代码。

【sonar简介】

sonar(SonarQube)是一个开源平台,用于管理源代码的质量,它不仅是一个质量数据报告工具,更是代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,PHP,C#,C等。

【主要特点】

sonar可以从以下七个维度来检测代码质量:

1、不遵循代码标准

sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具规范代码的编写;

2、潜在的缺陷

sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具检测出潜在的缺陷;

3、糟糕的代码复杂度分布

文件、类、方法等,如果复杂度过高将难以改变,这使得开发热女难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试;

4、重复

显然程序中包含大量复制粘贴的代码质量低下的,sonar可以展示源码中重复严重的地方;

5、注释不足或者过多

没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅度下降;

6、缺乏单元测试

sonar可以很方便地统计并展示单元测试覆盖率;

7、糟糕的设计

通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以展示自定义的架构规则。通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用秦高,检测耦合。

【sonar使用】

由于架构师已经给咱们装好了sonarQube,咱们只需在Maven的配置文件的profiles节点中添加一个sonar的profile节点,就可以直接在项目中执行Maven build命令——clean verify soanr:sonar使用了,执行完了之后,在服务器上就可以看到我们测试的项目了:

profile节点代码:

  1. <profile>

  2. <id>sonar</id>

  3. <activation>

  4. <activeByDefault>true</activeByDefault>

  5. </activation>

  6. <properties>

  7. <!-- Optional URL to server. Default value is http://localhost:9000 -->

  8. <sonar.host.url>

  9. http://192.168.22.220:9000

  10. </sonar.host.url>

  11. </properties>

  12. </profile>

测试完成的代码:

A为最高级别,如果这几项全是A的话,那说明你写的代码真的是太棒了!!!

点开每个项目,查看详情:

 1、bug,duplicatinos等列表:

2、点开具体的某一项,显示所有的bug,或者有问题的地方。再继续往下点,就会看到我们有问题的代码了,也会给出我们相应的解决方案。

【总结】

通过两天的改bug,其实也就是改成规范的代码,说实在的,在改之前,我还不知道规范的代码原来应该是这样写的,虽然之前那样写也能够得到想要的结果,但是不是很安全,有潜在的缺陷。

这两天,没学啥技术,但是也涨了不少知识,我的收获总体来说主要有以下三点:

 1、之前咱们看到的代码乱,写法不规范,重复性高等。这些代码sonar都可以检测到,并给出我们正确的解决方案,我们在解决问题的同时,也知道了规范性的代码应该如何写。

2、sonarqube代码质量管理平台,是全英的,在解决问题的同时,我们又学到了英语。

3、在这样反复的测试,修改,再测试的过程中,能够提高我们编写代码以及阅读代码的能力。

代码质量管理工具】——sonar相关推荐

  1. 【代码质量管理工具】--使用sonarLint提高代码质量

    [背景] 项目组,在12月份的时候使用了强大的代码质量管理工具--Sonar来检测规范我们的代码,但是当时使用的时候会有一个缺陷,就是我每使用一次maven命令将代码扫描到sonarqube的网页端, ...

  2. dingding(钉钉)+sonar(代码质量管理工具)通知并打包成docker容器运行

    项目地址:https://gitee.com/vians/dingding-sonar dingding-sonar-docker 基于dingding-sonar的作者,钉钉的sonar集成通知,钉 ...

  3. 【代码质量管理工具】——sonar

    [前言] bug越改越多,程序一换数据就崩,这就是目前我们系统的一个现状.在这之前,进行过前后台代码规范整理,代码判空等工作,但这是人工检测的,有点慢,效率也比较低.当重新导入数据之后,模块大多都起不 ...

  4. 代码质量管理工具:SonarQube常见的问题及正确解决方案

    代码质量管理工具:SonarQube常见的问题及正确解决方案 SonarQube 简介 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以 ...

  5. 代码质量管理工具SonarQube概述

    SonarQube,即Sonar,是一款管理代码质量的开放平台,一个基于Web的应用软件. SonarQube能够从如下7个方面跟踪代码质量: 架构设计 编码规则Coding rules 代码注释co ...

  6. SonarQube:开源的代码质量管理工具

    SonarQube是一个开源的代码质量管理工具,如下图所示,它覆盖了代码质量的7个方面: SonarQube的主要特性: 通过插件扩展 支持新的编程语言.添加规则引擎.计算更复杂的度量指标,这些都可以 ...

  7. SonarQube代码质量管理工具的安装(Linux)

    一.安装配置sonar 1.Sonar介绍 Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具, ...

  8. 代码检查工具Sonar

    sonar介绍 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等) ...

  9. SonarQube代码质量管理工具安装与使用(sonarqube5.1.2 + sonar-runner-dist-2.4 + MySQL5.x)

    1. SonarQube安装(sonarqube5.1.2 + sonar-runner-dist-2.4) 1.1 前提条件 1) 已安装Java环境(version:1.7+) 2) 已安装MyS ...

最新文章

  1. 简单易学的python自动化办公教学视频-Python自动化办公之操作Excel文件
  2. java实现layui分页_基于LayUI分页和LayUI laypage分页的使用示例
  3. 斐波那契数列(fabnacci)java实现
  4. 配置apache支持cgi
  5. 【直播】深度卷积神经网络模型设计技术
  6. Boost:计算一些tail统计数据,插入数据,更新数据
  7. 教你如何申请CCNP的电子证书
  8. Spring源码之FactoryBean接口的作用和实现原理
  9. Inpaint 9 简体中文【订阅版+Win/Mac】
  10. 通俗地讲解傅立叶分析和小波分析间的关系
  11. 区块链-压缩格式的密钥
  12. LoadRunner-登陆web tours订票网站,预订一张机票后退出-1
  13. eclipse中保存Java文件时出现错误:Save could not be completed. Try File Save As... if the problem persists.
  14. Java用最少代码实现五子棋-玩家对战模式-人机对战模式-电脑策略对战
  15. Allegro-CRTL键的使用
  16. python实战-HTML形式爬虫-批量爬取电影下载链接
  17. SpringBoot一站式功能提供框架(一)整合MybatisPlus、整合Swagger Knif4j、整合Druid多数据源--柚子真好吃
  18. Google Drive文件共享链接在.sh中使用方法
  19. 数据库实验 嵌套查询和连接查询
  20. manifest文件linux,MANIFEST 文件扩展名: 它是什么以及如何打开它?

热门文章

  1. java 动态生成getset_通过get、set方法,动态生成对象
  2. c++ char* 改变长度重新赋值_[C/C++] 2 :分析下列代码有什么问题?
  3. java udp简单聊天程序_Java基于UDP协议实现简单的聊天室程序
  4. HDFS学习 Java连接hadoop
  5. oracle move 换用户,Oracle move方法释放delete后的表空间
  6. unique函数_C++核心准则C.35:基类的析构函数必须满足的条件
  7. teechart mysql_TeeChart 的应用
  8. C/C++中的typedef 和 #define
  9. 倒序查10条数据_10 | 怎么给字符串字段加索引?
  10. spark sql读取hive底层_[大数据]spark sql读写Hive数据不一致