【问题标题】:Visualise a C# method logic可视化 C# 方法逻辑
【发布时间】:2011-02-04 04:51:45
【问题描述】:

我有一个复杂的 C# 方法,其中包含一组确定用户访问权限的 if 语句。

我正在寻找一种将这种逻辑可视化为工作流程图或类似内容的方法。

这是使用 .NET 3.5 和 Visual Studio 2010。

哪些工具(最好是免费提供)可以做到这一点?

注意:我找到了很多可视化方法调用的工具(例如调用层次结构),这不是我想要的。我正在寻找一种可视化逻辑的工具。

谢谢

编辑:作为我调查的一部分,我确实找到了 Flowchart4C#,但直接购买需要 200 美元,而且试用版不会让我确认它是否符合我的要求! (

【问题讨论】:

  • 明确一点,您正在寻找自动化工具,对吧?
  • 听起来你可能想重构这个庞大的方法,以便主要部分读起来像简单的英语作为开始。
  • 我不会尝试。首先,编写覆盖路径并验证当前行为的单元测试。二、使用自动化重构工具,通过提取方法等方式理清代码
  • [椅子上的步骤] @Russel,如果你在这里,这意味着整理方法的逻辑必须有一些价值。长长的 if 语句列表是典型的代码异味,并且有一些重构模式会让您感到高兴,并可能对底层结构有所了解。[下步]。
  • 四层嵌套?哦,是的。它需要重构。我从不嵌套超过两层(方法和一层if)。我的经验是,当您发布应用程序并开始维护它(并且已经忘记了为什么要这样做)时,更多的关卡会给您带来麻烦。

标签: c# business-logic


【解决方案1】:

【讨论】:

  • 谢谢@Marco - 我发现保护条款最相关 - 我有一组任务分配给流动用户类型。
  • 问题:将逻辑重构为单独的方法是一种不需要映射的方法。我的功能对性能至关重要(每次发出 Web 请求时都会进行安全检查)将其分解为多种方法会损害性能吗?
  • 我相信编译器会优化函数调用。除非在传递参数时有大量的数据复制,否则我会优先考虑可读的代码,如果需要再考虑性能。
  • @Russell - Bill Wagner 的书 Effective C#(两个版本)中有一节称为 “Prefer Small, Simple Functions”。 它详细介绍了 JIT 如何如果您以这种方式编程,编译器可以创建更多高效的代码。
【解决方案2】:

非自动:使用dia(Windows、Linux:具有流程图模板)或Inkscape(Windows、Linux、Mac:矢量图形)。

自动化:先重构,再自动化。

【讨论】:

  • 感谢@Leonidas - 我同意 Dia 是一个很棒的免费工具。 :) 我正在努力理想地自动映射出来。
猜你喜欢
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
相关资源
最近更新 更多