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