sonarqube平台组成_SonarQube作为教育平台

sonarqube平台组成

我使用SonarQube [1]平台已有四年多了。 我记得它最初作为代码质量管理工具迈出第一步的时候。 它看起来更像是一个与各种第三方静态分析工具(例如PMDFindBugs等)集成的系统,并提供了一些但重要的代码质量指标。 在接下来的几年中,许多事情发生了变化。 如今,SonarQube被认为是成熟的软件生态系统(以我的谦逊观点为最佳),它提供了一组功能,可将连续检查过程成功地应用于任何开发方法。

在本文中,我不会讨论SonarQube的明星功能,这些功能可帮助您管理和控制技术债务。 我将给出不同的观点并解释如何将其用作教育平台。

从4.0版开始,外部工具的集成已逐渐下降,这些工具提供的一些编码规则已由使用内部开发的(但仍是开源的)语言解析库(称为SonarSource)编写的规则代替。 [2]语言识别器(SSLR)[3]。 重写该规则的最大好处之一是,它们包括有关规则用途的非常说明性的说明,以及一些代码示例(如果适用),它们提供了编写代码的正确和错误方式。

让我们看一下下面的图像,它是一个Java编码规则的快照,该规则检查在重写Object.compareTo时是否重写了Object.equals。 如您所见,该规则不仅得到了非常详细和充分争论的解释的支持,而且还包含两个代码段:符合和不符合。

SQ_Edu_platform

当开发人员查看违反此规则的问题[4]时,他们能够阅读所有这些信息。 他们应该了解自己做错了什么,加以解决,并希望以后不再犯同样的错误。 但是嘿! 您不必坐下来等待SonarQube提出问题,这样开发人员就可以了解编写代码的正确方法。 您可以随时发送给开发人员以研究规则。 换句话说,在质量缺陷出现之前对其进行培训。

在与我合作的公司中,我们过滤掉了与我们的编码风格不符的规则,然后使用SonarQube [5]提供的标记机制对它们进行了分组。 然后,我们组织了培训课程,我们遍历了特定标签(组)的每条规则,并讨论了每条规则的详细信息和建议的编码方式。 就这样! 我们注意到开发人员从第二天起就开始编写更好的代码,而SonarQube对于我们已经讨论过的编码规则的问题非常有限。

从代码审查中学习

如果您没有足够的时间来分配先前的建议,则可以考虑使用另一种方法。 你们中的大多数人可能熟悉代码审查,或者至少知道应用这种做法的基本知识和好处。 SonarQube提供了一个内置的工具,可以简化代码审查过程。

25b6923

简而言之,每个问题都可以分配给开发人员,也可以在行动计划中进行规划。 代码审查者能够确认问题,可以通过提供其他原因将其标记为错误肯定的案例,或者仅对它进行评论并提供一些建议或解决问题代码的可行解决方案。

所有这些问题交互性都可以视为一种教人,尤其是年轻的开发人员的方法。 像上一节一样,您可以要求开发人员阅读评论或研究提出的问题。 下面是一种无需花费大量时间即可完成开发任务的好方法。 首先确定SonarQube问题的优先级,并使用行动计划进行规划。 例如,您可能有一个行动计划,其中包括应在当前迭代过程中解决的所有问题,并为以后的迭代解决另一个问题。 然后尝试在迭代过程中举行简短会议,在该会议上您检查所有SonarQube问题并确定优先级。 假设您完成并计划了所需的问题,就当前迭代而言,您可以要求开发人员作为一个团队工作并提出解决方案,尤其是对于单行修复是不够的问题。 最后,通过评论相关问题来记录解决方案,以便所有人都能看到。 这种方法的好处是,要求开发人员了解所有问题(不仅是针对他们创建的问题)的底层破坏编码规则,然后找出解决方案。

对开发人员进行教育应该是持续不断的。 但这是大多数公司有意(无预算)或没有(无时间)遗忘的东西。 如果我们不认为它是必要的邪恶,而是在日常开发任务中可能发生的事情,那么我们可能会有更好的机会。 SonarQube的编码规则和易于使用的编码审查机制可以为您提供帮助,并可以教给开发人员如何编写更好的代码并最终使他们成为更好的专业人员。

本文最初发表于NDC Oslo Magazine 2014

参考资料
  1. http://www.sonarqube.org
  2. http://www.sonarsource.com
  3. http://docs.codehaus.org/display/SONAR/SSLR
  4. http://docs.codehaus.org/display/SONAR/问题
  5. http://docs.codehaus.org/display/SONAR/Configuring+Rules#ConfiguringRules-TaggingRules

翻译自: https://www.javacodegeeks.com/2014/07/sonarqube-as-an-education-platform.html

sonarqube平台组成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值