我想知道是否有可能使用最新版本的Sonar或通过一些插件来计算架构违规的技术债务(来自java项目),例如:“'X'类应该在com.domain中.classes包“或”类'X'必须扩展类'Y'“?或者“'X'类必须具有'public static Y someAttribute'属性”?
如果没有这个插件,有如何开发插件来自动化这个?我已经阅读了Java API,REST的文档,如何开发插件并尝试编写代码,但还没有找到方法。
答案 0 :(得分:2)
可能的路线是使用PMD代码检查器。您可以将自己的custom rules添加到PMD,并且Sonar有PMD plugin。
但在这种情况下,Sonar可以为我计算债务(通过SQALE或其他插件)吗?在另一个案例中,我如何计算债务?
我认为你误解了“技术债务”一词。以下是维基百科的描述:
技术债务(也称为设计债务[需要引证]或代码债务)是一种新词隐喻,指的是代码库中软件架构和软件开发不良的最终后果。债务可以被认为是在特定工作被认为完成之前需要完成的工作。如果债务没有偿还,那么它将继续累积利息,使得以后很难实施变革。未解决的技术债务增加了软件熵。
需要注意的关键是技术债务是隐喻。
因此,例如,PMD可以告诉您代码违反某些规则的次数,但它无法告诉您修复它们需要做多少工作,或者将来会产生多少额外工作因为您没有现在解决它。
基本上,您无法衡量技术债务,因为真正的技术债务衡量标准需要了解未来会发生什么。另请阅读:https://softwareengineering.stackexchange.com/questions/167080/how-is-technical-debt-best-measured-what-metrics-are-most-useful
答案 1 :(得分:0)
执行此操作的唯一方法是通过Commercial SQALE插件,手动插入扩展架构约束,XPath,PMD和其他类似规则的修复成本。
Sonarqube回答:http://sonarqube.15.x6.nabble.com/Calculating-Design-Violations-Technical-Debt-with-SonarQube-td5022251.html