是否有任何静态分析工具将报告遵循SOLID原则的程度如何?

问题描述 投票:7回答:2

我知道盲目地遵循任何“最佳实践”仍然会导致一堆臭味,严格遵守最佳实践。 SOLID原则就是原理。它们并不适用于所有情况,但是对于在代码中寻找可能的改进,它们仍然是很好的启发法。

它们的缺点是,有时它们需要对您的源代码进行深入的分析才能应用它们。与大多数程序员一样,我一直在寻找更有效的处事方式。因此,我很好奇是否有人听说过尝试测试SOLID原理(或缺乏SOLID原理)应用的分析工具。

SRP 单一责任原理

一个班级只有一个理由更改。

OCP 开闭式原理

软件实体(类,模块,功能等)应该开放给扩展名,但因修改。

LSP Liskov替代原理

子类型必须可替换为他们的基本类型。

ISP 接口隔离原理

不应强迫客户依赖根据他们不使用的方法。接口属于客户端,不属于层次结构。

DIP 依赖反转原理

抽象不应依赖于细节。细节应取决于抽象。

-摘自Robert C. Martin的敏捷原则,模式和实践]。

我知道盲目地遵循任何“最佳实践”仍然会导致一堆臭味,严格遵守最佳实践。 SOLID原则就是原则。它们不适用于...

static-analysis solid-principles
2个回答
8
投票

我认为自动静态分析不能确定是否遵守这些原则。要编写这样的工具,您需要正式定义每个概念的含义,并有一种方法可以对照任何代码对其进行检查。您将如何正式化责任概念?我个人不知道。


4
投票

我的答案涉及一个.NET特定的产品,事先道歉,也许有人可以建议其非.NET类似物。

我会尝试NDepend,看看它是否可以通过使用类似的指标使我违反SRP和ISP:

© www.soinside.com 2019 - 2024. All rights reserved.