文/徐瑱 邓雷
在传统IT项目开发过程中,团队最害怕的便是在交付前的集成测试阶段突然发现bug而导致项目延迟甚至项目失败。而如今,凭借先进的持续集成技术,我们可以在开发过程中及时判断开发趋势,发现开发漏洞并做出有效的判断。每天进行多次集成,每次集成通过自动化的构建进行验证,从而尽早发现集成错误,极大程度地保证了项目开发的进程与质量。在下文中,我们将详细讨论如何通过SonarQube代码质量管理系统以及Jenkins工具实现自动化持续集成。
开发团队的协作中不可避免的存在以下问题:
1. 新手。项目组的实习生由于初来乍到对于软件开发经验不足,而项目在人手又不够的情况下直接将新人拉入正式环境工作,为项目埋下不规范代码的隐患。
2. 人员流动。老员工维护的模块可能不易于新员工的维护,由于工作交接不到位、水平层次和编码习惯不同的原因造成低质量代码的出现。
3. 代码规范意识薄弱或者疏忽。有些开发人员可能没有接受过专门的质量培训,或者在编码时疏忽了一些规则,随意编写不规范的代码。
以上问题会导致项目的维护效率低下,代码交接变得困难,有潜在的性性能和安全问题等等。因此,代码质量审查是现代开发团队必不可少的过程。
如何解决:
代码复查(Code Review)是很不错的一个解决方案,即让项目Leader或者有经验的员工专门对成员的代码进行复查。但是代码复查的人力代价太大,试想将项目有经验的员工拉取做代码复查,开发进度势必会受到影响,而且软件项目通常是庞大的,其工作量可想而知。因此,在人工之外,我们讨论一种利用机器的自动化代码审查工具SonarQube。
SonarQube利刃:
SonarQube为代码的质量管理提供了一个平台,对传统的静态检测如PMD和findBugs等工具进行整合,并且提供了丰富而强大的插件,以适用于各种语言的代码质量分析。
支持的语言:Java, C/C++, Objective-C, C#, PHP, Flex, Groovy, JavaScript, Python, PL/SQL, COBOL等。
支持安卓代码审查
审查重复代码,代码标准,单元测试,测试覆盖率,代码复杂度,潜在的bug,多余的注释,代码设计和结构等,提供多方面的报告。
记录评审历史,提供多种视图的评估报告图表。
提供完全的自动化分析:可以和Maven,Ant,Gradle整合,也可以整合持续集成工具,如Jenkins。
可以使用插件扩展
通过实现SQALE(基于软件生命周期的质量评定)来评估技术债务。