文档章节

3、sonarqube实践

andersChow
 andersChow
发布于 2016/08/16 16:48
字数 662
阅读 96
收藏 0

简称sonar,这里仅针对sonar6.0。

一、sonar特性

    1)、sonar是一个开源、免费的代码质量管理平台,官方另有收费版本,提供更多的功能及支持。
    2)、支持各种语言,含主流的c、c++、object c、swift、java、php、c#、js、html、css、lua等,但c、c++、swift、lua等需要收费或授权,不支持    python。
    3)、支持插件开发,官方及第三方插件较为丰富,社区较为发达,版本更新较快,侧面反映了sonar程序遗留问题较多。
    4)、能做简单的代码复审,能对问题进行分配及邮件提醒。
    5)、sonar内部主要使用restapi作为数据交互方式,具体可以通过http://sonarip:sonarport/web_api查看,便于二次开发。

二、sonar目标

三、sonar工作原理

四、sonar架构设计

五、sonar帮助站点

    #官方文档
    http://docs.sonarqube.org/display/SONAR/Documentation
    #github主页
    https://github.com/SonarQubeCommunity
    #google+地址
    https://groups.google.com/forum/#!forum/sonarqube
    #stackoverflow地址
    http://stackoverflow.com/questions/tagged/sonarqube


六、项目实践

    公司主要采用java、c#开发,少数python、c\c++\objectc项目,所以sonar能满足大部分需求。
    我们对sonar的需求是:希望sonar能给我提供一个粗略的项目代码质量报表,含违反规则数量、单测数量、单测覆盖度及代码重复度等。

    1)、java采用规则
    findbug【全部规则】+google-checkstyle+部分pmd规则。
    我们认为findbugs大部分规则都是有用的,确实能起到减少bug或提高代码质量的目的,所以findbugs规则几乎全部采用,少数特殊规则,根据实际情况做删减。
    google-checkstyle大部分规则都是符合实际的,但是如缩进等还是修改为公司主流ide:idea的默认风格。
    pmd中有些规则稍显过时,所以我们选取部分规则。

    2)、c#采用规则
    fxcop

    规则采用逐步累加方式,我们要求各项目组在每次累加之前,必须逐步较少触发的规则,并逐步提高单测数量和单元测试覆盖率。

七、存在的问题

    1)、免费版sonarlint for idea存在服务器违反规则与idea中同步下来的违反规则数量不一致;sonar for vs,只支持vs2015,且无法同步违反规则到vs本地编辑环境中。
    2)、c#,不支持方法级别的圈复杂度统计。
    3)、c#覆盖度统计,我们使用opencover,使用vs自带的CodeCoverage,在项目结构特别复杂及fake时,会发生一些莫名的错误。

八、成果

项目信息:

总体信息:

© 著作权归作者所有

andersChow
粉丝 2
博文 27
码字总数 17456
作品 0
程序员
私信 提问
代码质量管理之SonarQube安装实践

1SONARQUBE简介1 1.1SONARQUBE安装需求1 1.1.1硬件需求1 1.1.2平台需求1 1.1.3数据库需求1 1.1.4浏览器需求1 2基础环境准备2 2.1测试环境准备2 2.1.1操作系统2 2.1.2安装软件一览2 2.2安装及...

bigstone2012
2016/06/02
0
0
sonar-关于安装配置(一)

安装环境: 本地mac机器(不同操作系统其实影响不大,参考官网) 预装环境: jdk1.8 关系型数据库(本人用mysql5.6) 安装配置步骤: 1、下载安装sonarqube 以及 sonar-runner 下载地址:http:...

大老米
2015/09/02
428
0
在阿里云环境下搭建基于SornaQube的自动化安全代码检测平台

一、背景和目的 近年来,随着新业务、新技术的快速发展,应用软件安全缺陷层出不穷。虽然一般情况下,开发者基本都会有单元测试、每日构建、功能测试等环节来保证应用的可用性。但在安全缺陷...

唐俊飞
2018/01/13
0
0
SonarQub代码分析平台部署

SonarQube构架 SonarQube(简称Sonar)是管理代码质量的开放平台,它可以快速地对代码质量进行分析,并给出合理的解决方案,提高管理效率,保证代码质量。 SonarQube框架包含以下四个部分: ...

亮公子
2018/06/26
0
0
SonarQube代码质量管理平台的配置与使用 吴水成

一、SonarQube的配置(前提,先用admin用户登录) 1、 安装中文汉化包: Setting >> Update Center >> AvailablePlugins >> LOCALIZATION >> Chinese Pack >> Install 安装完汉化包之后需要重......

牛角尖
2016/04/11
20
0

没有更多内容

加载失败,请刷新页面

加载更多

JWT学习总结

官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻译 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token(......

冷基
今天
4
0
AOP的学习(1)

AOP 理解AOP编程思想(面向方法、面向切面) spring AOP的概念 方面 -- 功能 目标 -- 原有方法 通知 -- 对原有方法增强的方法 连接点 -- 可以用来连接通知的地方(方法) 切入点 -- 将用来插入...

太猪-YJ
今天
4
0
一张图看懂亮度、明度、光度、光亮度、明亮度

亮度、明度、光亮度,Luminance和Brightness、lightness其实都是一个意思,只是起名字太难了。 提出一个颜色模型后,由于明度的取值与别人的不同,为了表示区别所以就另想一个词而已。 因此在...

linsk1998
昨天
11
0
Python应用:python链表示例

前言 python链表应用源码示例,需要用到python os模块方法、函数和类的应用。 首先,先简单的来了解下什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是...

python小白1
昨天
5
0
Source Insight加载源码

Source Insight是一个图形化的源代码查看工具(当然也可以作为编译工具)。如果一个项目的源代码较多,此工具可以很方便地查找到源代码自建的依赖关系。 1.创建工程 下图为Snort源代码的文件...

天王盖地虎626
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部