我刚开始与 WF 合作,我发现真正烦人的是你必须说出很多东西。IMO,程序员每天处理的最困难的事情之一就是为事物构造好名字,而 WF 似乎将这一点发挥到了极致。
以 WF IfElse 活动为例。如果我用原始 C# 编码(不使用 WF),它看起来像这样:
if( x == 0 )
{
// ...
}
else if( x < 10 )
{
// ...
}
else if( x < 100 )
{
// ...
}
else
{
// ...
}
现在上面的 C# 代码简单明了。相反,如果我要定义一个使用 IfElse 活动执行相同操作的 Windows 工作流,首先我必须命名每个 if 块:例如
- ifXEquals0
- ifXLessThan10
- ifXLessThan100
最重要的是,我必须在每个 if 语句中命名每个条件:例如
- x等于0
- x小于10
- x小于100
这不仅乏味,而且难以维护(例如,如果条件改变)并且容易出错(当条件改变时您忘记更改名称)。
问题(据我所知)是 WF 将每个编程构造分解为需要名称的工作流属性。
现在,由于我仍在学习 WF,而且我不想听起来像是什么都知道……我想问你们。难道我做错了什么?在创建 WF 工作流程时,有没有办法避免这种名称问题?这是 Windows WF 特有的问题,还是其他工作流引擎也有同样的问题?