工程规范
1. 适用范围
本规范适用于 AUBB 当前代码仓库中的后端、文档与接口设计工作,目标是保证实现、测试、文档与需求口径长期一致。
2. 基本原则
- 先锁范围再写代码,默认只交付当前阶段的
MUST需求。 - 默认采用 TDD:先写失败测试,再做最小实现,再在测试通过后重构。
- 代码、测试、文档必须同轮更新,禁止“先实现、后补文档”。
- 平台治理身份与课程成员角色分开建模,避免过早耦合课程域。
- 全局文档只保留长期有效资产,不在
docs/根目录保留过程性内容。
3. 分支与提交
main:稳定演示与交付基线dev:日常集成分支feature/*:功能开发fix/*:缺陷修复docs/*:文档专项修改
提交信息建议采用 Conventional Commits 风格,例如:
feat: add scoped user detail apifix: enforce expired account login rejectiondocs: align user system workflow
4. 代码规范
- 当前后端以 Java 25 + Spring Boot 4 为基线。
- 包结构默认采用“模块优先、模块内分层”:
modules.<module>.{api,application,domain,infrastructure},共享能力仅保留在common、config和infrastructure.persistence。 - DTO、Entity、View/VO 分离,不直接把数据库实体暴露给接口层。
- 复杂业务逻辑写在应用层或领域层,不写在 Controller。
- 非显而易见的实现应添加简洁中文注释,说明业务意图、边界条件或设计原因。
5. 格式化与静态约束
- Java 代码统一使用
spotless格式化。 - 默认命令:
./mvnw spotless:apply./mvnw test./mvnw verify
- 提交前至少完成一次格式化与测试验证。
6. TDD 与测试门禁
- 领域规则、权限边界、账号状态、审计行为和关键 API 默认都要先写测试。
- 登录失败锁定、禁用/失效账号限制、默认会话时长等安全规则必须有自动化测试。
- 关键治理接口优先采用集成测试覆盖真实鉴权、Flyway 与数据库访问。
- 数据库相关验证优先使用 Testcontainers,而不是依赖本机手工环境。
7. Skills 与执行计划
- 多步骤或高风险任务必须建立执行计划,并记录目标、范围、风险、验证路径与关键决策。
- 推荐技能组合:
- Spring Boot 功能开发:
springboot-patterns+springboot-tdd - 安全与认证:
springboot-security - 文档更新:
documentation-writer - 架构决策:
architecture-decision-records
- Spring Boot 功能开发:
- 过程性工作记忆保留在仓库根目录
task_plan.md、findings.md、progress.md,不进入docs/根目录。
8. 文档同步规则
- 架构边界变化:同步更新
ARCHITECTURE.md、设计文档与质量说明。 - 认证、权限、API、数据库变化:同步更新仓库文档与
../docs/05-api、../docs/04-development、../docs/02-process-docs中对应内容。 - 若实现与系统级文档存在阶段性差异,必须写明“当前实现”和“后续扩展位”。
9. 数据库与安全
- 所有结构变更必须通过 Flyway。
- 密码必须采用强哈希算法存储。
- JWT 密钥、数据库口令、第三方令牌等敏感配置不得入库或提交到仓库。
- 导入、身份变更、账号状态变更、配置修改等治理动作必须写审计。