開源礦工0

咱們相信全部的系統都是從0開始的

咱們相信,全部的系統都是從0開始的。

所謂從0開始就是從虛無開始,軟件系統必定也是從0開始的。0能夠稱做Void、Virtual什麼的,Void已經被編程語言佔用了,那麼咱們用Virtual吧。git

咱們相信,全部的系統在空間結構上都是樹形的,軟件系統確定不例外。

樹是一個奇妙的結構,只要你願意你所掌握的一切知識都是樹形,你未掌握的知識也是樹形。不作多說,開源礦工系統在空間結構上和行爲結構上都要有Root(根)概念。開源礦工有根,構建開源礦工的編程語言有根,開源礦工所生存的運行時環境也有根,下層的事物咱們不作追究,開源礦工做爲生存在操做系統時空中的一個小小的應用系統來講只感知本身所須要感知的環境便可。github

咱們相信,全部的詞彙都應該按照望文生義理解

你望文生義出來的意思就是本真的意思,凡是不能望文生義的或者望文生義出的意思和聯想不一致的語言文字載體都已經被前人丟棄或者早晚被後人丟棄。咱們不使用不能望文生義的詞彙。編程

從源代碼的VirtualRoot類型開始。望文生義,這是虛無,這是根。這是第一個出現的東西,它處在開源礦工的最底層,全部上層建築都創建在它之上。它下面確定也有東西,但那是編程語言和運行環境的世界,咱們的世界從VirtualRoot開始。編程語言

VirtualRoot

VirtualRoot是個靜態類型,它不是被咱們構建而生的,有世界的時候它就已經在那裏了,它是從0開始的0,它是整個世界的根。VirtualRoot根上掛載的事物也全都是靜態的在世界開始的時候就已經在那裏的事物,直接掛載在VirtualRoot上的事物有:編碼

  1. JsonSerializer 它是粉碎機,它是重建器,它安裝在系統的出入口處,開源礦工內部的物體流出系統前會被它打碎成下層系統的物體,下層原子世界不須要咱們關注;外部系統的事物在進入咱們的系統後首先會被它重建成咱們的世界裏事物的樣子。咱們的系統只有一個入口和一個出口,這惟一的出入口就是VirtualRoot,是根。
  2. MessageDispatcher 推動器、動力源,或者其它什麼名字,照此理解就能夠了,開源礦工系統內部運動的動力之源就是它,至於它的動力又是來自CPU這種下層世界的事物又超出咱們的世界以外去了。
  3. CommandBus 命令電車,它由MessageDispatcher驅動,MessageDispatcher不是裝在它裏面的引擎,MessageDispatcher是電。它運載命令,命令是一種消息,消息是一種空間結構體。
  4. EventBus 事件電車,它由MessageDispatcher驅動,MessageDispatcher不是裝在它裏面的引擎,MessageDispatcher是電。它運載事件,事件是一種消息,消息是一種空間結構體。

Message

上面知道VirtualRoot上掛在的CommandBus和EventBus分別是運載命令和事件的,而命令和事件是兩種不一樣類型的消息。消息是什麼?消息是消息的收發方所協定的承載信息的空間結構體,空間結構體是什麼?就是一段樹枝,樹枝的枝杈相對位置和長短編碼了能被收發方所理解的信息。spa

Command

事情發生前的消息。操作系統

Event

事情發生後的消息。事件

Path

路徑,消息所運動的路徑。get

開源礦工官網:https://ntminer.com/

相關文章
相關標籤/搜索