学习实施软件工作流程的方法
有多少种方法可以学习实现软件的工作流程? 它们是什么?
How many ways are there to learn implementing workflow of a software? What are them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有多少种方法可以学习实现软件的工作流程? 它们是什么?
How many ways are there to learn implementing workflow of a software? What are them?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
如果您指的是用户工作流程,即如何引导用户使用软件......
我通常使用某种状态机来限制用户可以触发哪些功能以及在特定状态下将向用户呈现哪些信息工作流程。 这样我就可以专注于在自己的“沙箱”中设计流程的每个部分,并且决策变得更加容易。
如果您指的不是用户工作流程,可以忽略此回复。
If you mean the user workflow, how the user is guided through the software...
I usually use some sort of state machine to limit what functionality can be triggered by the user and what information will be presented to the user in a particular state of the workflow. This way I can concentrate on designing each segment of the flow in its own "sandbox" and decision making becomes a lot easier.
If you do not mean user workflow, you can ignore this reply.
通常,您的工作流程确实有步骤。 步骤由一些前置条件(隐藏在 UI 中的业务逻辑)、一些用户交互(用户输入一些数据,并执行一些“用户操作”)和后置条件组成。 通常,用户交互部分有一个或多个用户选择“存在”,并且每个出口都包含其自己的后置条件(通常每个用户出口都有自己的业务逻辑,具体取决于步骤退出的含义)。 退出将工作流程导航到下一步。 有时您可以执行全自动步骤(即使用某些外部数据源、调用某些 Web 服务、重要计算等)。
如果您的工作流程很简单,您可以将其实现为一组表示每个步骤的类,并且可以将步骤顺序的配置放在 XML 中。 当您的工作流程变得越来越大时,搜索一些工作流程引擎可能是合理的(我认为 WF 引擎的讨论超出了这个问题的范围)。
一件重要的事情——步骤可以是正交的,但设计起来比较困难。 如果您的步骤相互依赖,则配置工作流和步骤顺序的人员必须充分了解此类依赖性(例如:用户地址步骤可能取决于用户对象创建步骤,并且从工作流中删除用户对象创建步骤将导致尝试访问不存在的对象)。
Usually you do have steps in workflow. Step consist of some precondition (business logic hidden from UI), some user interaction (user entering some data, and doing some “user stuff”), and post conditions. Usually user interaction part has one or more user chosen “exists”, and every exit consist it’s own post condition (usually every user exit has it’s own business logic depending of a meaning of an exit from a step). Exits navigate workflow to next step. Sometimes you can have fully automatic steps (i.e. using some external data source, calling some web service, important calculation, and so on).
If your workflow is simple, you may implement it as a set of classes representing each step, and configuration of steps order can be put in XML. When your workflow will grow bigger, and bigger, it may be reasonable to search for some workflow engine, (discussion of WF engines is I think beyond the scope of this question).
One important thing – steps can be orthogonal, but it is harder to design. If your steps rely one on another, person configuring workflow and steps order must be fully aware of such dependencies (e.g: user address step will probably depends on user object creation step, and removing user object creation step from a workflow, will result in trying to access nonexistent object).