【发布时间】:2009-10-26 20:04:17
【问题描述】:
我知道盲目地遵循任何“最佳做法”仍然会导致一堆严格遵守最佳做法的臭屁。 SOLID 原则就是这样,原则。它们并不适用于所有情况,但它们仍然是很好的启发式方法,可用于发现代码中可能的改进。
它们的缺点是有时需要对您的源代码进行深入分析才能应用它们。我和大多数程序员一样,一直在寻找更有效的做事方式。所以,我很好奇是否有人听说过一种分析工具,它试图测试 SOLID 原则的应用(或缺乏)。
SRP 单一职责 原理
一个班级应该只有一个理由 改变。
OCP 开闭 原理
软件实体(类、模块、 功能等)应该是开放的 扩展,但关闭 修改。
LSP Liskov 替代原则
子类型必须可以替代 他们的基本类型。
ISP 接口 隔离原则
不应强迫客户依赖 根据他们不使用的方法。 接口属于客户端,不属于 层次结构。
DIP 依赖倒置原则
抽象不应该依赖于 细节。细节应该取决于 抽象。
-来自 Robert C. Martin 的敏捷原则、模式和实践。
【问题讨论】:
-
它们的缺点是有时需要对源代码进行深入分析才能应用它们。如果对代码的分析(无论多深)就足够了,例如工具是可能的,但是查看代码是不够的。
-
@Wolf 在那个特定句子的上下文中,我指的是基于理解、洞察力和直觉的人类分析。
-
您是指从人工代码分析中检索到的模式,这些模式随后会以自动方式进行检查?
-
没有。我只是想问是否有任何工具可以接近由熟练的软件开发人员手动分析代码所获得的结果。我认为最佳答案总结得很好。此类工具不存在,因为 SOLID 原则对于自动分析来说过于非正式。
标签: static-analysis solid-principles