Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测

·         Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题

1. 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写

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

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

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

5. 注释不足或者过多 没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷

6. 缺乏单元测试 sonar可以很方便地统计并展示单元测试覆盖率

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

主要特点:

·         代码覆盖:通过单元测试,将会显示哪行代码被选中

·         改善编码规则

·         搜寻编码规则:按照名字,插件,激活级别和类别进行查询

·         项目搜寻:按照项目的名字进行查询

·         对比数据:比较同一张表中的任何测量的趋势

架构图:

注:上述引用自开源中国社区:代码质量管理平台 Sonar

http://sonar.oschina.net/

SonarLint插件的在线安装

1.    Eclipse工具栏选择Help->Eclipse MarketPlace,如下图所示:

2.    弹出EclipseMarketPlace界面,在Find栏输入sonar就可以搜索出sonar相关的插件,选择SonarLint2.0.0,Install->Confirm->选择同意协议->Finish,如下图所示:

3.    3

安装成功后,会弹出“Software Updates”界面提示需要重启Eclipse使安装生效,点击“Yes”,重启之后就可以使用了,如下图所示

SonarLint的使用

1.  Eclipse工具栏选择Window->Show View->other,如下图所示:

2.  弹出“Show View”界面,输入Sonar,选择“SonarLintIssues”点击“OK”,如下图所示:

3.  打开需要进行代码审查的java或js文件,SonarLint将会自动进行代码审查,在控制台输出审查结果,如下图所示:

问题级别

一般情况下我们需要确保 不出现次要(包括次要)以上级别的错误。

4.  SonarLint默认在打开文件的时候自动进行代码审查。如果不想使用自动审查,设置方法:右键单击项目->Properties->SonarLint->取消“Run SonarLint automatically”->Apply->OK,如下图所示:

5.  手动审查:右键审查文件->SonarLint->Analyze分析文件,如下图所示:

6.  双击控制台的审查结果,可以自动定位到具体被审查内容的位置。如果修改代码,控制台将会自动刷新审查结果,如下图所示:

7.      右键审查结果,选择“Rule description”,查看针对单个问题的分析及改进建议,如下图所示:

传说中的 SonarLint的更多相关文章

  1. SonarLint(Sonar) 代码质量管理

    一.Sonar是什么? Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groov ...

  2. SonarLint插件的安装与使用

    注意:版本要求Eclipse(4.2,3.8)以上,Java3.1.2,JavaScript 2. 一.SonarLint插件的安装方式 1.安装方式一:在线安装 1)Eclipse工具栏选择Help ...

  3. 这个好像、也许、或许、大概、应该、Maybe真的可以算是传说中的Spring.Net了吧

                                                            这个好像.也许.或许.大概.应该.Maybe真的可以算是传说中的Spring.Net了吧 ...

  4. 转载:传说中的T检验

    第二周结束:传说中的T检验 小耿2014-01-21 10:58 本文和上一篇笔记一样:语言十分啰嗦.请大家忍耐…… 以前我不懂统计的时候(现在也不懂),只知道数据出来了要做三件事:1,检验一下数据是 ...

  5. 那传说中的P、NP以及NPC问题

    那传说中的P.NP以及NPC问题     (这里只是自己的一些总结) 在讲这几个问题之前,有几个东西是必须要说的,包括时间复杂度.空间复杂度.图灵机什么的.那么我们就慢慢来一一说来.    图灵机:图 ...

  6. idea 集成sonarLint

    1.目标 idea集成sonar的代码检查,实现可以在提交代码前就检查你的代码,而不是将代码提交之后,之后再去检查. Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量 ...

  7. Java代码规范与质量检测插件SonarLint

    1.  SonarLint SonarLint是一个代码质量检测插件,可以帮助我们检测出代码中的坏味道 下载与安装 在需要检测的单个文件或者单个项目上右键 --> Analyze --> ...

  8. SonarLint 代码质量管理

    Below are the instructions of how to install and use SonarLint. Install SonarLint Extensions in VS20 ...

  9. idea 集成sonarLint检查代码bugs

    1.目标 idea集成sonar的代码检查,实现可以在提交代码前就检查你的代码,而不是将代码提交之后,之后再去检查. Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量 ...

随机推荐

  1. 天下武功,无快不破,Python开发必备的6个库

    01 Python 必备之 PyPy PyPy 主要用于何处? 如果你需要更快的 Python 应用程序,最简单的实现的方法就是通过 PyPy ,Python 运行时与实时(JIT)编译器.与使用普通 ...

  2. 高可用Kubernetes集群-6. 部署kube-apiserver

    八.部署kube-apiserver 接下来3章节是部署Kube-Master相关的服务,包含:kube-apiserver,kube-controller-manager,kube-schedule ...

  3. 1035 Password (20 分)(字符串)

    注意下单复数 #include<bits/stdc++.h> using namespace std; pair<string,string>pa; int main() { ...

  4. leetcode个人题解——#34 Find First and Last Position of Element in Sorted Array

    思路:先二分查找到一个和target相同的元素,然后再左边二分查找左边界,右边二分查找有边界. class Solution { public: , end = -; int ends; int lS ...

  5. PHP使用static关键字声明静态属性和静态方法

    PHP使用static关键字声明静态属性和静态方法 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法. 静态属性和静态方法不需要在被类实例化的情况下就可以直接使用. ...

  6. [T-ARA][너 때문에 미쳐][因为你而疯了]

    歌词来源:http://music.163.com/#/song?id=5402880 作曲 : 赵英秀/김태현 [作曲 : 赵英秀/k/gim-Tae-hyeon] 作词 : 辉星 [作词 : 辉星 ...

  7. eclipse 简单操作

    1.设置字体: windows --> preferences --> general --> Colors and Fonts --> Basic --> 双击 Tex ...

  8. MySQL Proxy和 Amoeba 工作机制浅析

    MySQL Proxy处于客户端应用程序和MySQL服务器之间,通过截断.改变并转发客户端和后端数据库之间的通信来实现其功能,这和WinGate 之类的网络代理服务器的基本思想是一样的.代理服务器是和 ...

  9. Oracle 11g用exp无法导出空表的处理方法

    Oracle 11G在用EXPORT导出时,空表不能导出. 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment ...

  10. Java 通过先序中序序列生成二叉树

    题目 二叉树的前序以及后续序列,以空格间隔每个元素,重构二叉树,最后输出二叉树的三种遍历方式的序列以验证. 输入: 1 2 3 4 5 6 7 8 9 10 3 2 5 4 1 7 8 6 10 9 ...