- 新增OpenSpec规范文档,包含变更提案、任务清单和设计文档模板 - 添加AI代理配置文件,包括文档维护、代码分析和开发专家代理 - 更新.gitignore文件,排除Claude相关的临时文件和目录 - 添加项目上下文文档,定义技术栈、代码规范和架构模式 - 创建完整的OpenSpec指令文档,指导AI编码助手进行规范驱动开发 - 配置多端开发代理,支持Java、React、Taro/NutUI等技术栈 - 建立代码质量和工程规范,确保团队协作的一致性 - 定义微服务架构下的领域驱动设计模式和COLA架构规范
5.6 KiB
5.6 KiB
Project Context
Purpose
ERPTurbo_Server 是一个现代化的企业资源规划(ERP)系统后端服务,专注于供应链管理和业务流程自动化。系统采用微服务架构,支持采购管理、产品管理、订单管理、经销商管理、用户权限管理等核心业务功能。
Tech Stack
核心技术栈
- Java版本: Java 21 (LTS)
- 框架: Spring Boot 3.4.5, Spring Cloud 2024.0.1, Spring Cloud Alibaba 2023.0.3.3
- 架构模式: DDD (领域驱动设计) + COLA架构
- 微服务: Apache Dubbo 3.2.10
- 服务发现: Nacos
- 数据库: MySQL 8.0.28
- ORM: MyBatis Plus 3.5.10.1, MyBatis 3.0.4
- 连接池: Druid 1.2.20
- 缓存: Redis, Redisson
- 认证授权: Sa-Token
- API文档: Swagger/OpenAPI
- 构建工具: Maven
- 日志: Logback
开发工具
- 代码生成: Lombok
- 对象映射: MapStruct
- 参数校验: Validation
- 数据库连接池: Druid
- 分布式事务: Seata (可选)
Project Conventions
Code Style
命名规范
- 实体类:
Product(领域实体),ProductDO(数据对象) - 服务接口:
功能名+ServiceI - 服务实现:
功能名+ServiceImpl - 查询执行器:
功能名+QryExe - 命令执行器:
功能名+CmdExe - 网关实现:
功能名+GatewayImpl - 转换器:
功能名+Convert - 控制器:
功能名+Controller
代码注解规范
- 使用Lombok简化代码 (
@Data,@RequiredArgsConstructor,@Builder) - MapStruct进行对象转换 (
@Mapper) - 统一的异常处理
- Spring注解:
@Service,@Component,@DubboService,@DubboReference - 权限注解:
@SaCheckLogin,@SaCheckRole,@SaCheckPermission - API文档注解:
@Tag,@Operation,@Schema
包结构规范
com.xunhong.erp.turbo/
├── api/ # API接口定义
│ ├── dto/ # 数据传输对象
│ │ ├── cmd/ # 命令对象
│ │ ├── qry/ # 查询对象
│ │ ├── vo/ # 视图对象
│ │ └── enums/ # 枚举类
│ └── api/ # 服务接口
├── biz/ # 业务逻辑层
│ ├── app/ # 应用服务
│ │ ├── service/ # 服务实现
│ │ └── executor/ # 执行器
│ ├── domain/ # 领域层
│ │ ├── entity/ # 领域实体
│ │ └── gateway/ # 网关接口
│ └── infrastructure/ # 基础设施层
│ ├── entity/ # 数据实体
│ ├── mapper/ # 数据访问
│ └── convert/ # 对象转换
Architecture Patterns
分层架构
项目采用严格的分层架构,遵循DDD和COLA架构原则:
- API层: 接口定义,包括DTO、Command、Query、VO
- 应用层: Service服务实现,Executor执行器
- 领域层: Entity实体,Gateway网关接口
- 基础设施层: DO数据对象,Mapper数据访问,Convert转换器
微服务架构
- 基于Dubbo的RPC通信
- Nacos作为注册中心和配置中心
- 模块化设计,职责单一
数据访问模式
- 使用MyBatis Plus进行数据库操作
- DO与领域实体分离
- 通过MapStruct进行对象转换
- 支持多数据源
Testing Strategy
测试框架
- 单元测试: JUnit
- 集成测试: Spring Boot Test
- 内存数据库: H2 (用于测试)
测试规范
- 测试类命名:
被测试类+Test - 单元测试覆盖核心业务逻辑
- 集成测试验证API接口
- 使用H2内存数据库进行测试
Git Workflow
分支策略
- master: 主分支,稳定版本
- develop: 开发分支
- feature/xxx: 功能分支
- hotfix/xxx: 热修复分支
提交规范
基于Conventional Commits规范:
feat: 新功能fix: 修复refactor: 重构docs: 文档style: 格式调整test: 测试chore: 构建或辅助工具变动
Domain Context
核心业务领域
- 采购管理: 供应商管理、采购订单、采购成本控制
- 产品管理: 产品信息维护、成本费用关联、分类管理
- 订单管理: 订单处理、订单供应商关联、包装发货
- 经销商管理: 经销商信息、仓库管理、返利客户
- 权限管理: 用户、角色、权限的完整RBAC模型
- 基础设施: 字典、平台、渠道、物料、协议等基础数据
业务规则
- 严格的权限控制体系
- 多租户支持 (基于平台维度)
- 审计日志记录
- 数据一致性要求高
Important Constraints
技术约束
- 必须使用Java 21 LTS版本
- 严格遵循DDD和COLA架构
- 微服务间通信必须使用Dubbo
- 数据库操作必须通过MyBatis Plus
- 权限控制必须集成Sa-Token
业务约束
- 数据一致性要求高,特别是财务相关数据
- 需要支持高并发访问
- 严格的审计要求
- 多租户数据隔离
安全约束
- 所有API接口必须进行权限校验
- 敏感数据必须加密存储
- 审计日志必须完整记录
- 防止SQL注入和XSS攻击
External Dependencies
核心依赖
- Spring生态: Spring Boot, Spring Cloud, Spring Security
- 数据库: MySQL 8.0.28
- 缓存: Redis
- 消息队列: 可选RocketMQ/RabbitMQ
- 服务治理: Nacos, Dubbo
- 监控: Micrometer, Prometheus (可选)
外部服务
- 第三方支付: 支付宝、微信支付 (如需要)
- 物流服务: 快递公司API接口 (如需要)
- 短信服务: 阿里云短信、腾讯云短信 (如需要)
开发工具
- 构建工具: Maven 3.8+
- IDE: IntelliJ IDEA (推荐)
- 版本控制: Git
- API测试: Postman/Swagger UI