Files
OpenIsle/backend/AGENTS.md

60 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Backend 协作指引
## 1) 适用范围
- 作用于 `backend/` 目录及其子目录。
- 若与根 `AGENTS.md` 冲突,以本文件为准(仅后端范围)。
## 2) 代码结构心智模型
- `controller/`:接口层(入参校验、权限边界、响应格式)。
- `service/`:业务编排与领域规则(核心逻辑放这里)。
- `repository/`JPA 数据访问(基于实体与查询方法)。
- `model/`:实体模型与枚举。
- `dto/` + `mapper/`:对外契约和映射转换。
- `config/`安全、缓存、MQ、OpenAPI、初始化器等基础设施配置。
- `search/`OpenSearch 索引与事件驱动同步。
## 3) 后端修改规则
- 控制器保持“薄”,复杂逻辑下沉到 `service/`
- DTO 变更优先考虑兼容性,避免无版本的破坏性字段删除/改名。
- 新增接口时:
- 补齐必要的鉴权规则(`SecurityConfig`)。
- 补齐 OpenAPI 注解(`@Operation``@ApiResponse` 等)。
- 涉及缓存时,确认 `CachingConfig` 中缓存名、TTL 与失效策略一致。
## 4) 重点一致性检查
- 鉴权与公开接口:
- `src/main/java/com/openisle/config/SecurityConfig.java`
- 搜索索引同步(实体字段/文案变更时):
- `src/main/java/com/openisle/search/SearchDocumentFactory.java`
- `src/main/java/com/openisle/search/SearchIndexEventPublisher.java`
- 消息通知链路(评论/通知相关):
- `src/main/java/com/openisle/config/RabbitMQConfig.java`
- `src/main/java/com/openisle/config/ShardingStrategy.java`
- `src/main/java/com/openisle/service/NotificationProducer.java`
- 环境变量消费面:
- `src/main/resources/application.properties`
- 根目录 `.env.example`
## 5) 数据与事务注意事项
- 涉及多表写入时,明确事务边界,避免半成功状态。
- 避免在 Controller 直接操作 Repository。
- JPA 懒加载对象对外返回前应通过 DTO 映射,避免序列化副作用。
## 6) 测试与验证
- 首选全量:`mvn test`
- 变更集中时可先跑目标测试(示例):
- `mvn -Dtest=PostControllerTest test`
- `mvn -Dtest=SearchServiceTest test`
- 涉及搜索/MQ 配置时,至少完成一次启动级验证或关键集成测试。
## 7) 输出要求
- 明确列出“接口/字段/权限/事件”是否发生变化。
- 若影响 `mcp/``docs/`,在结果中显式提示需同步改动。