微信号:agile-club

介绍:DevOps实践社区,精选干货,活动信息等

Codacy:一个新的容易使用的代码质量和审查自动化解决方案

2017-08-02 07:35 Sylvain Leroy

| 作者:Sylvain Leroy

| 翻译:沈维军


Codacy被超过一千家公司使用来进行代码审查和分析,不仅展示代码的质量,而且随着时间推移的进步。

不久前,我为公司组织了一次关于“代码质量和为什么开发人员应该关心它”的演讲。在这次演示中,我证明了一些工具的有效性,这些对于年轻开发者和久经沙场的IT开发人员来说都是不熟悉的。其中的一个工具,给我带来了很多的问题: codacy。我将展示其功能特性并且比较codacy和sonarqube。(更多信息:https://about.sonarcloud.io/)

应用的质量测量方法选择如何影响软件团队的工作方式?

免责声明:本文不代表codacy的观点。它反映了我的个人观点和经验。

根据一项codacy的研究,codacy的产品可以提高代码质量感知达到20%和优化代码审查过程达到30%。我们可以假设它反映了新的代码质量解决方案与传统代码相比带来的突破。代码分析的能力似乎是选择解决方案的次要标准。接受采访的用户利用这种能力缓解和优化软件开发过程,证明了这种解决方案的投资回收率。

Codacy是一个公司,一开始是由Seedcamp2012年资助的Qamine呈现。其客户包括Adobe、Deliveroo、英特尔和Paypal。超过30000的开发者每天使用他们的产品,超过1000多家企业使用他们的服务。每天超过十亿行代码被分析。

1特征

下面是codacy的主要特征:

  • 代码审查自动化

  • 代码质量分析

  • 安全代码分析

  • 集群安装/多个实例

我第一次尝试codacy,使用我的Github帐号登录,启动了对我的公共代码库的一些分析。

乍一看,我们可以观察到大多数我的存储库都是没有一行配置信息的。codacy检测自动化便捷最需要的。

我的一个项目没有被分析。这个项目是在Groovy上使用gradle包脚本开发。

Codacy官方支持的语言有

  • Scala

  • java

  • JavaScript

  • Python

  • Ruby

  • PHP

  • Apex

  • SP

  • XML

  • Velocity

  • visualforce

  • C #

根据Codacy,它的语言支持包括一些开箱即用的插件:

  • CoffeeScript

  • CSS

  • C/C++

  • Dockerfile

  • SASS

  • ShellScript

  • Swift

  • TypeScript

  • LESS

  • Go

对于我的每一个项目,Codacy提供了我的项目质量的度量。

一个Codacy最大的特色是“每次提交的策略”。每一次提交Codacy会触发分析。它甚至分析我过去的提交来绘制时间轴上的趋势。对于每个提交,我们可以看到质量和创建/删除问题数量的演变…

软件界面干净,非常容易使用。小部件提供了评估当前项目质量的必要信息。度量和违例统计被结合在了一起,建立了一个简单的质量计量学模型(复杂度、风格、兼容性、易出错、性能、安全、未使用的代码)。这个质量计量学模型是Codacy特定的,即使它是足够接近ISO 250001/9126规范。Codacy似乎并没有提供任何SQALE/ISO或安全标准模型。

Codacy的一个界面上允许开发人员评估他们项目的安全特性。

Codacy强力地映射到你的库和代码文件。大多数的度量和违规都与您的文件相关,如截图中所示。抽象的表示,如包、模块和命名空间并不表示出来,对大型项目的分析往往很复杂。

每条信息都会被清楚地汇报,每个文件都会获得从A到F的评分。

新的界面更好地展示您的代码质量数据,基本上回答了两个重要问题:

  1. 我现在的代码质量如何?

  2. 我的代码质量是如何随时间演变的?

要回答第一个问题,您有项目级别(A到F)和四个主要指标(静态分析问题、复杂性、重复性和覆盖率)。每个问题都属于六类之一(安全性、易错性、代码风格、兼容性、未使用的代码和性能)。总体技术性欠缺也会被估计。

Codacy的一个很好的功能就是重复的代码很容易跟踪和跟进,就像这张截图:

Codacy的一个重要特征是本地化处理分支、标签和你的SCM提供的重要东西的可能性。它不需要创建几个项目来处理分支,或者进行复杂的项目命名。