Skip to main content

BLOGE 0.9.8-RC1 在线版 · 事实校验 2026-09-15 · English

附录 G —— DSL 工程参考

第 8 章只讲“个人草稿如何成为团队资产”。本附录保存工程查阅细节,不要求第一次阅读时记住。

import 与 alias

推荐显式写出 alias:

import "./payment-flow" as paymentFlow

没有显式 alias 时,编译器可从路径最后一段推导名称;团队文件仍应显式声明,避免文件重命名同时改变引用名。FileSystemGraphResolver 以当前文件目录解析相对路径;找不到文件、循环导入和重复 alias 都属于建图前错误。

schema 选择速查

需要表达的事实形式
必填标量field: String
可缺失标量field: String?
同文件复用结构命名 schema
只出现一次的局部结构内联 { ... }
同类型集合List<T>
键值结构Map<K,V>

RC1 的路径验证对内联嵌套结构能给出逐段字段诊断。本书 ch08 probe 因此使用内联 customer;不要把这一观察外推为未来版本的永久语义。

ValidatedSchema 不是 DSL 语法

Java runtime 可用 ValidatedSchema 把 expected schema 与 STRICTCOERCELENIENT 策略组合。DSL 编译器做结构检查时读取 expected schema;运行时策略决定值如何被验证或转换。两者不能混写成一个结论:编译期路径正确,不等于运行期值一定满足策略。

resolver 扩展边界

自定义 GraphResolver 适合从受控仓库、classpath 或其他版本化来源读取 graph。它必须给出确定身份、明确失败和循环保护。远程读取、缓存失效和签名验证属于宿主系统职责,不由 import 语法自动解决。

查阅入口