是的,这有点像矛盾。
是否有表示异步逻辑的可视语言?像流程图一样简单?
我想对UI“屏幕”以及它们背后的逻辑进行建模。
谢谢!
答案 0 :(得分:3)
有一种用于表示异步逻辑的“可视语言”:Petri Nets。
Petri网是根据网络元素描述的系统。网元有四种类型:位置,转换,输入和输出。输入将位置连接到转换。输出将过渡连接到场所。每个网元可以具有零个或多个注释。每个注释也可以有零个或多个注释。
网元的类型有:P(位置),T(转换),I(输入),O(输出)
可以用圆圈在视觉上表示场所元素。过渡元素可以用正方形表示。输入元素可以由从圆到正方形的箭头表示。输出元素可以用从正方形到圆形的箭头表示。
每个圆圈或正方形可以附有标签标识符,用于唯一标识形状的文本。正方形的标签位于正方形的中心。圆圈的标签位于圆圈之外。
从一组现有的注释模式开始可能很方便 - 例如在Place / Transition网络中使用的注释类型,一类Petri网。
如果上面给出的注释类型对于应用程序不满意,则可以添加或更改注释。例如,
答案 1 :(得分:2)
如果您希望" 模拟您的(异步)逻辑",以便您可以从中获得语义上合理的结论,那么您需要petri nets。来自维基百科:
Petri网是用于描述分布式的建模语言 系统,带有过渡和位置图 与行业标准一样,如UML活动图,BPMN和EPC, Petri网为逐步过程提供图形表示法 包括选择,迭代和并发执行。与这些不同 标准,Petri网有一个精确的数学定义 执行语义,具有完善的数学理论 过程分析。
承诺应该很容易在petri网中代表3个地方,每个地方都表示承诺的one of the states。
如果您只是在寻找系统的简单直观表示,那么您可能正在寻找data flow diagram。或者你只是扩展你的流程图,使用并发原语,例如" spawn async process"和"等待结果"。如果您正在寻找正确推荐的可视语言",请查看OMG的UML工具,例如: state machine diagram。
答案 2 :(得分:0)
我已将此库用于项目,以可视化数据库对象的状态:https://www.npmjs.com/package/promise-state-machine-es6
虽然它并不真正涵盖异步内容,但它确实有助于推断与非技术人员的应用程序逻辑。