敏捷过程中如何保证代码质量

  • 时间:
  • 浏览:1

CheckStyle:注重代码格式、代码规范,通过检查编码格式、命名约定、Javadoc、类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范,提供常见IDE的插件,如eclipse,IDEA等。

再让我们我们都都都看看SonarQube中的某些重要概念。

SonarQube Plugins

a) 支持各种插件,包括开发语言,SCM,持续集成,安全认证等等;

在DevOps平台中,通过配置构建定义,将多个构建任务进行编排,通过自动可能性手动的法律法律最好的办法触发构建。在构建任务中增加“代码质量检测“任务,执行构建时,将对代码进行分析。

SonarQube Server

a) Web服务:供开发者、管理人员浏览质量指标和SonarQube的配置;

b) 搜索服务:提供页面搜索功能;

c) 计算引擎:外理生成的分析报告,并将数据保存到数据库;

还要看一遍SonarQube各组件的工作流程:

a) 开发者在IDE中编码,并使用SonarLint执行本地代码分析;

b) 开发者向软件配置管理平台(Git,SVN,TFVC等)提交代码;

c) 代码提交触发持续集成平台自动构建、使用SonarQube Scanner执行分析;

d) 分析报告被发送到SonarQube Server进行外理;

e) 外理好的报告生成对应可视化的视图,并将数据保持到数据库;

f) 开发者还要在页面通过查看,评论,外理间题来管理和减少技术债;

单独执行代码分析的报告

既然要做代码质量分析,曾经们先看看常用的代码分析工具。

除此之外,我们我们都都都还能在DevOps平台中看一遍某些报表。

质量配置:质量配置提供了根据需求配置一组代码规则的能力,这组代码规则将被用于分析某些指定的组件(项目)。相似于,项目A对应那此编程语言,适用于那此代码规则等等。

二、常见的代码质量分析工具

但会 ,代码分析正是DevOps平台保证代码质量的重要手段。

SonarQube主要有一下特点:

支持多种语言:20种以上主流编程语言

自动化分析:通过与持续集成平台进行集成还要实现自动化质量分析

提交前预检查:IDE插件SonarLint还要让开发者在提交代码前进行自检查

扩展性强:插件扩展机制强大,已有200+插件,还要开发某些人的插件

间题关联到源码:所有间题都关联到具体的代码行,比较直观

易于集成:通过插件支持多种软件生命周期管理平台

当代码分析构建任务执行完成后,分析报告可能性发送到SonarQube Server进行外理,最终我们我们都都都看一遍的是代码的各种度量指标。

质量阈:质量阈是一系列对项目指标进行度量的条件。项目还要达到所有条件不需要 算整体上通过了质量阈。相似于,配置质量阈为新增Bugs大于10,新代码可靠率低于评级A,新代码可维护率低于评级B,那分析完成后若指标符合那此标准,则代码质量将被认为是不合格的。

根据报告,我们我们都都还要从可靠性,安全性,可维护性,覆盖率,重复代码,代码规模大小等维度对代码质量有另有三个白 全面的了解。代码质量分析三种 不须能直接减少缺乏数量,但会 代码质量分析能让我们我们都都都在构建环节及时发现并外理潜在缺乏和漏洞,让我们我们都都都能清楚了解到代码复杂性度,代码是是不是符合开发规范,从而让我们我们都都都做出正确的决策,外理风险和减少技术债务。

FindBugs:注重检测潜在的Bug和性能间题,通过检查类文件或jar文件将字节码与一组缺乏模式进行对比从而发现代码缺乏,提供UI界面和常见IDE插件。

HP Fortify:商用的代码安全分析工具,侧重于代码中的安全漏洞检测。Fortify通过与安全漏洞规则库进行匹配,将源码中的安全漏洞扫描出来,并生成报告和修复意见。

顶端讲到的代码分析是作为构建任务去执行的,除此之外,代码分析也还要单独去执行。在项目中关联代码库后,就还要新建代码分析,直接进行分析了。

从图中看一遍,DevOps平台的核心流程主要有定义,计划,构建,测试,部署,运行哪几个环节。代码分析是构建环节的组成每项。没有 DevOps平台中如保进行构建呢?这就引出下面这张图。

原文发布时间为: 2017-06-13

本文作者:田新会

本文来自云栖社区战略企业合作伙伴EAWorld,了解相关信息还要关注EAWorld。

报告比较简单,点击链接还要直接在SonarQube中查看完全报告

指标:SonarQube中的主要指标有可靠性,安全性,可维护性,测试覆盖率,复杂性度,重复代码,规模(大小),间题等。

单元测试覆盖率报表

四、DevOps平台中如保

为代码质量提供保障

下面我们我们都都都完全了解一下SonarQube。看看SonarQube的有那此组件。

本文讲的是敏捷过程中如保保证代码质量,在软件开发过程中,当另有三个白 功能开发完成后,如保去保证代码是可用的、没间题的?一般情况下,基本全是有单元测试、每日构建、功能测试等环节来保证。但会 ,保证代码可用就够啥后来?显然全是。

不管是在构建过程中执行代码分析构建任务,还是单独执行代码分析,都离不开构建引擎Jenkins的支持。

本文目录:

一、为那此要做代码质量分析

二、常见的代码质量分析工具

三、DevOps平台中的代码质量分析

四、DevOps平台中如保为代码质量提供保障

代码规则:在SonarQube中,通过插件提供的规则,在执行代码分析时对代码进行分析并生成间题。可能性规则中定义了修复间题话费的成本(时间),外理间题的代价以及技术债还要通过那此间题进行计算。规则一般有三种 类型:可靠性(Bug),可维护性(坏味道),安全性(漏洞)。

SonarQube Scanner

a) 运行在构建环境或持续集成环境中用于分析项目的另有三个白 或多个分析器;

SonarQube的各个组件是如保工作的呢?

另有三个白 软件项目开发完另有三个白 版本会有下另有三个白 版本,会有新的需求,曾经的功能也可能性会变更。你写的代码可能性会被别人使用,你也可能性还要修改别人写的代码。可能性只考虑代码的可用性,不考虑代码质量,没有 后期遇到的间题其维护成本可能性很高,不助于版本迭代。为了外理或减少维护和迭代成本,重视代码质量,做好代码质量分析和管控是最好的法律法律最好的办法。

三、DevOps平台中的代码质量分析

可维护性报表

一、为那此要做代码质量分析

顶端介绍了DevOps平台如保进行代码质量分析。那现在让我们我们都都都看下在DevOps平台中的代码质量分析结果。

在构建环节,DevOps平台的职责是:配置构建的触发法律法律最好的办法、保留策略、参数,根据构建定义配置生成对应的Jenkins Pipeline配置,调用Jenkins的API触发创建和执行Jenkins Job,但会 查询Jenkins Job的执行进度和结果;Jenkins的职责是:实际去创建和执行Jenkins Job,并提供Job执行情况的查询API供DevOps平台调用。

SonarQube:开源的代码质量管理平台,暗含了挂接、注释、编码规范、潜在缺乏、代码复杂性度、单元测试、重复代码7个维度。通过强大的插件扩展机制,支持对主流编程语言的指标分析,目前还要支持超过20种以上主流编程语言。

还要看一遍SonarQube主要有这几每项组成:

SonarQube Server外理分析报告时,根据质量配置中的代码规则进行匹配,从而生成具体的指标数据,但会 根据质量阈中的阈值判断出项目的代码是是不是合格。

说了没有 多,在DevOps平台是如保做代码分析的?先让我们我们都都都看看DevOps平台的核心流程。

SonarQube Database

a) 存储SonarQube的所有配置(指标、用户配置、插件配置等);

b) 存储被分析项目的质量报告,各种视图数据;

在构建结果中代码质量分析的报告

在DevOps平台中我们我们都都都是如保做代码分析的呢?我们我们都都都的选则是SonarQube。

PMD: 注重检查源文件中的潜在间题,还要检查Java代码中是是是不是未使用的变量、私有法律法律最好的办法,是是是不是空的try/catch、是是不是过于复杂性的表达式等等。