客户案例 | CleverTap通过SonarQube实现高标准代码质量管理

代码质量挑战
CleverTap是一个多合一的客户参与平台,可统一人员、流程和技术之间的交互。CleverTap为全球10,000多个应用程序提供支持,并帮助客户留住用户。该平台通过用户行为分析和细分,利用各种渠道实现大量定位和用户信息传递,提供实时设计和优化的即时体验。
行业领先的一些工程创新使互联网规模的实时营销自动化和用户参与成为可能。一个典型例子是CleverTap专有的TesseractDB™,这是一个开创性的数据库,专为用户数据处理的速度、规模和深度而设计。这项独特技术拥有11项产品/技术专利,使品牌能够在用户分析方面获得无与伦比的深度和粒度,提供全面的360度客户视图。
CleverTap希望将他们在代码质量、测试和清洁度方面的经验知识编成指南,以确保他们在聘用新工程师时能有足够的防护措施。他们正在寻找一种工具来衡量测试覆盖率,并为他们的工程师建立一个代码质量标准,涵盖他们使用的所有语言,包括Java、JavaScript、Vue.JS、Objective-C和Swift。
代码质量解决方案
CleverTap决定在开发过程中采用静态代码分析来提高代码的整体质量。他们使用Bitbucket作为代码库,使用IntelliJ作为集成开发环境。经过评估,他们选择了SonarQube作为首选工具。

“当时,我们确实需要一个支持Bitbucket的工具,而SonarQube是少数几个允许我们与之集成的代码质量工具之一。现在回想起来,我们非常喜欢它。它正是我们所需要的。我们能够执行良好的实践。我记得在使用SonarQube之前,我的很多代码审查都非常耗时,到处都是琐碎的代码异味。SonarQube为我们完成了这一切,大大减少了处理这些基本需求的工作量。它让我们的实习生和新开发人员,尤其是那些刚开始使用Java进行编码的人员,能够在有防护栏的情况下安全地进行开发。我们相信SonarQube能为我们做到这一点,并确保我们的代码干净整洁。” 

——Jude Pereira,首席架构师

此后,CleverTap从Bitbucket迁移至GitHub,实现了无缝过渡。SonarQube与他们的主要构建工具Maven集成,用于管理和监控代码测试覆盖率。这是“边写边清洁”方法的一个重要方面,他们一直在寻找这种方法来设定所需的代码质量标准。

“总而言之,从代码标准和质量的角度来看,我们立即发现了它的价值。在代码审查期间手动发现的很多问题都不复存在,我们可以将更多精力放在业务逻辑上,而不是关注一些次要和常见的问题,SonarQube 现在可以为我们处理这些问题。我们发现,由于Sonar处理了所有与代码相关的主要问题,每次合并所需的PR审核周期都减少了。”

——Jude Pereira,首席架构师

代码质量成果
CleverTap认为SonarQube的价值在于通过CI流水线中的质量门强制执行代码质量水平,并确保理想的代码覆盖水平。SonarQube提供了一份宝贵的简明报告,以统一的视图显示所有项目中使用的语言代码的清洁程度。

“我们从SonarQube中获得了巨大的价值。我从未见过其他任何工具能与之相媲美或做类似的事情。如果我们以平均每个审核周期消耗审核员约20分钟的时间来计算,每周合并50个PR,那么使用SonarQube,我们每周节省了16.6个小时。”

——Jude Pereira,首席架构师

拉取请求(PR)装饰对他们来说是最重要的,尤其是在项目从Bitbucket迁移到GitHub之后。CleverTap使用SonarQube与Maven和Jacoco的测试代码覆盖率集成来确定他们的基线覆盖率,并在努力实现覆盖率目标的同时监控其进度。

“当我们开始使用Sonar时,代码覆盖率为40%。如今,在使用SonarQube约四年后,我们的代码覆盖率已超过70%。为了进一步提高覆盖率,我们将质量门设置为85%。”

——Jude Pereira,首席架构师

随着时间的推移,CleverTap从使用SonarQube中获得了更多的意外收获。他们的工程师变得更善于避免问题,并能快速了解所使用的语言和库中的新进展。他们发现,SonarQube的“边写边清洁”功能提高了开发人员的幸福感。

“SonarQube可以帮助开发人员长期减少代码中的错误。因为SonarQube会教我们,所以在我们这里工作了很长时间的工程师都知道如何主动修复代码中的问题。通过在适当的地方使用lambdas和流式操作,它帮助我们掌握了用Java表达代码的更简洁的方法。由于SonarQube与所有最新的Java版本保持同步,因此当我们做得不对或有更好的技术时,它会告诉我们,甚至告诉我们什么是首选,什么是次选。随着时间的推移,SonarQube帮助我们的工程师发现并学习了新的语言功能。”

——Jude Pereira,首席架构师

通过使用SonarQube,CleverTap的代码质量管理得到显著提升:
  提高了代码质量,并为整个开发团队的良好编码实践设定了高标准。
  从手动代码质量审查转为自动代码质量审查,减少了开发团队用于代码审查的时间。
  开发人员可以学习如何主动解决问题,并了解语言、库和框架的新变化,从而将具有不同技能的团队提升到相同的编码标准。
立即试用SonarQube,请联系SonarQube中国官方授权合作伙伴——创实信息,我们提供SonarQube产品的咨询、销售、实施、培训及技术支持服务。