Skip to content

Latest commit

 

History

History
74 lines (52 loc) · 2.48 KB

File metadata and controls

74 lines (52 loc) · 2.48 KB

08. 接口与生成代码

为什么需要独立硬流程

在微服务中,接口定义常位于独立契约仓,业务仓依赖 CI 生成的 SDK 或 protobuf 产物。Agent 最容易犯的错误是:

  • 修改业务调用,却没有先修改契约;
  • 直接手改业务仓里的生成文件;
  • 假设远端 CI 已经生成新版本;
  • 在依赖未更新时继续编写大量下游代码;
  • 编译失败后把问题归因于环境。

这类任务不能只靠“记得先改接口”,应设置硬暂停点。

推荐流程

flowchart TD
    A[更新契约仓主分支] --> B[创建契约功能分支]
    B --> C[修改源定义并本地提交]
    C --> D{用户确认提交内容}
    D -->|通过| E[推送并创建 PR/MR]
    D -->|暂缓| T[下游保留 TODO]
    E --> F{远端 CI 生成产物完成?}
    F -->|是| G[业务仓更新依赖并重新生成/vendor]
    F -->|否| T
    G --> H[确认生成文件确由工具更新]
    H --> I[实现下游业务代码]
Loading

两个必须暂停的位置

暂停点一:契约本地提交后

展示:

  • 源定义 diff;
  • 兼容性判断;
  • commit SHA;
  • 将创建的目标分支和 PR/MR。

用户确认后才推送。

暂停点二:远端生成任务后

不能根据时间推测 CI 完成。应查询流水线状态,并让用户确认可消费的版本已经生成。

只有此时,业务仓才能执行依赖更新和生成命令。

兼容性检查

契约变更至少检查:

  • 是否删除或重命名已有字段;
  • 字段编号是否复用;
  • 枚举默认值和未知值处理;
  • 新字段在旧客户端中的默认行为;
  • RPC 超时、错误语义和幂等性是否变化;
  • 所有调用方是否能独立升级;
  • 数据库或消息中的历史数据能否被新版本读取。

兼容性结论应以功能分支相对主分支的完整变更为准。

生成文件规则

  • 生成文件只由官方工具或仓库既有命令产生;
  • 不通过手工编辑制造“临时可编译”;
  • 更新依赖后检查 lockfile、module 文件和生成目录的真实 diff;
  • 不相关的大范围生成变化应停止并排查工具版本;
  • 若暂时跳过契约流程,下游只实现不依赖新类型的部分,并留下明确 TODO。

Skill 的价值

契约流程的关键不是自动运行更多命令,而是把“未完成上一步就禁止进入下一步”写成 Agent 无法忽略的硬规则。这是多仓 Skill 比普通操作文档更有价值的典型场景。