概念 · ChiralUI 的状态面

即将推出

ChiralData

同一条螺旋,从数据一侧来看。

ChiralUI 是人们看到的东西。ChiralData 是支撑它的东西:每个界面背后的契约、写入与读取路径、流程与服务。它按同样的环生长,目前仍是一个概念,还没有可安装的内容。

每个界面背后的状态。

ChiralData 为撑起界面的各个部分命名:契约、写入与读取路径、流程和服务。它目前还只是一个概念,暂时没有可安装的内容。

契约

Schema、类型和错误码只声明一次,由每个服务和客户端共享,正如 @chiralkit/registry-schema 已经在做的那样。

写入 ↔ 读取

每一次写入都与服务它的读取一起交付:一个只追加的日志,以及建立在它之上的投影,正如 @chiralkit/event-log 和 @chiralkit/agent-store 已经在做的那样。

界面有多可靠,取决于它的数据。

组件有设计系统,它们渲染的状态却很少有。校验逻辑在客户端和服务端之间来回复制,读取也逐渐偏离写入。ChiralData 让状态拥有同样的环,于是 UI 的每个环都有一个同样明确的数据面。

同样的环,从状态一侧来看。

契约是种子。基元和模式建立在契约之上,到了环 2,每一次写入都与它的读取相遇。流程和服务把这一切组合起来,一环接一环,就像 ChiralUI 对界面所做的那样。

ChiralData 的六个环

UI 的每个环都有一个状态面。每个环都由它之前的两个环构成,遵循斐波那契数列:0、1、1、2、3、5。契约是一切的起点;到了 2,手性开始出现:每一次写入都与它的读取一起交付。

打开完整的手性场景

契约

环 0

Schema、类型、错误码和配置,声明一次,由每个服务和客户端共享。在今天的 Chiralkit 中,那就是 @chiralkit/registry-schema。

基元

环 1a

直接由契约构建的单一用途函数:一个校验器、一个查询、一个哈希。

模式

环 1b

基元的常见组合:请求处理器、中间件链、重试、分页。

写入 ↔ 读取

环 2

手性对:相同的信封,方向互为镜像。一个只追加的日志,以及读取它的投影;@chiralkit/event-log 和 @chiralkit/agent-store 已经这样运作。

流程

环 3

端到端的操作,例如登录、发布模块或批准变更,由模式和写入/读取对组装而成。

服务

环 5

一个领域的 API,由流程组合而成。其他系统调用的界面;数据螺旋的顶端。

ChiralFM