得墨忒耳法则违反搜索工具? [关闭]
Posted
技术标签:
【中文标题】得墨忒耳法则违反搜索工具? [关闭]【英文标题】:Law of Demeter violation search tool? [closed] 【发布时间】:2011-03-28 11:42:20 【问题描述】:是否有人知道我可以与 C# 应用程序一起使用的工具来查找可能违反得墨忒耳法则的情况?我知道它会产生很多误报,但我认为它仍然有用。尤其是在早期的设计过程中。
【问题讨论】:
得墨忒耳法则的维基定义:en.wikipedia.org/wiki/Law_of_Demeter 得墨忒耳法则应该是得墨忒耳的经验法则 imho。 . . 我不知道有任何这样的工具,但 .NET 中的一个好方法是将它基于反射和 IL,以便它可以适用于任何 .NET 语言。 【参考方案1】:如果您只是在寻找 something.somethingelse.violation
,那么您可以使用 Visual Studio。
在查找对话框中,选中底部的框以“使用”并选择“正则表达式”。
不是很健壮,但您可以使用<[:a_]+\.([:a_]+\.)+[:a_]+
找到上面的模式。
更好的工具是解决方案目录中的grep
或类似工具,因此您可以使用更强大的正则表达式选项,例如负向查找,这将允许您排除诸如using
指令和namespace
声明之类的内容。
grep for Windows
您可能会非常快速地编写一个 .NET 应用程序,该应用程序将递归给定目录并搜索相同的 .cs 和/或 .vb 文件,使用具有环视功能的 .NET Regex,但当然使用 VS 的优势是确保您在源代码编辑器中保持正确。
【讨论】:
嗯,我刚刚在我的程序中发现了 5 个“点”……根据six degrees of separation,我认为这意味着它可以访问我程序中的任何内容,对吧? :P以上是关于得墨忒耳法则违反搜索工具? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章