获取方案

分层与模块边界

公开类型放 api,用例与端口放 core,HTTP、持久化与技术适配放 infrastructure;单体只做装配。

文档导航
本页目录

一项需求应该放在哪里?

当前单体在 单体应用 中装配 UMS、PMS、OMS、CMS;四域保留各自迁移与公开类型,共享单体数据源和本地事务管理器。

输入输出类型描述公开业务契约,core用例组织业务校验和事务,infrastructure将HTTP、数据库与外部技术实现适配到端口。持久化对象不能直接作为公开响应,单体启动层也不新增第二份业务规则。

依赖方向怎样检查?

  1. core不依赖具体HTTP控制器或Mapper。
  2. 同域公开类型不得暴露私有数据库结构。
  3. 其他域通过公开契约协作,不跨schema查询私有表。
  4. 跨域原子写入固定锁顺序并登记,避免持锁进行无界远程调用。

怎样表达失败?

公共错误对象包含 code 与 message;具体状态码、字段及登录要求须以对应接口实现和契约为准。

业务拒绝、系统失败、外部结果未知分别保留。异常记录traceId、类别和安全代码位置,不在普通日志中输出请求体、SQL参数或敏感身份。前端根据契约显示可理解反馈,同时保留用户输入。

变更后验证什么?

针对受影响模块编译,再核对公开响应、授权拒绝和持久回读。迁移与事务变更增加真实数据库检查;跨域测试应覆盖失败后无部分成功和锁顺序边界。相关范围通过后复用同版本证据,避免无依据重复全套测试。