为了让项目更接近于“高内聚,低耦合”的状况,我汲取了管道机制、函数式编程的思想,提出了分步行动机制(Substep-Action,又称分步动作机制,简称SA机制)。
SA机制是一个用于控制数据处理的新机制。
传统的行动机制只提供一站式的完整操作(例如从源码编译到字节码,从字节码开始运行),这使得用户的自定义空间变少。
SA机制将大规模的操作细分成一个个细节操作,这些细节操作被称为行动工具。和函数一样,一个标准的行动工具会接受一系列的输入数据,进行处理后会生成一系列输出数据。
为了避免正确的数据被多个行动工具反复检查的冗余情况。这里引入数据安全信任和数据安全承诺的概念。数据安全信任指一个行动工具在接收输入数据时,对某些数据产生的信任,受信任的输入数据不会被该行动工具检查,数据安全信任提升了安全检查的效率,但用户和开发者也必须保证受信任的数据是安全的,一旦受信任的数据不安全,程序可能会产生崩溃等不可预知的致命错误。数据安全承诺指一个行动工具在生成输出数据时,对某些数据产生的承诺,受承诺的输出数据一般是安全的,不需要被反复检查,受承诺的输出数据通常会成为下一个行动工具所信任的输入数据,当然,数据安全承诺是建立在数据安全信任之上的,如果受信任的数据不安全,那么承诺的数据也不一定安全。
用户可以把一系列行动工具组合在一起,形成一个动作组(又称行动工具链)。启动这个动作组满足以下规则:
起始数据、结果数据以及所有行动工具间产生的数据,都被统称为行动物品。
利用SA机制,用户可以自由的组合行动工具,提升了数据处理的自由性。
例如:将编译动作组和运行动作组连接在一起,编译生成的字节码直接交给运行端,就能不修改项目从而实现解释器的效果。如果其他编程语言想要共用Stamon的后端,也可以编译成AST编码文件,然后利用SA机制,直接把AST编码文件作为起始数据,生成字节码。
用户也可以开发属于自己的行动工具,提升自定义属性。例如:开发一个从屏幕上输入的文本编辑器,再把编译动作组和运行动作组连接在一起,就能实现从屏幕输入代码然后解释运行的效果了。
利用SA机制,用户可以不进行或少进行文件操作,让数据在内存中传递,提升了效率,增强了可移植性。