我想知道是否可以使用最新版本的Sonar或通过某些插件来计算架构违规的技术债务(来自Java项目),例如:“'X'类应位于com.domain.classes包中”或“ “ X”类必须扩展“ Y”类”?还是“'X'类必须具有'公共静态Y someAttribute'属性”?
如果没有为此的插件,那么如何开发一个插件来自动执行此操作?我已经阅读了Java API,REST的文档,如何开发插件并尝试对其进行编码,但是还没有找到实现它的方法。
最佳答案
可能的途径是使用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