- 新增文档模板和导航结构 - 实现服务器基础API路由和控制器 - 添加扩展插件配置和前端框架 - 引入多租户和权限管理模块 - 集成日志和数据库配置 - 添加核心业务模型和类型定义
511 lines
13 KiB
Markdown
511 lines
13 KiB
Markdown
# ChatGPT Export
|
||
Conversation: AI友好项目结构设计
|
||
URL: https://chatgpt.com/c/69b7c25b-5b50-8330-b35f-136a8b74ad57
|
||
Exported: 2026-03-16T08:47:55.941Z
|
||
|
||
## User
|
||
|
||
创建更多AI友好的项目文件 帮助 AI 理解模块间的依赖边界,避免循环依赖和架构混乱 帮助 AI 快速定位各模块职责,理解代码组织方式
|
||
|
||
## Assistant
|
||
|
||
明白,你想要的是一种**AI友好的项目文件结构和说明体系**,让 AI 能够快速理解模块之间的依赖、职责边界,以及整体架构,避免循环依赖和混乱。下面我整理了一套方案,包括文件设计、说明方式和辅助工具。
|
||
|
||
---
|
||
|
||
## 1. 项目总体设计原则
|
||
|
||
1.
|
||
**模块化**
|
||
|
||
-
|
||
每个模块(Module)单一职责,明确功能边界。
|
||
-
|
||
尽量避免跨模块调用深层内部函数,只通过接口或导出函数进行通信。
|
||
2.
|
||
**层级清晰**
|
||
|
||
-
|
||
分层原则(Layered Architecture):
|
||
|
||
-
|
||
`core` 核心逻辑
|
||
-
|
||
`service` 服务/业务逻辑
|
||
-
|
||
`controller` 控制层/路由层
|
||
-
|
||
`ui` 界面或前端组件
|
||
-
|
||
AI 能通过路径快速推断模块职责。
|
||
3.
|
||
**依赖方向一致**
|
||
|
||
-
|
||
只允许高层模块依赖低层模块,禁止低层模块依赖高层模块。
|
||
-
|
||
可用 `PROJECT_MAP.md` 来可视化依赖关系,帮助 AI 理解边界。
|
||
4.
|
||
**明确接口(Interface)**
|
||
|
||
-
|
||
每个模块导出统一接口,并在模块目录下放置 `README.md` 或 `module_info.md` 描述:
|
||
|
||
-
|
||
功能
|
||
-
|
||
输入/输出
|
||
-
|
||
调用约束
|
||
|
||
---
|
||
|
||
## 2. 文件/目录结构示例
|
||
|
||
```
|
||
project-root/│├─ core/ # 核心模块,最低依赖层│ ├─ utils/ # 公共工具函数│ │ ├─ string_utils.js│ │ └─ array_utils.js│ └─ constants.js│├─ service/ # 业务逻辑层│ ├─ userService/│ │ ├─ index.js│ │ └─ module_info.md│ └─ orderService/│ ├─ index.js│ └─ module_info.md│├─ controller/ # 控制层│ ├─ userController.js│ └─ orderController.js│├─ ui/ # 前端组件层│ ├─ components/│ └─ pages/│├─ docs/ # 项目文档│ ├─ PROJECT_MAP.md # 模块依赖可视化│ ├─ PROJECT_RULES.md # 编码和依赖规范│ └─ ARCHITECTURE.md # 架构说明│└─ package.json
|
||
```
|
||
|
||
---
|
||
|
||
## 3. AI友好文件内容示例
|
||
|
||
### 3.1 `module_info.md`(每个模块单独维护)
|
||
|
||
```
|
||
Markdown# UserService 模块## 功能- 用户信息管理- 登录/注册逻辑- 用户权限验证## 接口- `createUser(data: UserData): Promise<User>`- `getUserById(id: string): Promise<User>`- `validateUserCredentials(username: string, password: string): Promise<boolean>`## 依赖- core/utils- core/constants## 被调用方- controller/userController
|
||
```
|
||
|
||
> AI 可以直接扫描 `module_info.md` 来理解模块职责和依赖关系。
|
||
|
||
---
|
||
|
||
### 3.2 `PROJECT_MAP.md`(全局依赖地图)
|
||
|
||
```
|
||
Markdown# 项目模块依赖关系- core/utils -> 无依赖- core/constants -> 无依赖- service/userService -> core/utils, core/constants- service/orderService -> core/utils, core/constants, service/userService- controller/userController -> service/userService- controller/orderController -> service/orderService
|
||
```
|
||
|
||
> AI 能快速定位循环依赖风险和依赖链。
|
||
|
||
---
|
||
|
||
### 3.3 `PROJECT_RULES.md`(AI友好开发规范)
|
||
|
||
```
|
||
Markdown# 项目开发规则1. 模块必须单一职责。2. 高层模块可以依赖低层模块,禁止反向依赖。3. 每个模块必须提供 `module_info.md` 描述功能、接口、依赖。4. 公共工具函数放在 core/utils。5. 所有依赖必须通过 import/export 明确,不允许动态 require。6. 项目新增模块必须更新 PROJECT_MAP.md。
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 辅助工具(可选)
|
||
|
||
1.
|
||
**自动生成依赖图**
|
||
|
||
-
|
||
使用工具扫描 import/export,生成模块关系图,AI 可以快速理解:
|
||
|
||
-
|
||
JS/TS: `madge`、`dependency-cruiser`
|
||
-
|
||
Python: `pydeps`
|
||
2.
|
||
**自动检查循环依赖**
|
||
|
||
-
|
||
集成到 CI/CD,保证新增模块不破坏依赖层次。
|
||
3.
|
||
**结构化文档**
|
||
|
||
-
|
||
使用 YAML 或 JSON 描述模块接口(可选),AI 可以直接解析:
|
||
|
||
```
|
||
YAMLmodule: userServicefunctions: - name: createUser params: - name: data type: UserData returns: Userdependencies: - core/utils
|
||
```
|
||
|
||
---
|
||
|
||
如果你愿意,我可以帮你生成一个**完整的 AI 友好项目模板仓库**,包含:
|
||
|
||
-
|
||
所有目录和示例模块
|
||
-
|
||
每个模块 `module_info.md`
|
||
-
|
||
`PROJECT_MAP.md`、`PROJECT_RULES.md`
|
||
-
|
||
自动生成依赖图的配置
|
||
|
||
这样你直接 clone 就能用。
|
||
|
||
你希望我帮你生成这个模板吗?
|
||
|
||
## User
|
||
|
||
还有更多的吗
|
||
|
||
## Assistant
|
||
|
||
当然,可以做得更系统、更“AI友好”,让 AI 不只是理解模块关系,还能**快速定位逻辑、推导依赖、辅助重构**。我把思路拆成几类扩展方案:
|
||
|
||
---
|
||
|
||
## 1️⃣ 模块级增强
|
||
|
||
除了 `module_info.md`,每个模块可以加:
|
||
|
||
1.
|
||
**接口定义文件**(Interface 文件)
|
||
|
||
-
|
||
明确函数、类、返回类型和异常
|
||
-
|
||
JS/TS 可用 `.d.ts` 或 `interface.json`
|
||
-
|
||
AI可以直接解析这些接口文件来理解模块“输入输出”
|
||
2.
|
||
**职责标签**(tags.json)
|
||
|
||
```
|
||
JSON{ "module": "userService", "tags": ["user-management","authentication","validation"]}
|
||
```
|
||
|
||
-
|
||
AI可通过标签快速搜索相关模块
|
||
|
||
3.
|
||
**使用示例**(examples/)
|
||
|
||
-
|
||
每个模块放一个最小使用示例,说明如何调用
|
||
-
|
||
AI可以直接学习调用模式
|
||
|
||
---
|
||
|
||
## 2️⃣ 项目级增强
|
||
|
||
1.
|
||
**模块依赖拓扑图**
|
||
|
||
-
|
||
使用 Mermaid 或 Graphviz 生成可视化依赖图
|
||
|
||
```
|
||
Mermaid
|
||
```
|
||
|
||
-
|
||
AI直接读 Markdown 文件,就能理解模块关系
|
||
|
||
2.
|
||
**功能地图(Feature Map)**
|
||
|
||
-
|
||
按功能点拆分模块
|
||
|
||
```
|
||
Markdown# Feature Map- Authentication: userService, authService- Orders: orderService, orderController- Reporting: reportService
|
||
```
|
||
|
||
-
|
||
AI快速定位功能模块
|
||
|
||
3.
|
||
**公共约束文件**
|
||
|
||
-
|
||
约束依赖方向、命名规范、文件大小、单模块行数等
|
||
-
|
||
AI可用这些规则自动检查或推理架构异常
|
||
|
||
---
|
||
|
||
## 3️⃣ 数据流与调用链
|
||
|
||
1.
|
||
**输入输出文档(IO Map)**
|
||
|
||
-
|
||
描述模块输入输出类型和来源去向
|
||
|
||
```
|
||
YAMLmodule: orderServiceinputs: - source: userController.createOrder type: OrderDataoutputs: - destination: orderController.sendOrderConfirmation type: Confirmation
|
||
```
|
||
|
||
-
|
||
AI可以快速分析数据流,定位潜在循环依赖
|
||
|
||
2.
|
||
**调用链示例(Call Map)**
|
||
|
||
-
|
||
用 JSON 或 Mermaid 展示典型业务调用流程
|
||
|
||
```
|
||
Mermaid
|
||
```
|
||
|
||
-
|
||
AI快速理解执行路径
|
||
|
||
---
|
||
|
||
## 4️⃣ AI友好标注
|
||
|
||
-
|
||
**函数/类级别注释**
|
||
|
||
-
|
||
明确输入类型、返回类型、异常、依赖
|
||
-
|
||
**模块级 summary 注释**
|
||
|
||
-
|
||
摘要模块目的、边界和关键依赖
|
||
-
|
||
**版本或变更日志**
|
||
|
||
-
|
||
`CHANGELOG.md` 描述模块演变,AI可追溯历史依赖问题
|
||
|
||
---
|
||
|
||
## 5️⃣ 可选高级做法
|
||
|
||
1.
|
||
**结构化模块文档**
|
||
|
||
-
|
||
用 JSON/YAML 统一描述模块信息
|
||
-
|
||
AI可以直接解析,不用自然语言理解
|
||
|
||
```
|
||
YAMLmodule: userServicelayer: servicedependencies: [core/utils, core/constants]interfaces: - name: createUser params: [UserData] returns: User
|
||
```
|
||
|
||
2.
|
||
**自动生成文档工具**
|
||
|
||
-
|
||
`docgen.js` 或 Python 脚本扫描项目,生成:
|
||
|
||
-
|
||
模块 info
|
||
-
|
||
项目依赖图
|
||
-
|
||
数据流图
|
||
-
|
||
AI能直接读取生成的“标准化结构”,理解项目逻辑
|
||
|
||
---
|
||
|
||
💡 总结:
|
||
目前你的基础是 `module_info.md` \+ `PROJECT_MAP.md` \+ `PROJECT_RULES.md`,可进一步升级为:
|
||
|
||
-
|
||
模块标签、接口文件、示例
|
||
-
|
||
功能地图、拓扑图、数据流图
|
||
-
|
||
结构化文档(JSON/YAML)\+ 自动生成工具
|
||
|
||
这样 AI 能做到**完全理解模块边界、职责、依赖方向、调用链**,还能快速定位问题或辅助重构。
|
||
|
||
---
|
||
|
||
如果你愿意,我可以帮你画一张**AI友好项目文档体系全图**,把这些文件、文档和图标关系全部整合成一张架构图,让整个项目对 AI 一目了然。
|
||
|
||
你希望我画吗?
|
||
|
||
## User
|
||
|
||
可以
|
||
|
||
## Assistant
|
||
|
||
好,我给你设计一张**AI友好项目文档体系全图**,把所有文件、模块、文档和关系整合在一起,清晰显示 AI 如何理解模块、依赖、数据流和职责边界。
|
||
|
||
---
|
||
|
||
## AI友好项目文档体系全图(概念示意)
|
||
|
||
```
|
||
Mermaid
|
||
```
|
||
|
||
---
|
||
|
||
### 🌟 说明
|
||
|
||
1.
|
||
**核心模块 \(`core/`\)**
|
||
|
||
-
|
||
公共工具和常量
|
||
-
|
||
最底层依赖,不依赖其他模块
|
||
2.
|
||
**业务逻辑模块 \(`service/`\)**
|
||
|
||
-
|
||
每个模块有 `module_info.md`、IO Map
|
||
-
|
||
可视化调用链 \(`Call Map`\) 辅助理解
|
||
3.
|
||
**控制层 \(`controller/`\)**
|
||
|
||
-
|
||
依赖业务模块
|
||
-
|
||
AI可通过调用链快速理解流程
|
||
4.
|
||
**前端/UI \(`ui/`\)**
|
||
|
||
-
|
||
仅依赖核心和服务模块
|
||
-
|
||
文档中标注依赖和接口
|
||
5.
|
||
**项目文档 \(`docs/`\)**
|
||
|
||
-
|
||
`PROJECT_RULES.md` 规范
|
||
-
|
||
`PROJECT_MAP.md` 依赖关系
|
||
-
|
||
`ARCHITECTURE.md` 架构说明
|
||
-
|
||
AI可直接解析规则、地图和架构说明
|
||
6.
|
||
**高级 AI 文档**
|
||
|
||
-
|
||
IO Map(输入输出数据)
|
||
-
|
||
功能地图(Feature Map)
|
||
-
|
||
调用链(Call Map / Mermaid)
|
||
-
|
||
标签、示例代码、接口定义文件
|
||
|
||
---
|
||
|
||
这个全图能帮助 AI 实现:
|
||
|
||
-
|
||
快速理解模块职责与依赖
|
||
-
|
||
避免循环依赖
|
||
-
|
||
理解数据流和调用链
|
||
-
|
||
支持快速定位重构点
|
||
|
||
---
|
||
|
||
我可以帮你把这个概念图**升级成一个可直接 clone 的 AI友好项目模板**,里面包括所有模块、文档示例和 Mermaid 自动生成依赖图。
|
||
|
||
你希望我帮你做这个吗?
|
||
|
||
## User
|
||
|
||
可以
|
||
|
||
## Assistant
|
||
|
||
好,我帮你设计一个**完整的 AI 友好项目模板仓库**,结构清晰、文档齐全、可直接 clone 使用,并且支持 AI 快速理解模块依赖、职责和数据流。下面是设计方案和示例内容:
|
||
|
||
---
|
||
|
||
## 1️⃣ 项目结构(模板版)
|
||
|
||
```
|
||
ai_friendly_project/│├─ core/ # 核心模块│ ├─ utils/ # 公共工具函数│ │ ├─ string_utils.js│ │ └─ array_utils.js│ └─ constants.js│├─ service/ # 业务逻辑模块│ ├─ userService/│ │ ├─ index.js│ │ ├─ module_info.md│ │ └─ io_map.yaml│ └─ orderService/│ ├─ index.js│ ├─ module_info.md│ └─ io_map.yaml│├─ controller/ # 控制层│ ├─ userController.js│ └─ orderController.js│├─ ui/ # 前端组件层│ ├─ components/│ └─ pages/│├─ docs/ # 项目文档│ ├─ PROJECT_RULES.md # 开发与依赖规范│ ├─ PROJECT_MAP.md # 模块依赖地图│ ├─ ARCHITECTURE.md # 架构说明│ ├─ FEATURE_MAP.md # 功能地图│ └─ CALL_MAP.md # 业务调用链│├─ examples/ # 模块示例代码│ ├─ userService_example.js│ └─ orderService_example.js│├─ package.json└─ README.md
|
||
```
|
||
|
||
---
|
||
|
||
## 2️⃣ 核心模块示例
|
||
|
||
### `core/utils/string_utils.js`
|
||
|
||
```
|
||
JavaScriptexport function capitalize(str) { return str.charAt(0).toUpperCase() + str.slice(1);}
|
||
```
|
||
|
||
### `core/constants.js`
|
||
|
||
```
|
||
JavaScriptexport const STATUS = { ACTIVE: 'active', INACTIVE: 'inactive'};
|
||
```
|
||
|
||
---
|
||
|
||
## 3️⃣ 模块文档示例
|
||
|
||
### `service/userService/module_info.md`
|
||
|
||
```
|
||
Markdown# UserService 模块## 功能- 用户信息管理- 登录/注册逻辑- 用户权限验证## 接口- createUser(data: UserData): Promise<User>- getUserById(id: string): Promise<User>- validateUserCredentials(username: string, password: string): Promise<boolean>## 依赖- core/utils- core/constants## 被调用方- controller/userController
|
||
```
|
||
|
||
### `service/userService/io_map.yaml`
|
||
|
||
```
|
||
YAMLmodule: userServiceinputs: - source: userController.createUser type: UserDataoutputs: - destination: userController.sendUserCreatedResponse type: User
|
||
```
|
||
|
||
---
|
||
|
||
## 4️⃣ 项目文档示例
|
||
|
||
### `docs/PROJECT_MAP.md`
|
||
|
||
```
|
||
Markdown# 项目模块依赖关系- core/utils -> 无依赖- core/constants -> 无依赖- service/userService -> core/utils, core/constants- service/orderService -> core/utils, core/constants, service/userService- controller/userController -> service/userService- controller/orderController -> service/orderService
|
||
```
|
||
|
||
### `docs/PROJECT_RULES.md`
|
||
|
||
```
|
||
Markdown# 项目开发规则1. 模块必须单一职责。2. 高层模块可以依赖低层模块,禁止反向依赖。3. 每个模块必须提供 module_info.md 和 io_map.yaml。4. 公共工具函数放在 core/utils。5. 所有依赖必须通过 import/export 明确。6. 项目新增模块必须更新 PROJECT_MAP.md 和 FEATURE_MAP.md。
|
||
```
|
||
|
||
### `docs/FEATURE_MAP.md`
|
||
|
||
```
|
||
Markdown# 功能地图- Authentication: userService, authService- Orders: orderService, orderController- Reporting: reportService
|
||
```
|
||
|
||
### `docs/CALL_MAP.md`(Mermaid 业务调用链)
|
||
|
||
```
|
||
Mermaid
|
||
```
|
||
|
||
---
|
||
|
||
## 5️⃣ AI友好特性
|
||
|
||
1.
|
||
**模块边界清晰**:每个模块都有 `module_info.md` \+ `io_map.yaml`。
|
||
2.
|
||
**依赖透明化**:PROJECT\_MAP.md 和 FEATURE\_MAP.md 让 AI 快速理解依赖和功能分类。
|
||
3.
|
||
**调用链可视化**:CALL\_MAP.md 让 AI理解业务流程。
|
||
4.
|
||
**标准化接口**:所有函数和模块都有明确输入输出类型。
|
||
5.
|
||
**示例代码**:examples/ 提供最小调用示例,方便 AI理解使用方式。
|
||
|
||
---
|
||
|
||
如果你愿意,我可以进一步帮你生成**完整模板文件夹和示例代码**,直接可用的项目结构,甚至包括 **Mermaid 自动生成依赖图脚本**,让 AI 一打开就能理解整个项目。
|
||
|
||
你希望我直接生成这个完整模板吗?
|