Files
dukang/conventions.md
T
2026-06-30 10:33:56 +08:00

3.0 KiB
Raw Blame History

杜康好客 · 协同与开发规范

编码事实源:根目录 杜康好客-V2编码手册.mdPRD + DB v3.1 + API + 计划 + 架构)
preV1 Mock 联调杜康好客-preV1编码手册.md


1. 代码所有权

.github/CODEOWNERS。端与后端模块边界:

目录 Owner 说明
apps/mini-user @dev-a C端小程序
apps/mini-partner @dev-b 城市合伙人小程序
apps/mini-hq @dev-c 总部管理小程序
apps/h5-shop @dev-d 门店 H5
server/.../modules/{iam,trade,benefit,analytics} @dev-a 交易与权益域
server/.../modules/store @dev-b 门店域
server/.../modules/{catalog,settlement,ops} @dev-c 开城与结算域
server/.../modules/redeem @dev-d 核销域
server/.../callbacks, jobs, common @backend-lead 回调与任务
packages/* 全员 + @tech-lead 公共契约,破坏性改动谨慎
server/dukang-api/prisma 全部 Owner 迁移必须多人 Review

2. 模块边界(机器 + 人工)

  • 任一 apps/* 禁止 import 另一个 app 或 server/* 源码。
  • 后端 Module 禁止 跨模块直写 Prisma 表,只 inject 对方 exports 的 Service(见编码手册 §四 §2.5)。
  • 共享逻辑:packages/shared-typesDTO/枚举)、packages/domain(纯函数规则)。
  • 计划引入 eslint-plugin-boundaries,在 pnpm lint / CI 阶段强制。

3. 接口契约

  • 单一事实源:packages/shared-types + 杜康好客-V2编码手册.md §六。
  • 加法优先:新字段 optional;删除/改名先 deprecated。
  • 改了 API 必须同步更新手册 §六 与 shared-types。
  • 破坏性变更走 URI 版本 /v1/v2

4. 数据库契约(v3.1

  • 表结构事实源:编码手册 §五28 表,user_/common_/log_ 等前缀)。
  • Prisma schema 与手册保持一致;初始化 SQL 见 server/dukang-api/prisma/init_v3.sql
  • 关键约定:
    • C 端 user_user.phone 唯一;B 端 store_account / partner_account / hq_account 三表分离
    • payments / user_order_item / redeem_tokens
    • 埋点 → log_user_analytics;业务事件 → common_event;工单 → common_ticket

5. 分支与提交

  • feature 分支 + 小步 PR;跨模块改动需相关双 Owner Review。
  • Conventional Commitsscope 用端或模块名:feat(user)fix(trade)chore(shared-types)

6. 本地环境

  • Docker Compose 起 MySQL + Redis + serverM0 交付 deploy/docker-compose.yml)。
  • 敏感配置走 .env,不入库。
  • DATABASE_URL 配置后:npx prisma migrate dev 或执行 init_v3.sql

7. 原型参照

  • UI 以 pages/{user,shop,partner,hq}/ 为准;与 PRD 映射见编码手册 §二、§三
  • C 端订单列表必须为 5 Tab(含待发货);V1 无会员等级标签。