09-项目目录结构.md 5.32 KB

09-项目目录结构

一、仓库顶层

.
├── CLAUDE.md                # Claude Code 主指令
├── README.md                # 项目说明(人工补充)
├── .env.local               # 本地凭据(不入 git)
├── .gitignore
├── .githooks/               # 项目级 git hooks
│   └── pre-push             # push 前触发本地全量测试闸门
├── scripts/                 # 工具脚本
│   ├── test.sh              # 全量测试入口
│   └── setup-test-db.sh     # DROP+CREATE 测试库
├── sql/
│   └── migrations/          # Flyway 顺序迁移文件
│       └── V1__initial_schema.sql
├── docs/                    # 见 § 四
├── backend/                 # 后端工程(Spring Boot + Maven)
└── frontend/                # 前端工程(React + Vite)

二、后端目录

根包名:com.xly.erp

backend/
├── pom.xml
└── src/
    ├── main/
    │   ├── java/<根包路径>/
    │   │   ├── ErpApplication.java          # Spring Boot 启动类
    │   │   ├── common/                       # 通用组件
    │   │   │   ├── response/                 # 统一响应封装
    │   │   │   ├── exception/                # 全局异常处理
    │   │   │   ├── security/                 # JWT / Security 配置
    │   │   │   └── util/
    │   │   └── module/                       # 业务模块(按 docs/01 模块代码分目录)
    │   │       ├── usr/                      # USR 用户管理
    │   │       │   ├── controller/
    │   │       │   ├── service/
    │   │       │   ├── mapper/
    │   │       │   ├── entity/
    │   │       │   ├── dto/
    │   │       │   └── vo/
    │   │       └── mod/                      # MOD 模块管理
    │   │           ├── controller/
    │   │           ├── service/
    │   │           ├── mapper/
    │   │           ├── entity/
    │   │           ├── dto/
    │   │           └── vo/
    │   └── resources/
    │       ├── application.yml               # 主配置
    │       ├── application-dev.yml           # dev profile
    │       ├── application-test.yml          # test profile
    │       └── mapper/                       # MyBatis-Plus XML(按模块子目录)
    └── test/
        └── java/<根包路径>/
            └── module/                       # 与 main 同结构,测试代码

三、前端目录

frontend/
├── package.json
├── vite.config.ts
├── index.html
└── src/
    ├── main.tsx                # 应用入口
    ├── App.tsx                 # 根组件 + 全局 ConfigProvider
    ├── api/                    # 接口封装(按模块分文件,如 usr.ts / mod.ts)
    ├── components/             # 通用组件
    ├── layouts/                # 布局组件(MainLayout 等)
    ├── pages/                  # 业务页面(按模块分目录)
    │   ├── usr/                # USR 用户管理
    │   │   ├── UserList.tsx
    │   │   ├── UserForm.tsx
    │   │   └── UserDetail.tsx
    │   └── mod/                # MOD 模块管理
    │       └── ModuleTree.tsx
    ├── store/                  # Redux Toolkit slices
    ├── hooks/                  # 自定义 hooks
    ├── router/                 # 路由配置
    ├── utils/                  # 工具函数(日期、金额、权限判断等)
    └── styles/                 # 全局样式 / 主题 token

四、docs/ 结构

docs/
├── 01-需求清单/           # 每模块一子目录(_module.md 模块头 + REQ-*.md 卡片)
├── 02-开发计划.md
├── 03-数据库设计文档.md
├── 04-技术规范.md
├── 05-API接口契约.md
├── 06-UI交互规范.md
├── 07-环境配置.md
├── 08-模块任务管理.md
├── 09-项目目录结构.md
├── 10-验收检查清单.md
└── superpowers/          # CC 运行时产物

五、命名与放置约定

  • 根包com.xly.erp,所有 Java 类必须在此包或其子包下
  • 前端命名空间:以 src/ 为根,按模块代码(小写)建子目录
  • Controller:放 module/<mod>/controller/,类名 <Entity>Controller,提供 RESTful 接口
  • Service:接口 <Entity>Service + 实现 <Entity>ServiceImpl,放 module/<mod>/service/[impl/]
  • Mapper:接口放 module/<mod>/mapper/,XML 放 resources/mapper/<mod>/
  • DTO:入参对象,放 module/<mod>/dto/,命名 <Action><Entity>DTO(如 CreateUserDTO
  • VO:响应对象,放 module/<mod>/vo/,命名 <Entity>VO<Entity><Scope>VO(如 UserListVO
  • Entity:与数据库表 1:1 映射,放 module/<mod>/entity/
  • 前端组件:通用组件放 src/components/,业务专用组件放 src/pages/<mod>/components/
  • 前端页面:每个 REQ 一个页面文件,放 src/pages/<mod>/,PascalCase 命名
  • 前端路由:集中在 src/router/,按模块分文件后聚合