何为状态机?从字面上简单粗暴地理解,状态机是一个跟状态有关的机器,但其实状态机并不是一种物理机器,而是一种模型,一种表达事物状态及状态变化过程的数学模型。状态机全称是有限状态机(finite-statemachine,缩写:FSM)或者有限状态自动机(finite-stateautomaton,缩写
无论做业务需求还是做平台需求的同学,随着需求的不断迭代,通常都会出现逻辑复杂、状态混乱的现象,维护和新增功能的成本也变的十分巨大,苦不堪言。下图用需求、业务代码、测试代码做对比:图中分了3个阶段:阶段1:正常,都是线性增长。阶段2:需求数正常增长,业务代码行数开始增长,测试代码行数大幅度增长。阶段3
IF-ELSE方式原来以为写一个简单的类型翻译器花不了太多时间,可是真做起来,才发现要注意的点太多了。首先是处理容器的开启和闭合,这就需要使用栈来保存预期的下一个字符类型,再对比栈顶字符类型和当前处理字符,决定解析的结果。还要注意类型嵌套的情况下,内层嵌套的容器作为外层容器的元素被解析完
什么是DSL?DSL是一种工具,其核心价值在于提供了一种手段,可以更加清晰地就系统某部分的意图进行沟通。本文将通过实现一个状态机引擎来看清DSL的本质,介绍状态机的核心模型和Fluent接口,并解决状态机的性能问题。最近在一个项目中,因为涉及很多状态的流转,我们选择使用状态机引擎来表达状态流转。因为
在设计交易系统时,稳定性、可扩展性、可维护性都是我们需要关注的重点。本文将对如何通过状态机在交易系统中的应用解决上述问题做出一些探讨。关于马蜂窝机票订单交易系统交易系统往往存在订单维度多、状态多、交易链路长、流程复杂等特点。以马蜂窝大交通业务中的机票交易为例,用户提交的一个订单除了机票信