BLOGE
0.9.9-RC1在线版 · 编制 2026-11-02 · English
第 34 章 —— 实验
承诺: 读完本章后,你将完成基础、进阶、毕业三级 capstone。最终作品不只包含 graph,还包含技术测试、业务 Scenario/Policy、证据解读、架构图和“尚未证明事项”。
学习目标
- 在限定范围内从 starter 演进 graph,而不是从空文件猜语法。
- 分别交付 graph contract、business contract 和 release boundary 的证据。
- 对 effect、等待、恢复和 fallback 做单因素失败实验。
- 用一张架构图解释运行边界,用一张 receipt 解读图说明证据边界。
- 在完成声明中同时列出已证明、未证明和必须由人批准的事项。
前置条件
前面全部三十三章。这些实验假设你已经熟练掌握:
- Graph 结构、依赖和数据流(第 1 章–第 4 章)
- 分支和韧性(第 5 章–第 6 章)
- Operator 设计和 DSL 编写(第 7 章–第 8 章)
- 子图、迭代、等待和持久化(第 10 章–第 13 章)
- 编排模式 —— 多轮 session、状态机和嵌套生命周期所有权(第 14 章–第 16 章)
- 工具链与评审反馈(第 9 章)
- 测试、生产环境接线和规模化(第 18 章–第 22 章)
- 业务正确性、证据和发布声明(第 23 章–第 32 章)
- 迁移思维(第 33 章)
源示例
| 文件 | 展示内容 |
|---|---|
order-process.bloge | 基础 capstone 起点——扇出、汇合、分支、韧性 |
ticket-routing.bloge | 进阶 capstone 起点——情感分析与多路分支 |
loan-approval.bloge | 毕业 capstone 起点——贷款业务与验证资产 |
batch-order-parallel.bloge | 可选题——foreach 并行处理每一项 |
status-polling.bloge | 可选题——loop 加 until 和 loopIteration |
payment-wait.bloge | 可选题参考——await 事件关联、超时和分支 |
order-saga.bloge | 毕业题参考——saga 补偿模式 |
GraphTestRunner.java | 每个实验验证步骤使用的测试工具 |
MockOperator.java | 测试替身——returning、throwing、delaying、recording |
DslTestHelper.java | DSL 编译 + expectParseError / expectCompileError |
missing-timeout.bloge | 反模式参考——节点没有超时预算 |
over-broad-fallback.bloge | 反模式参考——降级范围过宽,掩盖了真实的故障模式 |
为什么这很重要
阅读 graph 的知识和亲手设计 graph 是两回事。前面每一章都只引入一个概念。而真实的工作流会同时组合所有概念:
- 一个订单管道需要扇出 加 韧性 加 分支。
- 一个工单路由器需要情感分析 加 三路分支 加 对不稳定 ML 服务的降级。
- 一个批处理器需要
foreach加 下游聚合