【问题标题】: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 语言。

标签: c# law-of-demeter code-standards


【解决方案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
猜你喜欢
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
相关资源
最近更新 更多