Skip to content

约束规则

跨端硬性规则。详细规范见 /standards/ 下各文件,此处只抽取"必须遵守"的决策级规则。


1. 数据库

  • 修改数据库结构必须同步改 V1__init_schema.sql禁止使用 Flyway 迁移脚本(不使用数据迁移原则)
  • 新增列标记 DEFAULT NULL 向后兼容

2. API

  • 所有控制器返回值用 ApiResponse<T>,异常由 GlobalExceptionHandler 统一处理
  • 新增 API 后更新 /reference/api.md
  • 接口变更必须向后兼容(服务器适配,客户端发版)

3. 管理后台

  • 新增页面后更新 /reference/admin.md
  • 使用 adminApi 时错误已在 request.ts 拦截器处理,无需重复 try-catch

4. Android

  • 修改 Room 实体后手动增加版本号并写迁移脚本(assets/migrations/
  • OSS 上传:新增业务方法在 FileManager 中添加,压缩规则定义在 ImageCompressConfig
  • ToastManager.showXxx() 必须传具体字符串
  • 禁止在 Composable 中直接 collectAsState 而不处理 repeatOnLifecycle
  • 所有页面必须用 PageTemplate,禁止直接用 Scaffold + TopAppBar
  • 有明确发送方→接收方的跨页通讯用 savedStateHandleFormStateManager,广播用 EventBus
  • 禁止 Navigation URL 路径参数、Bundle/bundleOf()、全局单例暂存
  • CameraContainer 不包含业务逻辑,新增模式不修改 CameraContainer

5. 文档同步义务

操作需同步文档
改数据库结构V1__init_schema.sql + /architecture/data-model.md + 各端功能说明
增/改 API/reference/api.md + Android ApiService.kt
新增管理后台页面/reference/admin.md
新增 Android 页面/功能/reference/android.md