繁体   English   中英

如何避免 Windows Workflow (WF) 中的 Name-itis?

[英]How to avoid Name-itis in Windows Workflow (WF)?

我刚开始与 WF 合作,我发现真正烦人的是你必须命名这么多东西。 IMO,程序员每天处理的最困难的事情之一就是为事物构造好名字,而 WF 似乎将这一点发挥到了极致。

以 WF IfElse 活动为例。 如果我用原始 C# 编码(不使用 WF),它看起来像这样:

if( x == 0 )
{
    // ...
}
else if( x < 10 )
{
    // ...
}
else if( x < 100 )
{
    // ...
}
else
{
    // ...
}

现在上面的C#代码简单明了。 相比之下,如果我要定义一个使用 IfElse 活动做同样事情的 Windows 工作流,首先我必须命名每个 if 块:例如

  • 如果X等于0
  • ifXLles​​sThan10
  • ifXLles​​sThan100

最重要的是,我必须在每个 if 语句中命名每个条件:例如

  • x等于0
  • x小于10
  • x小于100

这不仅乏味,而且难以维护(例如,如果条件改变)并且容易出错(当条件改变时忘记更改名称)。

问题(据我所知)是 WF 将每个编程构造分解为工作流的属性,这需要一个名称。

现在因为我还在学习 WF,我不想听起来像一个知道这一切......我想问你们这些人。 难道我做错了什么? 在创建 WF 工作流时,有没有办法避免这种命名问题? 这是特定于 Windows WF 的东西,还是其他工作流引擎遭受同样的事情?

问题(据我所知)是 WF 将每个编程构造分解为工作流的属性,这需要一个名称。

实际上,您需要使用不同名称的原因是因为在您的工作流中表示的 if-else 语句的每个部分实际上都是一个单独的 IfElseBranchActivity,而不仅仅是工作流的一个属性,因此必须唯一命名。

就维护而言,看看使用规则集来帮助进行实际的布尔测试本身。 这可能会使以后更容易修改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM