当前位置:云计算企业动态 → 正文

解析新致开发云如何持续实现代码review

责任编辑:editor004 作者:徐瑱 邓雷 |来源:企业网D1Net  2016-04-08 13:31:12 本文摘自:计算姬

在传统IT项目开发过程中,团队最害怕的便是在交付前的集成测试阶段突然发现bug而导致项目延迟甚至项目失败。而如今,凭借先进的持续集成技术,我们可以在开发过程中及时判断开发趋势,发现开发漏洞并做出有效的判断。每天进行多次集成,每次集成通过自动化的构建进行验证,从而尽早发现集成错误,极大程度地保证了项目开发的进程与质量。在下文中,我们将详细讨论如何通过SonarQube代码质量管理系统以及Jenkins工具实现自动化持续集成。

开发团队的协作中不可避免的存在以下问题:

1. 新手。项目组的实习生由于初来乍到对于软件开发经验不足,而项目在人手又不够的情况下直接将新人拉入正式环境工作,为项目埋下不规范代码的隐患。

2. 人员流动。老员工维护的模块可能不易于新员工的维护,由于工作交接不到位、水平层次和编码习惯不同的原因造成低质量代码的出现。

3. 代码规范意识薄弱或者疏忽。有些开发人员可能没有接受过专门的质量培训,或者在编码时疏忽了一些规则,随意编写不规范的代码。

以上问题会导致项目的维护效率低下,代码交接变得困难,有潜在的性性能和安全问题等等。因此,代码质量审查是现代开发团队必不可少的过程。

如何解决:

代码复查(Code Review)是很不错的一个解决方案,即让项目Leader或者有经验的员工专门对成员的代码进行复查。但是代码复查的人力代价太大,试想将项目有经验的员工拉取做代码复查,开发进度势必会受到影响,而且软件项目通常是庞大的,其工作量可想而知。因此,在人工之外,我们讨论一种利用机器的自动化代码审查工具SonarQube

SonarQube利刃:

SonarQube为代码的质量管理提供了一个平台,对传统的静态检测如PMDfindBugs等工具进行整合,并且提供了丰富而强大的插件,以适用于各种语言的代码质量分析。

支持的语言:Java, C/C++, Objective-C, C#, PHP, Flex, Groovy, JavaScript, Python, PL/SQL, COBOL

支持安卓代码审查

审查重复代码,代码标准,单元测试,测试覆盖率,代码复杂度,潜在的bug,多余的注释,代码设计和结构等,提供多方面的报告。

记录评审历史,提供多种视图的评估报告图表。

提供完全的自动化分析:可以和Maven,Ant,Gradle整合,也可以整合持续集成工具,如Jenkins

可以使用插件扩展

通过实现SQALE(基于软件生命周期的质量评定)来评估技术债务。

  (图1.SonarQube分析结果概览)

但是SonarQube的配置和部署相对而言依旧繁琐,为了进一步解放人力,我们使用JenkinsSonarQube的分析过程封装起来,达到代码质量审查阶段的持续集成。

Jenkins指挥中心:

Jenkins是一款优秀的开源持续集成工具,可以实现代码的编译,测试,部署,监控等各种工作的自动化执行。也有各种各样的插件可以供开发人员封装使用。

Jenkins为软件开发提供了持续集成的服务。支持主流的代码管理工具如CVS,Subversion,Git等。可以构建Ant,Maven项目,执行任意的shell脚本和windows批处理。

Jenkins的构建可以通过多种方式触发:

版本控制系统中的一次代码提交

设置cron表达式以定时执行

当其它项目构建时触发

通过请求一个特定的URL

协同作战

作战目标:

配置Jenkins,拉取(pull)项目代码到Jenkins服务器,指挥Maven执行构建和单元测试。完成后指挥SonarQube质量分析,SonarQube会将分析结果上传至Sonar服务器,此间我们要编写脚本获取该分析结果的URL,将Jenkins的所有构建测试分析结果email给代码所有者和项目Leader

实战开始:

Jenkins服务器上安装Git,Maven,SonarQuber Scanner等软件,并配置好。

配置SonarQube的路径和用户名密码。

安装JenkinsGit插件,SonarQube插件

创建一个任务,配置任务的Git地址,分支信息等,点击Add post-build step按钮选择InvokeStandalone SonarQube Analysis,对于Maven项目来说,默认支持sonar分析,所以直接构建即可,但是其它项目需要配置Analysis Properties。具体配置可以参考官方资料。

在控制台中我们可以看到项目被构建,执行单元测试,执行Sonar分析。执行顺利的话会得到EXECUTION SUCCESS的提示,并贴出Sonar的链接地址。

使用脚本,处理控制台信息并发送邮件。

立即构建,搞定!静静等待邮箱的邮件就行了。

后续

看到这里,读者们是不是发现Jenkins的部署和配置相对而言依旧繁琐呢?如何再一次解放人力,将Jenkins的部署和配置完全自动化呢?通过编写脚本,结合使用Puppet我们甚至可以实现自己的JenkinsSonarQube集群,一键部署一键配置。以后的文章再详细讨论。

值得一提的是,新致开发云通过docker镜像为大家提供SonarQubeJenkins的一键部署功能,开发团队能够从繁琐的配置工作中解脱出来,方便开发团队实现秒级部署开发环境与测试环境。使用SonarQubereview我们的代码,提高代码质量;使用Jenkins来实现持续集成,从而为项目开发团队提高了持续交付的能力。

关键字:代码审查新致开发团队

本文摘自:计算姬

x 解析新致开发云如何持续实现代码review 扫一扫
分享本文到朋友圈
当前位置:云计算企业动态 → 正文

解析新致开发云如何持续实现代码review

责任编辑:editor004 作者:徐瑱 邓雷 |来源:企业网D1Net  2016-04-08 13:31:12 本文摘自:计算姬

在传统IT项目开发过程中,团队最害怕的便是在交付前的集成测试阶段突然发现bug而导致项目延迟甚至项目失败。而如今,凭借先进的持续集成技术,我们可以在开发过程中及时判断开发趋势,发现开发漏洞并做出有效的判断。每天进行多次集成,每次集成通过自动化的构建进行验证,从而尽早发现集成错误,极大程度地保证了项目开发的进程与质量。在下文中,我们将详细讨论如何通过SonarQube代码质量管理系统以及Jenkins工具实现自动化持续集成。

开发团队的协作中不可避免的存在以下问题:

1. 新手。项目组的实习生由于初来乍到对于软件开发经验不足,而项目在人手又不够的情况下直接将新人拉入正式环境工作,为项目埋下不规范代码的隐患。

2. 人员流动。老员工维护的模块可能不易于新员工的维护,由于工作交接不到位、水平层次和编码习惯不同的原因造成低质量代码的出现。

3. 代码规范意识薄弱或者疏忽。有些开发人员可能没有接受过专门的质量培训,或者在编码时疏忽了一些规则,随意编写不规范的代码。

以上问题会导致项目的维护效率低下,代码交接变得困难,有潜在的性性能和安全问题等等。因此,代码质量审查是现代开发团队必不可少的过程。

如何解决:

代码复查(Code Review)是很不错的一个解决方案,即让项目Leader或者有经验的员工专门对成员的代码进行复查。但是代码复查的人力代价太大,试想将项目有经验的员工拉取做代码复查,开发进度势必会受到影响,而且软件项目通常是庞大的,其工作量可想而知。因此,在人工之外,我们讨论一种利用机器的自动化代码审查工具SonarQube

SonarQube利刃:

SonarQube为代码的质量管理提供了一个平台,对传统的静态检测如PMDfindBugs等工具进行整合,并且提供了丰富而强大的插件,以适用于各种语言的代码质量分析。

支持的语言:Java, C/C++, Objective-C, C#, PHP, Flex, Groovy, JavaScript, Python, PL/SQL, COBOL

支持安卓代码审查

审查重复代码,代码标准,单元测试,测试覆盖率,代码复杂度,潜在的bug,多余的注释,代码设计和结构等,提供多方面的报告。

记录评审历史,提供多种视图的评估报告图表。

提供完全的自动化分析:可以和Maven,Ant,Gradle整合,也可以整合持续集成工具,如Jenkins

可以使用插件扩展

通过实现SQALE(基于软件生命周期的质量评定)来评估技术债务。

  (图1.SonarQube分析结果概览)

但是SonarQube的配置和部署相对而言依旧繁琐,为了进一步解放人力,我们使用JenkinsSonarQube的分析过程封装起来,达到代码质量审查阶段的持续集成。

Jenkins指挥中心:

Jenkins是一款优秀的开源持续集成工具,可以实现代码的编译,测试,部署,监控等各种工作的自动化执行。也有各种各样的插件可以供开发人员封装使用。

Jenkins为软件开发提供了持续集成的服务。支持主流的代码管理工具如CVS,Subversion,Git等。可以构建Ant,Maven项目,执行任意的shell脚本和windows批处理。

Jenkins的构建可以通过多种方式触发:

版本控制系统中的一次代码提交

设置cron表达式以定时执行

当其它项目构建时触发

通过请求一个特定的URL

协同作战

作战目标:

配置Jenkins,拉取(pull)项目代码到Jenkins服务器,指挥Maven执行构建和单元测试。完成后指挥SonarQube质量分析,SonarQube会将分析结果上传至Sonar服务器,此间我们要编写脚本获取该分析结果的URL,将Jenkins的所有构建测试分析结果email给代码所有者和项目Leader

实战开始:

Jenkins服务器上安装Git,Maven,SonarQuber Scanner等软件,并配置好。

配置SonarQube的路径和用户名密码。

安装JenkinsGit插件,SonarQube插件

创建一个任务,配置任务的Git地址,分支信息等,点击Add post-build step按钮选择InvokeStandalone SonarQube Analysis,对于Maven项目来说,默认支持sonar分析,所以直接构建即可,但是其它项目需要配置Analysis Properties。具体配置可以参考官方资料。

在控制台中我们可以看到项目被构建,执行单元测试,执行Sonar分析。执行顺利的话会得到EXECUTION SUCCESS的提示,并贴出Sonar的链接地址。

使用脚本,处理控制台信息并发送邮件。

立即构建,搞定!静静等待邮箱的邮件就行了。

后续

看到这里,读者们是不是发现Jenkins的部署和配置相对而言依旧繁琐呢?如何再一次解放人力,将Jenkins的部署和配置完全自动化呢?通过编写脚本,结合使用Puppet我们甚至可以实现自己的JenkinsSonarQube集群,一键部署一键配置。以后的文章再详细讨论。

值得一提的是,新致开发云通过docker镜像为大家提供SonarQubeJenkins的一键部署功能,开发团队能够从繁琐的配置工作中解脱出来,方便开发团队实现秒级部署开发环境与测试环境。使用SonarQubereview我们的代码,提高代码质量;使用Jenkins来实现持续集成,从而为项目开发团队提高了持续交付的能力。

关键字:代码审查新致开发团队

本文摘自:计算姬

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^