63 lines
2.0 KiB
Markdown
63 lines
2.0 KiB
Markdown
|
|
# 一致性保障 — 风格与管线
|
||
|
|
|
||
|
|
多层一致性确保输出可控
|
||
|
|
|
||
|
|
<Item title="风格一致性 — 合并策略">
|
||
|
|
Project Style(基底)+ Task Override(覆盖)→ `mergeStyle()` 逐键合并。工程风格定义全局基调,任务风格按需微调,互不干扰。
|
||
|
|
</Item>
|
||
|
|
|
||
|
|
<div class="mt-2">
|
||
|
|
|
||
|
|
```go
|
||
|
|
func mergeStyle(projectStyle, taskStyle map[string]string) map[string]string {
|
||
|
|
result := make(map[string]string)
|
||
|
|
for k, v := range projectStyle { result[k] = v }
|
||
|
|
for k, v := range taskStyle { result[k] = v } // 覆盖
|
||
|
|
return result
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<v-clicks>
|
||
|
|
|
||
|
|
<Item title="管线一致性 — Eino Graph 保证">
|
||
|
|
Graph 强制拓扑顺序执行,State 每次调用独立生成。节点无状态,数据经 State 中转,避免并发污染。
|
||
|
|
</Item>
|
||
|
|
|
||
|
|
<Item title="质量一致性 — 质检 + 重试 + 降级">
|
||
|
|
QualitySupervisor 自动质检,不合格重试(最多 3 次),超限降级输出。确保最终产物始终可用。
|
||
|
|
</Item>
|
||
|
|
|
||
|
|
</v-clicks>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
# 一致性保障 — 数据与部署
|
||
|
|
|
||
|
|
从存储到部署的全链路一致性
|
||
|
|
|
||
|
|
<v-clicks>
|
||
|
|
|
||
|
|
<Item title="数据一致性 — ACID 事务">
|
||
|
|
SQLite 单文件 ACID + GORM 事务包裹关键操作。CASCADE 删除保证级联清理,外键约束维护引用完整性。
|
||
|
|
</Item>
|
||
|
|
|
||
|
|
<Item title="ID 一致性 — 前缀 + 随机">
|
||
|
|
格式:`prefix_base62`(如 `task_9bN4vR`)。`crypto/rand` 生成 base62 编码,全局唯一且可读。前缀标识实体类型,便于调试。
|
||
|
|
</Item>
|
||
|
|
|
||
|
|
<Item title="部署一致性 — 容器化 + 确定性构建">
|
||
|
|
Docker Compose 双容器(nginx + app),确定性构建保证环境一致。CI/CD 推送 master 自动触发部署。
|
||
|
|
</Item>
|
||
|
|
|
||
|
|
<Item title="配置一致性 — Viper 多层覆盖">
|
||
|
|
配置优先级:配置文件 → 环境变量 → 默认值。`Viper` 统一管理,开发/测试/生产环境无缝切换。
|
||
|
|
</Item>
|
||
|
|
|
||
|
|
</v-clicks>
|
||
|
|
|
||
|
|
<div class="flex justify-center mt-2">
|
||
|
|
<img src="../public/harness.svg" class="w-full max-h-[160px] object-contain" />
|
||
|
|
</div>
|