所谓从0开始就是从虚无开始,软件系统一定也是从0开始的。0可以称作Void、Virtual什么的,Void已经被编程语言占用了,那么我们用Virtual吧。
树是一个奇妙的结构,只要你愿意你所掌握的一切知识都是树形,你未掌握的知识也是树形。不做多说,开源矿工系统在空间结构上和行为结构上都要有Root(根)概念。开源矿工有根,构建开源矿工的编程语言有根,开源矿工所生存的运行时环境也有根,下层的事物我们不做追究,开源矿工作为生存在操作系统时空中的一个小小的应用系统来说只感知自己所需要感知的环境即可。
你望文生义出来的意思就是本真的意思,凡是不能望文生义的或者望文生义出的意思和联想不一致的语言文字载体都已经被前人丢弃或者迟早被后人丢弃。我们不使用不能望文生义的词汇。
从源代码的VirtualRoot类型开始。望文生义,这是虚无,这是根。这是第一个出现的东西,它处在开源矿工的最底层,所有上层建筑都建立在它之上。它下面肯定也有东西,但那是编程语言和运行环境的世界,我们的世界从VirtualRoot开始。
VirtualRoot是个静态类型,它不是被我们构建而生的,有世界的时候它就已经在那里了,它是从0开始的0,它是整个世界的根。VirtualRoot根上挂载的事物也全都是静态的在世界开始的时候就已经在那里的事物,直接挂载在VirtualRoot上的事物有:
EventBus 事件电车,它由MessageDispatcher驱动,MessageDispatcher不是装在它里面的引擎,MessageDispatcher是电。它运载事件,事件是一种消息,消息是一种空间结构体。
上面知道VirtualRoot上挂在的CommandBus和EventBus分别是运载命令和事件的,而命令和事件是两种不同类型的消息。消息是什么?消息是消息的收发方所协定的承载信息的空间结构体,空间结构体是什么?就是一段树枝,树枝的枝杈相对位置和长短编码了能被收发方所理解的信息。
事情发生前的消息。
事情发生后的消息。
路径,消息所运动的路径。