这些年接触过好几种引擎代码,实际上按我个人理解,引擎又有动静态之分。当下互联网大行其道,自然动态引擎居多,包括交易引擎,大多属于动态引擎,也就是本身会是某种主程序服务或者中间件服务;还有一种只提供几个体积庞大的静态、动态库,可以完全闭环接入使用,指不介入网络服务等,典型的我接触过就是文档渲染引擎,例如pdf内核渲染引擎,还有像加密引擎,例如古老的openssl
工作这些年,逐渐明白引擎动静态只是与行业特性相关,需要网络服务,各种外部交互的自然就需要动态引擎,而自成一体,形成闭环的软件只需要静态引擎便可。
如此想来设计一个交易引擎似乎毫无疑问仍是动态引擎,即启动某种或者某些服务,外部通过网络请求进行数据传输和封装。但是又会想,最好是可以有动静态切换的能力,引擎重基础功能,且越简单易用越好,如果能直接暴露接口,以库的形式内嵌进任意一个外部业务系统,似乎接入更方便,因为不需要网络封装,回到C的设计思想里去,最原始的就是最简单的,调用什么就得到什么,只需要通过接口实现过程。
动手写代码前,想了很久从哪写起,由外向内写,还是由内向外呢?
最后决定还是自内而外,毕竟上一篇已经写明四个 基本要素了,理论上只要有这四种要素,就可以成为一个微型引擎,麻雀虽小,五脏俱全。
这次的系统从零开始编写,去繁取简,不关注内存表,缓存,灾备,集群,主备切换,主从同步&#x