客户案例 | CleverTap通过SonarQube实现高标准代码质量管理
代码质量挑战
代码质量解决方案
“当时,我们确实需要一个支持Bitbucket的工具,而SonarQube是少数几个允许我们与之集成的代码质量工具之一。现在回想起来,我们非常喜欢它。它正是我们所需要的。我们能够执行良好的实践。我记得在使用SonarQube之前,我的很多代码审查都非常耗时,到处都是琐碎的代码异味。SonarQube为我们完成了这一切,大大减少了处理这些基本需求的工作量。它让我们的实习生和新开发人员,尤其是那些刚开始使用Java进行编码的人员,能够在有防护栏的情况下安全地进行开发。我们相信SonarQube能为我们做到这一点,并确保我们的代码干净整洁。”
——Jude Pereira,首席架构师
此后,CleverTap从Bitbucket迁移至GitHub,实现了无缝过渡。SonarQube与他们的主要构建工具Maven集成,用于管理和监控代码测试覆盖率。这是“边写边清洁”方法的一个重要方面,他们一直在寻找这种方法来设定所需的代码质量标准。
“总而言之,从代码标准和质量的角度来看,我们立即发现了它的价值。在代码审查期间手动发现的很多问题都不复存在,我们可以将更多精力放在业务逻辑上,而不是关注一些次要和常见的问题,SonarQube 现在可以为我们处理这些问题。我们发现,由于Sonar处理了所有与代码相关的主要问题,每次合并所需的PR审核周期都减少了。”
——Jude Pereira,首席架构师
代码质量成果
“我们从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,首席架构师