commit bbe619d386204e46f53965fcc58b26db1d9c4201 Author: smart Date: Fri Jun 12 01:27:11 2026 +0800 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dd743d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +.history/* +node_modules +.DS_Store +dist +*.local +.vite-inspect +.remote-assets +components.d.ts +.history/* +slidev/pnpm-lock.yaml +slidev/pnpm-workspace.yaml diff --git a/slidev/.gitignore b/slidev/.gitignore new file mode 100644 index 0000000..85bf32a --- /dev/null +++ b/slidev/.gitignore @@ -0,0 +1,8 @@ +node_modules +.DS_Store +dist +*.local +.vite-inspect +.remote-assets +components.d.ts +.history/* \ No newline at end of file diff --git a/slidev/README.md b/slidev/README.md new file mode 100644 index 0000000..12a7606 --- /dev/null +++ b/slidev/README.md @@ -0,0 +1,11 @@ +# Welcome to [Slidev](https://github.com/slidevjs/slidev)! + +To start the slide show: + +- `npm install` +- `npm run dev` +- visit + +Edit the [slides.md](./slides.md) to see the changes. + +Learn more about Slidev at the [documentation](https://sli.dev/). diff --git a/slidev/components/Counter.vue b/slidev/components/Counter.vue new file mode 100644 index 0000000..eaa6a79 --- /dev/null +++ b/slidev/components/Counter.vue @@ -0,0 +1,37 @@ + + + diff --git a/slidev/netlify.toml b/slidev/netlify.toml new file mode 100644 index 0000000..9f91d0e --- /dev/null +++ b/slidev/netlify.toml @@ -0,0 +1,16 @@ +[build] +publish = "dist" +command = "npm run build" + +[build.environment] +NODE_VERSION = "20" + +[[redirects]] +from = "/.well-known/*" +to = "/.well-known/:splat" +status = 200 + +[[redirects]] +from = "/*" +to = "/index.html" +status = 200 diff --git a/slidev/package.json b/slidev/package.json new file mode 100644 index 0000000..9ef7d3c --- /dev/null +++ b/slidev/package.json @@ -0,0 +1,19 @@ +{ + "name": "slidev", + "type": "module", + "private": true, + "scripts": { + "build": "slidev build", + "dev": "slidev --open", + "export": "slidev export" + }, + "dependencies": { + "@iconify-json/logos": "^1.2.11", + "@slidev/cli": "^52.16.0", + "@slidev/theme-default": "latest", + "@slidev/theme-seriph": "latest", + "slidev-theme-penguin": "^2.3.1", + "vite-svg-loader": "^5.1.1", + "vue": "^3.5.33" + } +} \ No newline at end of file diff --git a/slidev/pages/day1.md b/slidev/pages/day1.md new file mode 100644 index 0000000..182ad58 --- /dev/null +++ b/slidev/pages/day1.md @@ -0,0 +1,517 @@ +--- +layout: cover +background: https://images.unsplash.com/photo-1555066931-4365d14bab8c?w=1920&q=80 +--- + +# 第 1 天:TRAE 基础工作流与陌生代码库理解 + +
+真实项目案例:若依 RuoYi-Vue / RuoYi-Vue3 +
+ +
+主线任务:理解「登录 → 用户信息 → 菜单路由 → 按钮权限」调用链路 +
+ +--- + +# 为什么选若依作为案例? + +
+ +
+
+
若依的特点
+
+ +- 🏢 足够**真实** — 不是 demo,是完整后台管理系统 +- 📋 足够**典型** — 用户、角色、菜单、权限、日志、字典 +- 🔗 足够**复杂** — 前后端分离、多模块、多层级 + +
+
+
+ +
+
+
适合训练的维度
+
+ +- 陌生代码库理解 +- 前后端分离结构分析 +- 登录认证链路 +- 动态菜单与路由 +- 角色与权限体系 +- 按钮权限控制 +- 操作日志审计 + +
+
+
+ +
+ +--- + +# 今天训练四个动作 + +
+ +
+
+ 🏗️ +
+
看结构
+
目录、模块
分层、技术栈
+
+ +
+
+ 🔍 +
+
找入口
+
登录、用户信息
菜单、权限入口
+
+ +
+
+ 🔗 +
+
追链路
+
从登录到路由
到按钮权限
+
+ +
+
+ ✅ +
+
查依据
+
每个结论
验证文件来源
+
+ +
+ +
+最终产出:若依权限与菜单模块代码理解报告 +
+ +--- + +# 模块 1:TRAE 在真实研发中的定位 + +
+ +
+
TRAE 适合辅助
+
+ +- 检索代码 +- 解释函数 +- 梳理结构 +- 生成链路初稿 +- 生成文档初稿 + +
+
+ +
+
不能直接替代
+
+ +- 业务判断 +- 权限决策 +- 安全判断 +- 上线决策 + +
+
+ +
+ +
+核心区分: +代码事实(代码现在怎么写) vs +业务事实(业务应该怎么规定)
+TRAE 擅长发现代码事实,人工必须判断业务事实 +
+ +--- + +# 模块 2:若依核心业务对象 + +
+ +```mermaid {scale: 0.85} +graph LR + U[User 用户] -->|绑定| R[Role 角色] + R -->|授权| M[Menu 菜单] + M -->|包含| P[Permission 权限字符] + P -->|控制| A[页面/按钮/接口] + U -->|属于| D[Dept 部门] + R -->|数据权限| D +``` + +
+ +
+ +
+
页面权限
+能不能看到某个菜单页面 +
+ +
+
按钮权限
+能不能操作新增/修改/删除 +
+ +
+
数据权限
+能看到哪些部门范围的数据 +
+ +
+ +--- + +# 模块 3:@workspace 理解全局结构 + +
+ +
+ +**标准 Prompt:** + +``` +@workspace 请分析若依项目全局结构。 + +维度: +1. 前端目录 2. 后端目录 +3. 登录认证 4. 动态路由 +5. API 封装 6. 权限控制 +7. 操作日志 8. 代码生成 +9. 测试与构建 10. 不确定点 + +每个结论标注依据文件。 +``` + +
+
+ +
+⚠️ 不要问:「@workspace 帮我看看若依项目」— 太泛泛,会得到空洞总结 +
+ +--- +layout: two-cols +layoutClass: gap-6 +--- + +# 若依前后端结构重点 + +
+ +### 前端重点目录 + +| 目录 | 职责 | +|------|------| +| `src/api` | 接口封装 | +| `src/router` | 路由配置 | +| `src/store` | 状态管理 | +| `src/views` | 页面组件 | +| `src/directive` | 权限指令 | +| `src/permission` | 路由守卫 | +| `src/utils/request` | 请求拦截 | + +
+ +::right:: + +
+ +### 后端重点模块 + +| 模块 | 职责 | +|------|------| +| `ruoyi-admin` | 启动+接口 | +| `ruoyi-framework` | 框架配置 | +| `ruoyi-system` | 业务逻辑 | +| `ruoyi-common` | 公共工具 | + +
+ +**分层结构:** Controller → Service → Mapper + +
+
+ +--- + +# 模块 4:核心调用链路 + +
+ +```mermaid {scale: 0.8} +graph TD + A[用户登录] --> B[获取 Token] + B --> C[获取用户信息 getInfo] + C --> D[获取菜单路由 getRouters] + D --> E[生成动态路由] + E --> F[进入系统页面] + F --> G[权限字符控制按钮] +``` + +
+ +
+
登录页面
+
API 调用
+
后端 Controller
+
状态更新
+
+ +--- + +# 登录认证链路 + +
+ +
+ +
1. 用户输入账号密码
+
↓
+
2. Login 页面提交
+
↓
+
3. 调用 login API
+
↓
+
4. 后端认证用户
+
↓
+
5. 返回 Token
+
↓
+
6. 前端保存 Token
+
↓
+
7. Request 拦截器携带 Token
+ +
+ +
+
+
重点确认
+
+ +- Token 存储在哪里? +- Request 拦截器在哪里带 Token? +- Token 失效后如何处理? +- 是否有刷新 Token 机制? + +
+
+
+ +
+ +--- + +# 动态路由加载链路 + +
+ +
+
1. 调用 getRouters
+
↓
+
2. 后端返回菜单树
+
↓
+
3. 前端转换为路由对象
+
↓
+
4. 动态挂载路由 (addRoute)
+
↓
+
5. 渲染侧边栏菜单
+
↓
+
6. 用户进入页面
+
+ +
+
+
菜单类型
+
+ +| 类型 | 说明 | +|------|------| +| 目录 | M - 包含子菜单 | +| 菜单 | C - 对应页面组件 | +| 按钮 | F - 权限字符 | + +
+
+
+ +
+ +--- + +# 按钮权限链路 + +
+ +```mermaid {scale: 0.85} +graph LR + A[菜单配置权限字符] --> B[角色授权该字符] + B --> C[getInfo 返回 permissions] + C --> D[前端权限指令判断] + D --> E[按钮显示/隐藏] +``` + +
+ +
+ +
+
⚠️ 关键警告
+
+ +前端按钮权限 **只能控制 UI 展示** + +如果用户绕过前端直接请求后端接口,安全由后端接口权限决定 + +
+
+ +
+
必须确认
+
+ +- Controller 是否有权限注解? +- Service 是否校验数据权限? +- 不能只看前端就下结论 + +
+
+ +
+ +--- + +# 模块 5:AI 输出可信度判断 + +
+ +
+
❌ 不可信回答
+
+「若依已经实现了完整权限控制,用户登录后会自动加载菜单和按钮权限,后端接口也都有权限校验,整体风险较低。」 +
+
+无文件路径 · 无函数名 · 无依据 · 无不确定点 +
+
+ +
+
✅ 可信回答
+
+「前端登录成功后调用 getInfo 获取用户信息和权限字符。随后调用 getRouters 获取动态路由菜单。可确认前端存在菜单和按钮权限控制。但仍需检查后端 Controller 权限注解。」 +
+
+有依据 · 有调用关系 · 区分前后端 · 标注不确定点 +
+
+ +
+ +--- + +# 可信结论四件套 + +
+ +
+
📁
+
文件路径
+
前端 api 文件
后端 Controller
+
+ +
+
⚙️
+
函数/类/注解
+
getInfo · getRouters
权限注解
+
+ +
+
🔗
+
调用关系
+
登录→token→info
→routes→权限
+
+ +
+
❓
+
不确定点
+
无法确认的内容
必须标注
+
+ +
+ +
+没有这四项内容的 AI 输出,不能轻易采纳进入报告 +
+ +--- + +# 模块 6:代码理解报告结构 + +
+ +| 章节 | 内容要求 | +|------|---------| +| 模块职责 | 具体说明,不能写空话 | +| 核心对象 | User / Role / Menu / Permission / Dept | +| 目录与文件 | 标注和权限主线的关系 | +| 核心调用链路 | 拆分子链路,标注依据 | +| 权限风险 | 风险描述 + 触发条件 + 影响 + 验证 | +| 操作日志风险 | 哪些操作缺失日志 | +| 改造建议 | 文件 + 方法 + 验收标准 | +| 不确定结论 | 必须单独列出 | + +
+ +
+风险写法要求:不能写「权限有风险」,必须具体到触发条件 + 影响范围 + 验证方式 +
+ +--- +layout: center +--- + +# 第 1 天交付物 + +
+ +
+
01
+TRAE 使用边界清单 +
+ +
+
02
+若依模块认知图 +
+ +
+
03
+若依项目结构图 +
+ +
+
04
+权限调用链路图 +
+ +
+
05
+TRAE 输出校验清单 +
+ +
+
06
+代码理解报告 +
+ +
diff --git a/slidev/pages/day1/m1-trae-positioning.md b/slidev/pages/day1/m1-trae-positioning.md new file mode 100644 index 0000000..66000f0 --- /dev/null +++ b/slidev/pages/day1/m1-trae-positioning.md @@ -0,0 +1,243 @@ +# 为什么选若依作为案例? + +
+ +**若依适合训练:** 陌生代码库理解 · 前后端分离结构 · 登录认证链路 · 动态菜单与路由 · 角色与权限 · 按钮权限 · 数据权限 · 操作日志 · 代码生成 + +- 足够**真实** — 不是 demo,是完整后台管理系统 +- 足够**典型** — 很多企业内部系统都有这些模块 +- 足够**复杂** — 前后端分离、多模块、多层级 +
+ + + +--- + +# AI 编程不只是写代码 + +
+ +更重要的是:**读代码 · 找入口 · 追链路 · 查风险 · 写测试 · 生成文档 · 沉淀经验** + +
+AI 对研发的价值,不只是让某个人写得快一点,而是让团队更快理解系统、更快交接、更快定位风险。 +
+
+ + + +--- + +# AI 能效理念 + +
+
+ +**不是只看:** 代码写得更快 +
+
+ +**更要看:** +- 理解更快 · 交接更快 +- 定位更快 · 风险更早暴露 +- 团队知识沉淀更快 +
+
+ + + +--- + +# AI 替代人的现实判断 + +
+
+ +**AI 会替代:** 重复性、低上下文、低判断含量的工作方式 +
+
+ +**人必须负责:** 业务规则 · 权限边界 · 安全责任 · 架构取舍 · 上线决策 +
+
+ + + +--- + +# 第一天真正要学什么? + +
+
+
🏗️
+
看结构
+
+
+
🔍
+
找入口
+
+
+
🔗
+
追链路
+
+
+
✅
+
查依据
+
+
+ +
最终产出:若依权限与菜单模块代码理解报告
+ + + +--- + +# 模块 1:TRAE 的定位 + +
+
+ +**适合:** 检索代码 · 解释函数 · 梳理结构 · 生成链路初稿 · 生成文档初稿 +
+
+ +**不能直接替代:** 业务判断 · 权限决策 · 安全判断 · 上线决策 +
+
+ + + +--- + +# 代码事实 vs 业务事实 + +
+
+ +**代码事实:** 代码现在怎么写 + +TRAE 擅长发现代码事实 +
+
+ +**业务事实:** 业务应该怎么规定 + +人工必须判断业务事实 +
+
+ + + +--- + +# 适合 TRAE 辅助的任务 + +
+ +- 理解前后端目录 +- 查找登录入口 +- 查找菜单接口 +- 分析动态路由生成 +- 解释按钮权限 +- 梳理角色权限关系 +- 生成代码理解报告初稿 +
+ + + +--- + +# 必须人工判断的任务 + +
+ +- 角色权限是否合理 +- 数据权限范围是否正确 +- 接口是否应该开放 +- 敏感操作是否必须审计 +- 代码生成结果能否上线 +- 权限变更是否影响生产 +
+ + + +--- + +# 产出:TRAE 使用边界清单 + +
+ +| 分类 | 说明 | +|------|------| +| 适合 TRAE 辅助 | 查找登录接口、分析调用链路 | +| 可生成初稿但必须人工复核 | 判断角色权限是否合理 | +| 不建议直接交给 TRAE 决定 | 判断能否上线 | + +
+ + diff --git a/slidev/pages/day1/m2-ruoyi-objects.md b/slidev/pages/day1/m2-ruoyi-objects.md new file mode 100644 index 0000000..9a6c04a --- /dev/null +++ b/slidev/pages/day1/m2-ruoyi-objects.md @@ -0,0 +1,152 @@ +# 模块 2:若依核心业务对象 + +
+ +```mermaid {scale: 0.8} +graph LR + U[User 用户] -->|绑定| R[Role 角色] + R -->|授权| M[Menu 菜单] + M -->|包含| P[Permission 权限字符] + P -->|控制| A[页面/按钮/接口] + U -->|属于| D[Dept 部门] +``` + +核心对象:User 用户 · Role 角色 · Menu 菜单 · Permission 权限字符 · Dept 部门 · Post 岗位 · OperLog 操作日志 · Dict 字典 · GenTable 代码生成 +
+ + + +--- + +# 若依模块总览 + +
+
+ +- 登录认证 +- 用户管理 +- 角色管理 +- 菜单管理 +- 部门管理 +
+
+ +- 岗位管理 +- 权限控制 +- 操作日志 +- 登录日志 +- 代码生成 +
+
+ + + +--- + +# 用户、角色、菜单、权限关系 + +
+ +用户 User → 绑定 → 角色 Role → 授权 → 菜单 Menu → 包含 → 权限字符 Permission → 控制 → 页面访问 / 按钮显示 / 接口访问 + +
+ + + +--- + +# 若依中的三类权限 + +
+
+ +**页面权限** + +能不能看到某个菜单页面 +
+
+ +**按钮权限** + +能不能看到新增、修改、删除按钮 +
+
+ +**数据权限** + +能看到哪些部门或范围的数据 +
+
+ + + +--- + +# 若依业务导览 Prompt + +
+ +``` +@workspace 请从业务视角分析若依项目。 + +重点说明: +1. 系统主要解决什么问题 +2. 核心业务对象有哪些 +3. 用户、角色、菜单、权限如何协作 +4. 前端和后端分别负责什么 +5. 哪些结论需要人工验证 +``` + +
+ + + +--- + +# 产出:若依模块认知图 + +
+ +产出内容:核心业务对象 · 核心模块 · 模块职责 · 模块依赖关系 · 权限链路 · 风险点 · 不确定点 + +
+ + diff --git a/slidev/pages/day1/m3-workspace-structure.md b/slidev/pages/day1/m3-workspace-structure.md new file mode 100644 index 0000000..ea1b9c8 --- /dev/null +++ b/slidev/pages/day1/m3-workspace-structure.md @@ -0,0 +1,128 @@ +# 模块 3:不要让 AI 泛泛总结项目 + +
+
+ +**不要问:** +``` +@workspace 帮我看看若依项目 +``` +
+
+ +**要问:** 从前端、后端、认证、路由、API、权限、日志、测试、构建分析项目,并标注依据文件 +
+
+ + + +--- + +# 若依前后端结构怎么读? + +
+
+ +**前端重点:** src/api · src/router · src/store · src/views · src/directive · src/permission · src/utils/request +
+
+ +**后端重点:** ruoyi-admin · ruoyi-framework · ruoyi-system · ruoyi-common · Controller · Service · Mapper +
+
+ + + +--- + +# 认证链路要看哪些文件? + +
+ +登录页面 → login API → token 存储 → request 拦截器 → getInfo 用户信息 → getRouters 动态路由 → 权限 store → 路由守卫 + +
+ + + +--- + +# 动态菜单与路由怎么看? + +
+ +- 后端菜单表 +- 菜单类型:目录 / 菜单 / 按钮 +- 路由地址 · 组件路径 · 权限字符 +- 前端动态路由转换 +- router.addRoute + +
+ + + +--- + +# 全局结构分析 Prompt + +
+ +``` +@workspace 请分析若依项目全局结构。 +维度:1.前端目录 2.后端目录 3.登录认证 4.动态路由 +5.API封装 6.权限控制 7.操作日志 8.代码生成 +9.测试与构建 10.不确定点 +每个结论标注依据文件。 +``` + +
+ + + +--- + +# 产出:若依项目结构图 + +
+ +项目结构图应包含:前端目录职责 · 后端模块职责 · 认证与权限相关文件 · 菜单与路由相关文件 · API 封装相关文件 · 操作日志相关文件 · 不确定点 + +
+ + diff --git a/slidev/pages/day1/m4-call-chain.md b/slidev/pages/day1/m4-call-chain.md new file mode 100644 index 0000000..f184689 --- /dev/null +++ b/slidev/pages/day1/m4-call-chain.md @@ -0,0 +1,217 @@ +# 模块 4:第一天核心链路 + +
+ +```mermaid {scale: 0.75} +graph TD + A[用户登录] --> B[获取 token] + B --> C[获取用户信息] + C --> D[获取菜单路由] + D --> E[生成动态路由] + E --> F[进入系统页面] + F --> G[根据权限字符控制按钮] +``` + +
+ + + +--- + +# 调用链路 8 个检查点 + +
+
1. 页面入口
+
2. UI 组件
+
3. 事件函数
+
4. API 调用
+
5. 后端 Controller
+
6. Service/权限
+
7. 前端状态更新
+
8. 路由/按钮生效
+
+ + + +--- + +# 登录认证链路示例 + +
+ +用户输入账号密码 → Login 页面提交 → 调用 login API → 后端认证用户 → 返回 token → 前端保存 token → request 拦截器携带 token + +**重点:** token 存在哪里?拦截器在哪里带 token?token 失效后如何处理? +
+ + + +--- + +# 用户信息与权限加载链路 + +
+ +登录成功 → 调用 getInfo → 后端返回 user/roles/permissions → 前端保存用户信息 → 前端保存角色和权限字符 → 后续用于按钮权限判断 + +**注意:** 前端拿到权限字符只能控制页面展示,不能作为后端安全边界 +
+ + + +--- + +# 动态路由加载链路 + +
+ +调用 getRouters → 后端返回菜单树 → 前端转换为路由对象 → 动态挂载路由 → 渲染侧边栏菜单 → 用户进入页面 + +
+ + + +--- + +# 按钮权限链路 + +
+ +菜单中配置权限字符 → 角色拥有该权限字符 → getInfo 返回 permissions → 前端权限指令/方法判断 → 控制按钮显示或隐藏 + +
+ + + +--- + +# 后端接口权限链路 + +
+
+ +**前端按钮权限** → 只能控制 UI 展示 +
+
+ +**后端接口权限** → 必须控制真实访问 + +需要确认:Controller 是否有权限注解?Service 是否校验数据权限? +
+
+ + + +--- + +# 操作日志链路 + +
+ +管理员修改用户 → 调用后端接口 → Controller 执行业务 → 日志注解/AOP 记录操作 → 写入操作日志 → 操作日志页面查询 + +
+ + + +--- + +# 调用链路分析 Prompt + +
+ +``` +@workspace 请分析若依中"登录后菜单与按钮权限生效"的完整调用链路。 +从用户登录开始,依次说明: +登录页面、登录API、token、getInfo、getRouters、 +动态路由、侧边栏菜单、按钮权限、后端接口权限、不确定点。 +每一步标注文件路径和函数名。 +``` + +
+ + + +--- + +# 产出:若依权限调用链路图 + +
+ +- 登录认证链路图 +- 用户信息加载链路图 +- 动态菜单路由链路图 +- 按钮权限链路图 +- 后端接口权限链路图 +- 操作日志链路图 + +
+ + diff --git a/slidev/pages/day1/m5-ai-reliability.md b/slidev/pages/day1/m5-ai-reliability.md new file mode 100644 index 0000000..dee6779 --- /dev/null +++ b/slidev/pages/day1/m5-ai-reliability.md @@ -0,0 +1,107 @@ +# 模块 5:常见 AI 幻觉 + +
+ +**常见不可信结论:** +- 若依权限系统很完善 +- 所有接口都有后端校验 +- 按钮权限已经保证安全 +- 操作日志一定完整 +- 代码生成结果可以直接上线 +
+ + + +--- + +# 可信输出四件套 + +
+
+
📁
+
文件路径
+
+
+
⚙️
+
函数/类/注解
+
+
+
🔗
+
调用关系
+
+
+
❓
+
不确定点
+
+
+ + + +--- + +# 不可信回答示例 + +
+「若依已经实现了完整权限控制,用户登录后会自动加载菜单和按钮权限,后端接口也都有权限校验,整体风险较低。」 +
+ +
问题:没有文件路径 · 没有函数名 · 没有调用关系 · 没有不确定点
+ + + +--- + +# 可信回答示例 + +
+「前端登录成功后调用 getInfo 获取用户信息和权限字符。随后调用 getRouters 获取动态路由菜单。前端根据返回路由生成侧边栏菜单。可以确认前端存在菜单和按钮权限控制。但仍需检查后端 Controller 权限注解,才能确认接口级权限。」 +
+ + + +--- + +# 产出:TRAE 输出校验清单 + +
+ +| 检查项 | 要求 | +|--------|------| +| 文件路径 | 必须有 | +| 函数/类/注解 | 必须有 | +| 调用关系 | 必须说明 | +| 前后端区分 | 必须区分 | +| 不确定点 | 必须列出 | +| 验证方式 | 必须给出 | + +
+ + diff --git a/slidev/pages/day1/m6-code-report.md b/slidev/pages/day1/m6-code-report.md new file mode 100644 index 0000000..700265f --- /dev/null +++ b/slidev/pages/day1/m6-code-report.md @@ -0,0 +1,140 @@ +# 模块 6:报告主题 + +
+ +
+ +**代码理解报告:若依权限与菜单模块** + +核心问题:用户登录后,菜单、路由和按钮权限如何生效? + +
+
+ + + +--- + +# 报告结构 + +
+ +报告包含:模块职责 · 核心对象 · 目录与文件结构 · 核心调用链路 · 权限风险 · 操作日志风险 · 改造建议 · 不确定结论 + +
+ + + +--- + +# 模块职责写法 + +
+
+ +**不要写:** 权限模块用于权限控制。 +
+
+ +**要写:** 权限与菜单模块负责用户登录后加载角色、权限字符和动态路由,并根据角色菜单关系控制页面访问和按钮显示。 +
+
+ + + +--- + +# 核心对象写法 + +
+ +User 用户 · Role 角色 · Menu 菜单 · Permission 权限字符 · Dept 部门 · OperLog 操作日志 + +用户绑定角色,角色拥有菜单权限,菜单中包含权限字符,部门影响数据权限,操作日志记录敏感操作。 + +
+ + + +--- + +# 风险点写法 + +
+
+ +**不要写:** 权限有风险。 +
+
+ +**要写:** +- 风险:按钮权限只控制前端展示 +- 触发条件:后端接口缺少权限校验 +- 影响:用户可能绕过前端直接调用接口 +- 验证:检查 Controller 是否有权限注解 +
+
+ + + +--- + +# 改造建议写法 + +
+ +- **建议:** 确保敏感接口均有后端权限校验 +- **原因:** 前端按钮隐藏不能作为安全边界 +- **验收:** 无权限用户直接请求接口时返回 403 + +
+ + + +--- + +# 第 1 天最终交付物 + +
+
01 TRAE 使用边界清单
+
02 若依模块认知图
+
03 若依项目结构图
+
04 权限调用链路图
+
05 TRAE 输出校验清单
+
06 代码理解报告
+
+ + diff --git a/slidev/pages/day2.md b/slidev/pages/day2.md new file mode 100644 index 0000000..620b2ab --- /dev/null +++ b/slidev/pages/day2.md @@ -0,0 +1,553 @@ +--- +layout: cover +background: https://images.unsplash.com/photo-1558494949-ef010cbdcc31?w=1920&q=80 +--- + +# 第 2 天:TRAE 上下文工程与规则体系 + +
+让 TRAE 按团队规则改代码 — 从代码理解到研发治理 +
+ +
+上下文决定 AI 看什么 · 规则决定 AI 怎么做 · 资产化决定团队怎么复用 +
+ +--- + +# 第 1 天到第 2 天的跨越 + +
+ +
+
第 1 天
+
让 TRAE 看懂若依代码
+
+看结构 · 找入口 · 追链路 · 查依据 +
+
+ +
+
第 2 天
+
让 TRAE 按团队规则改代码
+
+组织上下文 · 控制幻觉 · 编写 rules · 沉淀资产 +
+
+ +
+ +
+核心变化:当团队多人都使用 AI 时,必须有统一上下文、统一 rules、统一验收标准,否则 AI 会带来不一致甚至风险。 +
+ +--- + +# 若依场景下的团队规则问题 + +
+
+
若依类后台项目常见风险
+
+ +
+ +- 🚨 绕过权限,页面直接调接口 +- 🚨 按钮权限当安全边界 +- 🚨 接口缺少权限注解 +- 🚨 操作日志缺失 + +
+ +
+ +- 🚨 代码生成后直接上线 +- 🚨 敏感信息进入日志 +- 🚨 数据权限范围不清 +- 🚨 AI 修改未经复核 + +
+ +
+
+
+ +
+今天要把这些隐性开发要求写成中文规则,让 TRAE 长期遵守 +
+ +--- + +# 今天三个关键词 + +
+ +
+
+ 🎯 +
+
上下文
+
决定 AI 看什么
+
整个项目 vs 单模块 vs 单文件
+
+ +
+
+ 📏 +
+
规则
+
决定 AI 怎么做
+
不能绕过权限 · 不能遗漏日志
+
+ +
+
+ 📦 +
+
资产化
+
决定团队怎么复用
+
Prompt · Rules · 模板
+
+ +
+ +--- + +# 模块 1:上下文工程 — 好任务五要素 + +
+ +
+好任务 = 目标 + 范围 + 约束 + 输出格式 + 验收标准 +
+ +
+ +
+ +
+
❌ 坏 Prompt
+ +``` +@workspace 帮我检查若依权限有没有问题。 +``` + +
目标不清 · 范围不清 · 约束不清 · 输出不清
+
+ +
+
✅ 好 Prompt
+ +``` +@workspace 分析若依用户管理页面按钮权限调用链路 + +范围:只分析新增/修改/删除按钮 +约束:不修改代码;标注文件和函数 +输出:表格 +验收:覆盖按钮/权限字符/前端判断/后端接口 +``` + +
+ +
+ +--- + +# 模块 2:四类上下文工具 + +
+ +
+
+@workspace +找路 +
+
全局搜索入口、文件、模块
+
如:找 getInfo、getRouters、权限指令
+
+ +
+
+#File +看文件 +
+
分析指定文件间的调用关系
+
如:分析用户 Controller 和 Service
+
+ +
+
+#Code +抠细节 +
+
分析单个方法的参数、调用、异常
+
如:分析 handleLogin 函数
+
+ +
+
+#Web +查外部 +
+
查询框架文档或最佳实践
+
但若依当前实现必须回到代码验证
+
+ +
+ +--- + +# 模块 3:幻觉死循环切断 + +
+ +
+
常见幻觉表现
+
+
AI 说所有接口都有权限校验
但不给 Controller 依据
+
AI 说操作日志完整
但不给注解或 AOP 依据
+
AI 说按钮权限安全
但只看到前端代码
+
+
+ +
+ +
+
1️⃣
+
先找证据
+
文件 · 类 · 方法 · 注解
+
+ +
+
2️⃣
+
再判断原因
+
区分事实和推测
+
+ +
+
3️⃣
+
最后给方案
+
修改 · 影响 · 验证
+
+ +
+ +
+ +--- + +# 证据收集标准 Prompt + +
+ +``` +请先不要修改代码。 + +请围绕"用户管理删除按钮权限"收集证据: + +1. 前端按钮在哪个页面 +2. 使用了哪个权限字符 +3. 前端如何判断按钮显示 +4. 后端删除接口在哪里 +5. Controller 是否有权限注解 +6. 是否记录操作日志 +7. 无法确认的内容 +``` + +
+ +
+先收集证据,再判断风险,最后才给方案。
不要让 AI 跳过证据直接给结论。 +
+ +--- + +# 模块 4:.gitignore 与敏感配置 + +
+ +
+
不应提交的文件
+
+ +- `.env` 环境变量 +- `application-dev.yml` 真实密码 +- 数据库账号 / Redis 密码 +- `target/` 编译产物 +- `node_modules/` / `dist/` +- 日志文件 +- IDE 本地配置 + +
+
+ +
+
敏感配置规则
+
+ +- 禁止硬编码数据库密码 +- 禁止硬编码 Redis 密码 +- 禁止硬编码 JWT 密钥 +- 禁止硬编码第三方密钥 +- 不得提交真实配置文件 +- 示例配置必须使用占位符 + +
+
+ +
+ +--- + +# 模块 5:.trae/rules.md 中文安全规则 + +
+ +
+规则 1:前端按钮权限只能作为交互控制,不能作为安全边界。 +
+ +
+规则 2:涉及用户、角色、菜单、部门、岗位等敏感接口时,必须检查后端 Controller 是否存在权限控制。 +
+ +
+规则 3:涉及新增、修改、删除、导出等操作时,必须检查是否记录操作日志。 +
+ +
+规则 4:禁止在源码中硬编码数据库密码、Redis 密码、JWT 密钥。 +
+ +
+规则 5:列表查询必须确认是否需要数据权限过滤。 +
+ +
+ +--- + +# 模块 6:编码与测试规则 + +
+ +
+
编码规则重点
+
+ +- 前端接口放 `api` 目录,不在页面写请求 +- 后端遵守 Controller → Service → Mapper 分层 +- 敏感接口关注权限注解 +- 敏感操作关注日志注解 +- 列表查询关注数据权限 +- 固定枚举值使用字典 +- 代码生成结果必须人工检查 + +
+
+ +
+
测试规则重点
+
+ +- ✅ 登录成功 / 失败 +- ✅ 无权限访问接口返回拒绝 +- ✅ 按钮权限和权限字符匹配 +- ✅ 角色授权变化后权限更新 +- ✅ 数据权限范围正确 +- ✅ 敏感操作有日志记录 +- ✅ 代码生成 CRUD 完整性 + +
+
+ +
+ +--- + +# 模块 7:前端专项规则 + +
+ +
+
用户管理页面规则示例
+ +| 规则项 | 要求 | +|--------|------| +| 按钮权限 | 新增/修改/删除/导出必须使用权限控制 | +| 删除操作 | 必须二次确认 | +| 提交失败 | loading 必须恢复 | +| 数据刷新 | 修改后必须刷新列表 | +| 敏感字段 | 不得明文展示或输出日志 | +| 接口调用 | 统一放 api 目录 | +| 动态路由 | 不能随意绕过 | +| 字典字段 | 使用统一字典显示 | + +
+
+ +--- + +# 模块 8:规则可执行性检查 + +
+ +
+
❌ 坏规则
+
+ +- 「注意权限安全」 +- 「代码要规范」 +- 「日志要完整」 +- 「数据权限要合理」 +- 「生成代码要检查」 + +
+
方向没错,但不可执行
+
+ +
+
✅ 好规则
+
+ +- 涉及用户/角色/菜单/部门/岗位的新增/修改/删除/导出接口 → **必须检查后端权限和操作日志** +- 涉及列表查询 → **必须确认数据权限过滤** +- 代码生成结果上线前 → **必须检查权限、日志、校验、异常和测试** + +
+
有触发场景 · 有必须动作 · 可被检查
+
+ +
+ +--- + +# 模块 9:技能与规则资产化 + +
+ +``` +ai-dev-assets/ +├── prompts/若依/ # 若依相关 Prompt 模板 +│ ├── 结构分析.md +│ ├── 登录权限链路.md +│ ├── 按钮权限检查.md +│ └── 操作日志检查.md +├── rules/若依/ # 若依 rules.md +├── templates/若依/ # 报告模板 +├── checklists/若依/ # 检查清单 +│ ├── 权限检查.md +│ ├── 日志检查.md +│ └── 代码生成Review.md +└── examples/若依/ # 优秀案例 & 反面案例 +``` + +
+ +
+这些资产以后可以直接用于公司内部类似后台管理系统 +
+ +--- + +# 若依版 rules.md 核心条款 + +
+ +
+
1
+
前端按钮权限不是安全边界
+
+ +
+
2
+
敏感接口必须检查后端权限
+
+ +
+
3
+
敏感操作必须检查操作日志
+
+ +
+
4
+
列表查询必须考虑数据权限
+
+ +
+
5
+
代码生成结果不得直接上线
+
+ +
+
6
+
不确定内容必须标注
+
+ +
+ +--- +layout: center +--- + +# 第 2 天交付物 + +
+ +
01 上下文组织清单
+
02 上下文引用模板
+
03 幻觉控制 Prompt
+
04 .gitignore 配置样例
+
05 若依中文安全规则
+
06 若依编码测试规则
+
07 若依前端规则
+
08 若依 AI 资产库目录
+
09 规则验收清单
+
10 若依版 rules.md v0.1
+ +
+ +--- + +# 两天课程总结 + +
+ +
+
第 1 天:读懂若依
+
+ +- 看结构 — 全局目录与模块职责 +- 找入口 — 登录、权限、菜单入口 +- 追链路 — 完整调用链路分析 +- 查依据 — 验证 AI 输出可信度 + +
+
+ +
+
第 2 天:按规则参与若依
+
+ +- 组织上下文 — 精准任务五要素 +- 控制幻觉 — 证据→原因→方案 +- 编写 rules — 中文可执行规则 +- 沉淀资产 — 团队长期复用 + +
+
+ +
+ +
+
+
最终能力
+
+
读得懂
+
问得准
+
查得实
+
改得稳
+
可复用
+
+
+
diff --git a/slidev/pages/day2/m1-context-engineering.md b/slidev/pages/day2/m1-context-engineering.md new file mode 100644 index 0000000..77fae9b --- /dev/null +++ b/slidev/pages/day2/m1-context-engineering.md @@ -0,0 +1,178 @@ +# 第 1 天到第 2 天 + +
+
+ +**第 1 天:** 让 TRAE 看懂若依代码 +
+
+ +**第 2 天:** 让 TRAE 按团队规则改若依代码 + +核心变化:从代码理解到研发治理 +
+
+ + + +--- + +# 若依场景下的团队规则问题 + +
+ +**若依类后台项目常见风险:** +- 绕过权限,页面直接调接口 +- 按钮权限当安全边界 +- 接口缺少权限注解 +- 操作日志缺失 +- 代码生成后直接上线 +- 敏感信息进入日志 +
+ + + +--- + +# 今天三个关键词 + +
+
+
🎯
+
上下文
+
决定 AI 看什么
+
+
+
📏
+
规则
+
决定 AI 怎么做
+
+
+
📦
+
资产化
+
决定团队怎么复用
+
+
+ + + +--- + +# 模块 1:若依任务为什么要讲清楚? + +
+ +**模糊任务:** 帮我优化用户管理模块 + +**问题:** 目标不清 · 范围不清 · 约束不清 · 输出不清 · 验收不清 +
+ + + +--- + +# 好任务五要素 + +
+
+好任务 = 目标 + 范围 + 约束 + 输出格式 + 验收标准 +
+
+ + + +--- + +# 若依坏 Prompt 示例 + +
+ +``` +@workspace 帮我检查若依权限有没有问题。 +``` + +问题:权限包含页面权限、按钮权限、接口权限、数据权限。"有没有问题"太泛。 +
+ + + +--- + +# 若依好 Prompt 示例 + +
+ +``` +@workspace 请分析若依"用户管理页面按钮权限"的调用链路。 +范围:只分析用户管理页面的新增、修改、删除按钮权限。 +约束:不修改代码;结论标注文件和函数;区分前端权限和后端接口权限。 +输出:表格。 +验收:覆盖按钮、权限字符、前端判断、后端接口、权限注解、不确定点。 +``` + +
+ + + +--- + +# 上下文组织清单 + +
+ +| 要素 | 说明 | +|------|------| +| 目标 | 到底要分析或修改什么 | +| 范围 | 只看哪些模块 | +| 输入文件 | 提供哪些文件 | +| 约束 | 不能做什么 | +| 输出格式 | 报告/表格/diff | +| 验收标准 | 什么结果算合格 | +| 不确定点 | 需要人工判断的 | + +
+ + diff --git a/slidev/pages/day2/m10-summary.md b/slidev/pages/day2/m10-summary.md new file mode 100644 index 0000000..1758d9b --- /dev/null +++ b/slidev/pages/day2/m10-summary.md @@ -0,0 +1,76 @@ +# 若依版 rules 核心条款 + +
+
1. 前端按钮权限不是安全边界
+
2. 敏感接口必须检查后端权限
+
3. 敏感操作必须检查操作日志
+
4. 列表查询必须考虑数据权限
+
5. 代码生成结果不得直接上线
+
6. 不确定内容必须标注
+
+ + + +--- + +# 第 2 天交付物 + +
+
01 上下文组织清单
+
02 上下文引用模板
+
03 幻觉控制 Prompt
+
04 gitignore 忽略配置样例
+
05 若依中文安全规则
+
06 若依编码测试规则
+
07 若依前端规则
+
08 若依 AI 资产库目录
+
09 规则验收清单
+
10 若依版 rules.md v0.1
+
+ + + +--- +layout: center +class: text-center +--- + +# 两天课程总结 + +
+
+ +**第 1 天:用 TRAE 看懂若依** +- 看结构 · 找入口 · 追链路 · 查依据 +
+
+ +**第 2 天:让 TRAE 按规则参与若依研发** +- 组织上下文 · 控制幻觉 · 编写 rules · 沉淀资产 +
+
+ +
+ +> **最终能力:读得懂 · 问得准 · 查得实 · 改得稳 · 可复用** + + diff --git a/slidev/pages/day2/m2-four-references.md b/slidev/pages/day2/m2-four-references.md new file mode 100644 index 0000000..a9600e4 --- /dev/null +++ b/slidev/pages/day2/m2-four-references.md @@ -0,0 +1,106 @@ +# 模块 2:四类上下文 + +
+
+ +**@workspace:找路** — 找入口、文件、模块 +
+
+ +**#File:看文件** — 分析文件间调用关系 +
+
+ +**#Code:抠细节** — 分析某个方法 +
+
+ +**#Web:查外部** — 查框架文档,但必须回代码验证 +
+
+ + + +--- + +# @workspace 找路示例 + +
+ +``` +@workspace 请找出若依中与"用户登录后菜单路由生成"相关的前后端文件。 +要求:标注文件路径 · 标注函数或类名 · 区分事实和推测 · 列出不确定点 +``` + +
+ + + +--- + +# #File 聚焦示例 + +
+ +``` +#File 请分析这些文件中登录、用户信息、菜单路由的调用关系。 +重点:谁调用login · 谁调用getInfo · 谁调用getRouters · +权限信息保存在哪里 · 路由在哪里动态生成 +``` + +
+ + + +--- + +# #Code 抠细节示例 + +
+ +``` +#Code 请分析 handleLogin 函数。 +重点:参数来源 · 调用哪个API · token如何保存 · +失败如何处理 · loading是否恢复 · 登录成功后跳转哪里 +``` + +
+ + + +--- + +# #Web 使用边界 + +
+ +**可查:** Spring Security 权限实践 · Vue Router 动态路由 · 前端按钮权限最佳实践 + +**但:** 若依当前实现必须回到代码验证。外部资料只能提供参考,不能替代项目事实。 + +
+ + diff --git a/slidev/pages/day2/m3-hallucination.md b/slidev/pages/day2/m3-hallucination.md new file mode 100644 index 0000000..28155cd --- /dev/null +++ b/slidev/pages/day2/m3-hallucination.md @@ -0,0 +1,113 @@ +# 模块 3:若依场景中的幻觉死循环 + +
+ +**常见表现:** +- AI 说所有接口都有权限校验 → 但不给 Controller 依据 +- AI 说操作日志完整 → 但不给注解或 AOP 依据 +- AI 说按钮权限安全 → 但只看到前端代码 +
+ + + +--- + +# 幻觉控制顺序 + +
+
+
1️⃣
+
先找证据
+
+
+
2️⃣
+
再判断原因
+
+
+
3️⃣
+
最后给方案
+
+
+ + + +--- + +# 若依证据收集 Prompt + +
+ +``` +请先不要修改代码。请围绕"用户管理删除按钮权限"收集证据: +1. 前端按钮在哪个页面 +2. 使用了哪个权限字符 +3. 前端如何判断按钮显示 +4. 后端删除接口在哪里 +5. Controller 是否有权限注解 +6. 是否记录操作日志 +7. 无法确认的内容 +``` + +
+ + + +--- + +# 原因判断 Prompt + +
+ +``` +请基于证据判断风险: +- 每个风险必须对应文件、函数或注解 +- 区分已确认事实和推测 +- 无法确认的内容写入不确定点 +- 不要直接下安全结论 +``` + +
+ + + +--- + +# 方案生成 Prompt + +
+ +``` +请基于已确认风险给出方案: +修改文件 · 修改方法 · 新增或调整权限注解 · +是否需要操作日志 · 影响范围 · 验证方式 · 测试建议 +``` + +
+ + diff --git a/slidev/pages/day2/m4-gitignore.md b/slidev/pages/day2/m4-gitignore.md new file mode 100644 index 0000000..78d5897 --- /dev/null +++ b/slidev/pages/day2/m4-gitignore.md @@ -0,0 +1,34 @@ +# 模块 4:若依项目哪些文件不能提交? + +
+ +- .env · application-dev.yml 中真实密码 · 数据库账号 · Redis 密码 +- target/ · node_modules/ · dist/ +- 日志文件 · IDE 本地配置 +
+ + + +--- + +# 若依忽略配置检查 Prompt + +
+ +``` +@workspace 请检查若依项目的 .gitignore 是否完整。 +重点检查:后端target · 前端node_modules/dist · +日志文件 · 本地配置 · 数据库密码 · Redis密码 · IDE配置 +``` + +
+ + diff --git a/slidev/pages/day2/m5-security-rules.md b/slidev/pages/day2/m5-security-rules.md new file mode 100644 index 0000000..6c44a85 --- /dev/null +++ b/slidev/pages/day2/m5-security-rules.md @@ -0,0 +1,49 @@ +# 模块 5:若依安全规则重点 + +
+ +账号密码 · Token · 接口权限注解 · 菜单与按钮权限 · 数据权限 · 操作日志 · 敏感配置 · 日志脱敏 + +
+ + + +--- + +# 中文安全规则示例 + +
+
前端按钮权限只能作为交互控制,不能作为安全边界
+
涉及用户、角色、菜单、部门、岗位等敏感接口时,必须检查后端 Controller 是否存在权限控制
+
涉及新增、修改、删除、导出等操作时,必须检查是否记录操作日志
+
+ + + +--- + +# 敏感配置规则 + +
+ +- 禁止在源码中硬编码数据库密码、Redis 密码、JWT 密钥、第三方密钥 +- 不得提交真实 application-dev.yml、.env、本地配置文件 +- 示例配置必须使用占位符 +
+ + diff --git a/slidev/pages/day2/m6-coding-rules.md b/slidev/pages/day2/m6-coding-rules.md new file mode 100644 index 0000000..90df4b3 --- /dev/null +++ b/slidev/pages/day2/m6-coding-rules.md @@ -0,0 +1,43 @@ +# 模块 6:若依编码规则重点 + +
+ +前端 api 分层 · 后端 Controller/Service/Mapper 分层 · 权限注解 · 操作日志注解 · 数据权限 · 字典使用 · 代码生成规范 + +
+ + + +--- + +# 若依测试规则重点 + +
+ +- 登录成功/失败 +- 无权限访问接口 +- 按钮权限显示 +- 角色授权变化 +- 数据权限范围 +- 操作日志记录 +- 代码生成 CRUD +
+ + diff --git a/slidev/pages/day2/m7-frontend-rules.md b/slidev/pages/day2/m7-frontend-rules.md new file mode 100644 index 0000000..dbc4d53 --- /dev/null +++ b/slidev/pages/day2/m7-frontend-rules.md @@ -0,0 +1,41 @@ +# 模块 7:若依前端规则重点 + +
+ +api 目录调用 · 权限指令 · 动态路由 · 列表 loading · 表单校验 · 删除二次确认 · 导出权限 · 字典显示 + +
+ + + +--- + +# 用户管理页面规则示例 + +
+ +- 新增、修改、删除、导出按钮必须使用权限控制 +- 删除必须二次确认 +- 提交失败后恢复 loading +- 修改用户后刷新列表 +- 敏感字段不得明文展示或输出日志 +
+ + diff --git a/slidev/pages/day2/m8-asset-library.md b/slidev/pages/day2/m8-asset-library.md new file mode 100644 index 0000000..6bcfc21 --- /dev/null +++ b/slidev/pages/day2/m8-asset-library.md @@ -0,0 +1,39 @@ +# 模块 8:若依资产库建议 + +
+ +建议沉淀:若依结构分析 Prompt · 登录权限链路 Prompt · 菜单路由分析 Prompt · 按钮权限检查 Prompt · 操作日志检查 Prompt · 代码生成 Review 清单 · 若依 rules.md + +
+ + + +--- + +# 若依资产库目录 + +
+ +``` +ai-dev-assets/ +├── prompts/若依/ +├── rules/若依/ +├── templates/若依/ +├── checklists/若依/ +└── examples/若依/ +``` + +
+ + diff --git a/slidev/pages/day2/m9-rules-check.md b/slidev/pages/day2/m9-rules-check.md new file mode 100644 index 0000000..1dcbc7d --- /dev/null +++ b/slidev/pages/day2/m9-rules-check.md @@ -0,0 +1,76 @@ +# 模块 9:若依坏规则示例 + +
+ +- 注意权限安全 +- 代码要规范 +- 日志要完整 +- 数据权限要合理 +- 生成代码要检查 + +方向没错,但不可执行。 +
+ + + +--- + +# 若依好规则示例 + +
+ +- 涉及用户、角色、菜单、部门、岗位的新增、修改、删除、导出接口时,必须检查后端权限控制和操作日志记录 +- 涉及列表查询时,必须确认是否需要数据权限过滤 +- 代码生成结果上线前,必须检查权限、日志、表单校验、异常处理和测试 +
+ + + +--- + +# 若依 rules 检查 Prompt + +
+ +``` +@workspace 请检查当前 .trae/rules.md 是否适合若依项目。 +重点检查:权限规则 · 操作日志规则 · 数据权限规则 · +前端按钮权限规则 · 代码生成规则 · 敏感配置规则 +``` + +
+ + + +--- + +# 若依版 rules.md 结构 + +
+ +0.基础原则 · 1.安全规则 · 2.权限规则 · 3.操作日志规则 · 4.编码规则 · 5.前端规则 · 6.测试规则 · 7.代码生成规则 · 8.不确定性处理规则 + +
+ + diff --git a/slidev/pages/preface.md b/slidev/pages/preface.md new file mode 100644 index 0000000..559e022 --- /dev/null +++ b/slidev/pages/preface.md @@ -0,0 +1,215 @@ +# AI 编程已进入主流阶段 + +
+
+
+
84%
+
受访者已使用或计划使用 AI 工具(Stack Overflow 2025)
+
+
+
51%
+
职业开发者每天使用 AI 工具
+
+
+
80%
+
新开发者第一周使用 Copilot(GitHub 2025)
+
+
+
+ +**过去** → 少数人尝鲜 AI 补全 + +**现在** → 大量开发者日常使用 AI 工具 + +**趋势** → AI 编程从"工具能力"变成"研发基础设施" + +
+
+ + + +--- + +# AI 编程工具三阶段演进 + +
+
+
📝
+
阶段 1:代码补全
+
帮你补几行代码
+
+
→
+
+
💬
+
阶段 2:对话助手
+
解释、生成、改写
+
+
→
+
+
🤖
+
阶段 3:研发 Agent
+
计划·修改·测试·验证·提交
+
+
+ + + +--- + +# AI 能效不是单点提速 + +
+
+ +### 不是只看 + +- 代码写得更快 + +### 更要看 + +- 理解更快 · 交接更快 +- 测试更快 · 文档更快 +- 风险发现更早 +- 知识传递成本更低 +
+
+
+
55.8%
+
使用 Copilot 完成编程任务速度提升(Microsoft Research)
+
+
+
75%
+
预计 2028 年企业工程师使用 AI(Gartner)
+
+
+
+ + + +--- + +# 积极拥抱,但不盲目乐观 + +
+
+ +**AI 会替代:** + +- 重复性编码 +- 低上下文任务 +- 模板化文档 +- 简单测试生成 +- 初步代码解释 +
+
+ +**AI 仍需要人负责:** + +- 业务判断 +- 架构取舍 +- 安全边界 +- 质量责任 +- 上线决策 +
+
+ + + +--- + +# 工程师角色正在变化 + +
+
+ +**过去:** + +- 主要靠自己写、查、改、测 +
+
+ +**现在:** + +- 会描述任务 +- 会提供上下文 +- 会拆解问题 +- 会验证 AI 输出 +- 会把 AI 结果工程化 +
+
+ + + +--- + +# AI 时代 + +
+
AI 编程不是单个工具采购问题,而是研发能效体系升级问题
+
AI 不只是提升个人编码速度,更重要的是降低组织的知识传递成本和项目理解成本
+
未来的差距,不一定是用不用 AI,而是能不能把 AI 嵌入标准研发流程
+
不是盲目追求 AI 替代人,而是让 AI 替代低价值重复劳动,让人聚焦业务判断
+
+ + + +--- + +# 为什么第一天先讲陌生代码库理解? + +
+ +企业研发最常见的成本: + +- 接手旧项目 · 理解陌生模块 +- 追踪调用链路 · 判断影响范围 +- 识别风险点 · 沉淀文档 + +
+
AI 提效能力
+
工程理解能力
+
风险判断能力
+
+
+ + diff --git a/slidev/slides.md b/slidev/slides.md new file mode 100644 index 0000000..fc88a45 --- /dev/null +++ b/slidev/slides.md @@ -0,0 +1,98 @@ +--- +theme: penguin +colorSchema: light +title: AI 编程时代的研发能效升级 +info: | + ## TRAE 企业内训课程 + 从工具使用到研发工作方式变化 +transition: slide-left +mdc: true +drawings: + persist: false +themeConfig: + twitter: '' + twitterUrl: '' +layout: intro +--- + +# AI 编程时代的研发能效升级 + +从工具使用到研发工作方式变化 + +
TRAE 企业内训系列课程 · 沉浸式 · 实战驱动 · 可交付
+ + + +--- +src: ./pages/preface.md +--- + +--- +src: ./pages/day1/m1-trae-positioning.md +--- + +--- +src: ./pages/day1/m2-ruoyi-objects.md +--- + +--- +src: ./pages/day1/m3-workspace-structure.md +--- + +--- +src: ./pages/day1/m4-call-chain.md +--- + +--- +src: ./pages/day1/m5-ai-reliability.md +--- + +--- +src: ./pages/day1/m6-code-report.md +--- + +--- +layout: new-section +--- + +# 第 2 天:TRAE 上下文工程与规则体系 + +--- +src: ./pages/day2/m1-context-engineering.md +--- + +--- +src: ./pages/day2/m2-four-references.md +--- + +--- +src: ./pages/day2/m3-hallucination.md +--- + +--- +src: ./pages/day2/m4-gitignore.md +--- + +--- +src: ./pages/day2/m5-security-rules.md +--- + +--- +src: ./pages/day2/m6-coding-rules.md +--- + +--- +src: ./pages/day2/m7-frontend-rules.md +--- + +--- +src: ./pages/day2/m8-asset-library.md +--- + +--- +src: ./pages/day2/m9-rules-check.md +--- + +--- +src: ./pages/day2/m10-summary.md +--- diff --git a/slidev/snippets/external.ts b/slidev/snippets/external.ts new file mode 100644 index 0000000..40c109b --- /dev/null +++ b/slidev/snippets/external.ts @@ -0,0 +1,12 @@ +/* eslint-disable no-console */ + +// #region snippet +// Inside ./snippets/external.ts +export function emptyArray(length: number) { + return Array.from({ length }) +} +// #endregion snippet + +export function sayHello() { + console.log('Hello from snippets/external.ts') +} diff --git a/slidev/style.css b/slidev/style.css new file mode 100644 index 0000000..ed339bf --- /dev/null +++ b/slidev/style.css @@ -0,0 +1,17 @@ +/* Penguin Light 主题企业风格微调 */ + +.slidev-layout { + font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', sans-serif; +} + +.slidev-layout h1 { + font-weight: 700 !important; +} + +.slidev-layout li { + margin-bottom: 0.4rem; +} + +.slidev-layout pre { + border-radius: 0.5rem; +} diff --git a/slidev/vercel.json b/slidev/vercel.json new file mode 100644 index 0000000..9276941 --- /dev/null +++ b/slidev/vercel.json @@ -0,0 +1,7 @@ +{ + "rewrites": [ + { "source": "/(.*)", "destination": "/index.html" } + ], + "buildCommand": "npm run build", + "outputDirectory": "dist" +} diff --git a/slidev/vite.config.js b/slidev/vite.config.js new file mode 100644 index 0000000..d88d659 --- /dev/null +++ b/slidev/vite.config.js @@ -0,0 +1,5 @@ +import svgLoader from 'vite-svg-loader' + +export default { + plugins: [svgLoader()], +} diff --git a/前言_.md b/前言_.md new file mode 100644 index 0000000..6dd06fe --- /dev/null +++ b/前言_.md @@ -0,0 +1,535 @@ +# 前言 + + +```Plain Text +AI 编程已经从“尝鲜工具”进入“研发基础设施”阶段。 +AI 不只是提高个人写代码速度,而是在重构研发组织的能效模型。 +今天学习 TRAE,不是为了替代工程师,而是让工程师掌握被 AI 放大的工作方式。 +``` + +--- + +# 第 0 部分:AI 编程行业趋势与能效变革破冰 + +# 一、开场定位 + +## 讲师开场话术 + +各位领导、各位同事,今天这门课表面上是 TRAE 工具培训,但我更希望大家把它理解成一次研发工作方式升级的起点。 + +过去我们讲研发效率,更多讲的是: + +```Plain Text +流程优化 +组件复用 +低代码平台 +DevOps 自动化 +测试自动化 +``` + +但从 2023 年之后,AI 编程工具开始进入研发现场,研发效率的提升方式发生了变化。 + +它不再只是“工具帮人少点几下”,而是开始进入: + +```Plain Text +需求理解 +代码阅读 +代码生成 +测试生成 +重构建议 +代码评审 +文档生成 +故障排查 +``` + +这些环节。 + +也就是说,AI 编程的影响,不只是让某个工程师写代码快一点,而是开始改变研发组织的能效结构。 + +--- + +# 二、行业趋势:AI 编程已经进入主流阶段 + +## 讲师讲法 + +第一点,我们先看行业趋势。 + +AI 编程已经不是少数极客在尝鲜,而是正在变成开发者的日常工具。 + +Stack Overflow 2025 开发者调查显示,**84% 的受访者已经在使用或计划在开发流程中使用 AI 工具**,其中 **51% 的职业开发者每天使用 AI 工具**。这说明 AI 编程已经从“可选项”变成很多研发团队的“默认工作方式”之一。\([Stack Overflow Insights](https://survey.stackoverflow.co/2025/ai)\) + +GitHub 2025 Octoverse 也显示,生成式 AI 已经成为开发中的标准能力之一:超过 **110 万个公开仓库使用 LLM SDK**,其中近 **69\.4 万个项目是在过去 12 个月创建的**;GitHub 还观察到,新加入 GitHub 的开发者中,接近 **80% 会在第一周使用 Copilot**。\([The GitHub Blog](https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/)\) + +## 屏幕展示 + +```Plain Text +AI 编程已经进入主流阶段 + +过去: +少数人尝鲜 AI 补全 + +现在: +大量开发者日常使用 AI 工具 + +趋势: +AI 编程从“工具能力”变成“研发基础设施” +``` + +## 讲师补充 + +这里我们不需要把 AI 神化。 + +AI 不是今天用上,明天整个研发效率就翻倍。 + +但它的普及速度很快,而且正在改变研发人员的基本工作方式。 + +以前一个工程师的能力更多体现在: + +```Plain Text +自己写代码 +自己查资料 +自己读项目 +自己定位问题 +``` + +现在逐渐变成: + +```Plain Text +会不会描述问题 +会不会给 AI 足够上下文 +会不会判断 AI 输出是否可信 +会不会把 AI 产出转化成可交付成果 +``` + +--- + +# 三、技术发展:从代码补全到 Agent 工作流 + +## 讲师讲法 + +第二点,AI 编程工具本身也在升级。 + +早期的 AI 编程主要是代码补全。 + +你写一半,它帮你补几行。 + +后来变成聊天式助手。 + +你可以问它: + +```Plain Text +这个函数是什么意思? +这个报错怎么解决? +帮我写一个测试用例。 +``` + +现在进入第三个阶段:**Agent 化**。 + +Agent 不是简单回答问题,而是可以围绕一个任务执行多步操作: + +```Plain Text +理解需求 +检索代码 +制定修改计划 +改代码 +运行检查 +解释变更 +辅助提交 +``` + +GitHub Copilot 当前已经强调“agent mode”,可以在编辑器中解释概念、补全代码、提出修改并验证文件;Gartner 对 AI code assistants 的定义也已经覆盖生成、分析、调试、测试、修复、重构、文档、依赖搜索、代码评审等研发环节。\(GitHub\) + +## 屏幕展示 + +```Plain Text +AI 编程工具演进 + +阶段 1:代码补全 +帮你补几行代码 + +阶段 2:对话助手 +帮你解释、生成、改写 + +阶段 3:研发 Agent +围绕任务完成多步研发动作 +``` + +## 讲师补充 + +所以今天我们学习 TRAE,不能只学“怎么让它写一段代码”。 + +更重要的是学: + +```Plain Text +怎么让 AI 读懂一个项目 +怎么让 AI 找到正确上下文 +怎么让 AI 追踪调用链路 +怎么判断 AI 的回答是否可信 +``` + +这才是企业研发里真正有价值的能力。 + +--- + +# 四、能效理念:AI 不是单点提效,而是组织能效重构 + +## 讲师讲法 + +第三点,我们讲“能效”。 + +过去讲研发效率,通常是看个人效率: + +```Plain Text +一个人一天写多少代码 +一个需求几天完成 +一个 bug 多久修复 +``` + +但 AI 进入研发之后,能效的核心不只是“写代码更快”,而是: + +```Plain Text +新人理解项目更快 +老项目维护成本下降 +重复性编码减少 +测试和文档生成成本降低 +跨模块知识获取更快 +代码评审和风险识别前置 +``` + +也就是说,AI 影响的是整个研发链条。 + +Microsoft Research 和 GitHub 曾做过一个受控实验,使用 Copilot 的开发者完成指定编程任务的速度比对照组快 **55\.8%**。这个数字不应该被简单理解成“所有研发工作都快 55%”,但它说明在特定编码任务中,AI 对效率提升是真实存在的。\([微软](https://www.microsoft.com/en-us/research/publication/the-impact-of-ai-on-developer-productivity-evidence-from-github-copilot/)\) + +Gartner 也预测,到 2028 年,**75% 的企业软件工程师将使用 AI code assistants**,而 2023 年初这一比例还不到 10%;同时 Gartner 特别提醒,企业不应只从“降本”角度看 AI 编程工具,还要看价值创造、开发者能力提升和研发体验改善。\([gartner\.com](https://www.gartner.com/en/newsroom/press-releases/2024-04-11-gartner-says-75-percent-of-enterprise-software-engineers-will-use-ai-code-assistants-by-2028)\) + +## 屏幕展示 + +```Plain Text +AI 能效不是单点提效 + +不是只看: +代码写得更快 + +更要看: +理解更快 +交接更快 +测试更快 +文档更快 +风险发现更早 +知识传递成本更低 +``` + +--- + +# 五、关于“AI 替代人”:点到为止,积极但不盲目 + +## 讲师讲法 + +当然,今天有董事和管理层在场,我们也需要正视一个问题:AI 会不会替代人? + +我的建议是不要回避,但也不要把它讲得过度悲观。 + +更准确的说法是: + +```Plain Text +AI 会替代一部分重复性、低上下文、低判断含量的研发工作。 +AI 会改变岗位结构和团队用人方式。 +但 AI 不会在短期内替代所有工程判断、业务理解和系统责任。 +``` + +目前行业里已经出现一些信号:企业在评估 AI 对招聘、团队规模和岗位结构的影响,一些公司也公开谈到 AI 工具带来的生产率提升和招聘节奏变化。比如近期关于 Uber 的报道中提到,公司内部使用 Claude Code 和 ChatGPT 带来约 25% 的生产率提升,但管理层也强调,这种效率提升和最终用户价值之间并不是简单线性关系。\(The Times of India\) + +同时,Stack Overflow 2025 调查也显示,虽然 AI 工具使用率很高,但开发者对 AI 输出准确性的信任并没有同步上升;面向领导者的解读中还提到,工具数量增加可能让工作流变复杂,而不是自动变简单。\(Stack Overflow Insights\) + +## 推荐措辞 + +这一段建议你在课堂上这样说: + +```Plain Text +我们不用把 AI 看成一个马上替代所有工程师的东西, +也不能把它看成一个可有可无的插件。 + +更现实的判断是: +会使用 AI 的工程师,会逐渐替代不会使用 AI 的工作方式; +会组织 AI 工作流的团队,会逐渐替代低效率的传统研发流程。 +``` + +这句话比较稳,既能让高管听到能效趋势,也不会让工程师产生强烈抵触。 + +--- + +# 六、为什么今天从“陌生代码库理解”开始讲? + +## 讲师讲法 + +既然 AI 编程有这么多方向,为什么第一天不是讲“让 AI 写代码”,而是讲“陌生代码库理解”? + +原因很简单。 + +企业研发里,真正消耗大量时间的,往往不是从零写一个 demo,而是: + +```Plain Text +接手旧项目 +理解陌生模块 +定位调用链路 +判断改动影响面 +识别风险点 +补测试 +写交接文档 +``` + +这些工作恰恰是 AI 最适合辅助,但也最需要人工判断的地方。 + +所以今天我们从“理解陌生代码库”开始,是因为它同时覆盖了三个能力: + +```Plain Text +AI 提效能力 +工程理解能力 +风险判断能力 +``` + +这也是高管和工程师都关心的交叉点。 + +对管理层来说,它关系到组织能效。 + +对工程师来说,它关系到个人能力升级。 + +对公司来说,它关系到研发质量和交付速度。 + +--- + +# 七、15 分钟开场完整结构 + +## 0 \- 2 分钟:开场破冰 + +```Plain Text +今天不是一场单纯的工具培训,而是一场研发工作方式升级课。 +我们要讨论的是:AI 进入研发后,工程师、团队和组织能效会发生什么变化。 +``` + +--- + +## 2 \- 5 分钟:行业趋势 + +```Plain Text +AI 编程已经进入主流阶段。 +Stack Overflow 2025 调查显示,84% 的受访者已经使用或计划使用 AI 工具,51% 的职业开发者每天使用。 +GitHub 2025 Octoverse 也显示,AI 已经成为开发活动中的标准能力之一。 +``` + +配套引用:\(Stack Overflow Insights\) + +--- + +## 5 \- 8 分钟:技术发展 + +```Plain Text +AI 编程工具正在从代码补全,发展到对话助手,再到 Agent 工作流。 +今天的工具已经不只是帮你补几行代码,而是可以帮助理解项目、制定修改计划、生成测试、辅助评审。 +``` + +配套引用:\(GitHub\) + +--- + +## 8 \- 12 分钟:能效理念 + +```Plain Text +AI 的价值不只是让个人写代码更快,而是降低整个研发链条中的理解成本、交接成本、测试成本和文档成本。 +但企业不能只从降本角度看 AI,而要看价值创造、质量提升和研发体验。 +``` + +配套引用:\(微软\) + +--- + +## 12 \- 15 分钟:替代与拥抱 + +```Plain Text +AI 会替代一部分重复性、低上下文、低判断含量的工作。 +但企业真正需要的,不是简单减少人,而是提升每个人和每个团队的产出质量。 + +今天我们学习 TRAE,就是为了让大家掌握 AI 时代新的研发基本功: +会提问、会给上下文、会追链路、会验证结果。 +``` + +--- + +# 八、PPT 页面建议:开场 6 页 + +## Slide 0:标题页 + +**标题:** +AI 编程时代的研发能效升级 + +**副标题:** +从工具使用到研发工作方式变化 + +**讲师备注:** +今天不是单纯学习 TRAE,而是以 TRAE 为入口,学习 AI 时代研发团队的新工作方式。 + +--- + +## Slide 1:AI 编程已经进入主流阶段 + +**页面内容:** + +```Plain Text +AI 编程不再是尝鲜工具 + +趋势: +- 开发者日常使用率快速上升 +- AI 从个人插件进入研发流程 +- 新人默认接触 AI 编程 +``` + +**讲师备注:** +Stack Overflow 2025 显示,84% 的受访者使用或计划使用 AI 工具,51% 的职业开发者每天使用;GitHub 也观察到新开发者快速采用 Copilot。\([Stack Overflow Insights](https://survey.stackoverflow.co/2025/ai)\) + +--- + +## Slide 2:AI 编程工具的三阶段演进 + +**页面内容:** + +```Plain Text +1. 代码补全 + 补几行代码 + +2. 对话助手 + 解释、生成、改写 + +3. 研发 Agent + 计划、修改、测试、验证、提交 +``` + +**讲师备注:** +今天的 AI 编程工具已经从“补代码”走向“协同完成研发任务”。GitHub Copilot 等工具已经强调 agent mode,Gartner 对 AI code assistants 的功能定义也覆盖调试、测试、重构、文档和代码评审等环节。\([GitHub](https://github.com/features/copilot)\) + +--- + +## Slide 3:AI 带来的不是单点提效,而是能效重构 + +**页面内容:** + +```Plain Text +过去关注: +一个人写代码有多快 + +现在更要关注: +理解项目有多快 +交接成本有多低 +测试文档能否自动生成 +风险能否更早暴露 +团队知识能否复用 +``` + +**讲师备注:** +不要把 AI 提效理解成单纯“多写代码”。真正的组织价值在于降低理解成本、沟通成本、质量成本和维护成本。 + +--- + +## Slide 4:积极拥抱,但不盲目乐观 + +**页面内容:** + +```Plain Text +AI 会替代: +重复性编码 +低上下文任务 +模板化文档 +简单测试生成 +初步代码解释 + +AI 仍需要人负责: +业务判断 +架构取舍 +安全边界 +质量责任 +上线决策 +``` + +**讲师备注:** +这一页要稳。不要制造恐慌,也不要说 AI 没影响。核心表达是:被替代的不是工程师这个人,而是低效、重复、缺乏判断的工作方式。 + +--- + +## Slide 5:工程师角色正在变化 + +**页面内容:** + +```Plain Text +过去: +主要靠自己写、查、改、测 + +现在: +会描述任务 +会提供上下文 +会拆解问题 +会验证 AI 输出 +会把 AI 结果工程化 +``` + +**讲师备注:** +这是从“编码执行者”向“AI 协同工程师”的变化。 + +--- + +## Slide 6:为什么第一天先讲陌生代码库理解? + +**页面内容:** + +```Plain Text +企业研发最常见的成本: + +接手旧项目 +理解陌生模块 +追踪调用链路 +判断影响范围 +识别风险点 +沉淀文档 +``` + +**讲师备注:** +这正是 TRAE 这类 AI IDE 最适合切入的地方,也是工程师最需要掌握的新基本功。 + +--- + +# 九、高管在场时的推荐表达 + + + +```Plain Text +AI 编程不是单个工具采购问题,而是研发能效体系升级问题。 +``` + +```Plain Text +AI 不只是提升个人编码速度,更重要的是降低组织的知识传递成本和项目理解成本。 +``` + +```Plain Text +未来的差距,不一定是用不用 AI,而是能不能把 AI 嵌入标准研发流程。 +``` + +```Plain Text +我们不是盲目追求 AI 替代人,而是让 AI 替代低价值重复劳动,让人聚焦业务判断、架构质量和交付责任。 +``` + +--- + +# 十、和后续课程的衔接话术 + +开场最后可以这样收: + +```Plain Text +所以今天我们不从“让 AI 写代码”开始,而是从“让 AI 帮我们理解代码”开始。 + +因为在企业真实研发里,理解陌生项目、识别调用链路、判断风险影响,是比写几行代码更底层的能力。 + +接下来,我们会进入今天的正式主题: + +如何用 TRAE 快速理解一个陌生代码库,并且判断 AI 给出的结论是否可信。 +``` + + + diff --git a/第 1 天:TRAE 基础工作流与陌生代码库理解.md b/第 1 天:TRAE 基础工作流与陌生代码库理解.md new file mode 100644 index 0000000..f41cde4 --- /dev/null +++ b/第 1 天:TRAE 基础工作流与陌生代码库理解.md @@ -0,0 +1,1368 @@ +# 第 1 天:TRAE 基础工作流与陌生代码库理解 + +## 第 0 部分:AI 编程趋势、能效理念、高管破冰 + +--- + +## Slide 0\-1:课程标题 + +### PPT 页面内容 + +```Plain Text +TRAE 基础工作流与陌生代码库理解 + +真实开源项目案例: +若依 RuoYi-Vue / RuoYi-Vue3 + +主线任务: +理解“登录 → 用户信息 → 菜单路由 → 按钮权限”的调用链路 +``` + +### 讲师逐字稿 + +各位领导、各位同事,大家好。 + +今天是 TRAE 系列课程第一天。今天我们不会从“让 AI 写代码”开始,而是从企业研发里更常见、更真实的场景开始:如何理解一个陌生代码库。 + +这次我们不用虚拟项目,而是使用真实开源项目若依。若依是国内研发团队非常熟悉的一类后台管理系统,包含用户管理、角色管理、菜单管理、权限控制、操作日志、代码生成等典型企业后台能力。 + +今天我们的主线任务是:使用 TRAE 理解若依中“用户登录后,系统如何加载用户信息、生成菜单路由,并控制页面按钮权限”的完整链路。 + +这个案例非常适合企业内训,因为它不是玩具项目,而是很多公司内部系统都会遇到的后台权限体系。 + +--- + +## Slide 0\-2:为什么选若依作为案例? + +### PPT 页面内容 + +```Plain Text +若依适合训练: + +陌生代码库理解 +前后端分离结构分析 +登录认证链路 +动态菜单与路由 +角色与权限 +按钮权限 +数据权限 +操作日志 +代码生成 +``` + +### 讲师逐字稿 + +我们为什么选若依? + +第一,若依足够真实。它不是 demo,而是一个完整后台管理系统。 + +第二,它足够典型。很多企业内部系统都有用户、角色、菜单、权限、日志、字典、代码生成这些模块。 + +第三,它非常适合讲 AI 辅助代码理解。因为若依既有前端,也有后端;既有页面,也有接口;既有权限,也有日志;既有业务模块,也有基础框架能力。 + +今天大家不是要记住若依所有代码,而是要学会一种方法:拿到一个陌生系统,如何让 TRAE 帮我们从结构、模块、链路和证据四个层面快速建立理解。 + +--- + +## Slide 0\-3:AI 编程进入企业研发主流程 + +### PPT 页面内容 + +```Plain Text +AI 编程不只是写代码 + +更重要的是: +读代码 +找入口 +追链路 +查风险 +写测试 +生成文档 +沉淀经验 +``` + +### 讲师逐字稿 + +AI 编程早期给大家的印象,可能是补全代码、生成函数、写几个工具方法。 + +但在企业研发中,真正耗时的往往不是写几行代码,而是理解历史代码、追踪业务链路、判断影响范围、确认权限边界、补充测试和沉淀文档。 + +AI 对研发的价值,不只是让某个人写得快一点,而是让团队更快理解系统、更快交接、更快定位风险。 + +所以今天的重点不是“AI 会不会写”,而是“AI 能不能帮我们更快读懂一个真实项目”。 + +--- + +## Slide 0\-4:AI 能效理念 + +### PPT 页面内容 + +```Plain Text +AI 能效不是单点提速 + +不是只看: +代码写得更快 + +更要看: +理解更快 +交接更快 +定位更快 +风险更早暴露 +团队知识沉淀更快 +``` + +### 讲师逐字稿 + +这里我们讲一个关键词:能效。 + +在企业里,研发能效不是单点速度,而是整个研发链条的效率。 + +如果新人接手若依这样的后台系统,以前可能要花很多时间搞清楚登录在哪里、权限从哪里来、菜单怎么生成、按钮怎么控制、后端接口如何校验。 + +如果 TRAE 能帮助我们快速定位这些文件和调用关系,它带来的价值就不是少写几行代码,而是降低理解成本、交接成本和维护成本。 + +这就是我们第一天从陌生代码库理解开始的原因。 + +--- + +## Slide 0\-5:AI 替代人的现实判断 + +### PPT 页面内容 + +```Plain Text +不用过度乐观 +也不用过度悲观 + +AI 会替代: +重复性、低上下文、低判断含量的工作方式 + +人必须负责: +业务规则 +权限边界 +安全责任 +架构取舍 +上线决策 +``` + +### 讲师逐字稿 + +今天有管理层,也有工程师,所以我们也可以坦诚谈一下 AI 替代人的问题。 + +AI 会替代一部分重复性、低上下文、低判断含量的工作方式。 + +但它不能替代所有工程判断。 + +比如若依里一个按钮是否应该对某个角色开放,这不是 AI 单独决定的。AI 可以帮我们找出权限字符在哪里配置、前端如何判断、后端如何校验,但业务上谁应该拥有这个权限,必须由人判断。 + +未来真正的差距,不是用不用 AI,而是能不能把 AI 放进标准研发流程,让它帮助我们找证据、提效率,而不是让它替我们承担责任。 + +--- + +## Slide 0\-6:第一天真正要学什么? + +### PPT 页面内容 + +```Plain Text +今天训练四个动作: + +看结构 +找入口 +追链路 +查依据 + +最终产出: +代码理解报告 +``` + +### 讲师逐字稿 + +今天不是学几个 Prompt。 + +今天训练四个动作。 + +第一,看结构。看若依前后端目录、模块分层、启动方式、技术栈。 + +第二,找入口。找登录入口、用户信息接口、菜单接口、权限判断入口。 + +第三,追链路。从登录开始,一路追到动态路由和按钮权限。 + +第四,查依据。AI 的每个关键结论,都要能回到文件、函数、接口或调用关系中验证。 + +今天最后的产出,是一份“若依权限与菜单模块代码理解报告”。 + +--- + +# 模块 1:TRAE 在真实研发流程中的定位 + +--- + +## Slide 1\-1:TRAE 的定位 + +### PPT 页面内容 + +```Plain Text +TRAE 是研发辅助工具 + +适合: +检索代码 +解释函数 +梳理结构 +生成链路初稿 +生成文档初稿 + +不能直接替代: +业务判断 +权限决策 +安全判断 +上线决策 +``` + +### 讲师逐字稿 + +我们先给 TRAE 定位。 + +TRAE 不是替代工程师的工具,而是研发辅助工具。 + +在若依项目里,TRAE 很适合帮我们找登录接口、找用户信息接口、找菜单加载逻辑、找权限判断指令、解释后端 Controller 和 Service 的职责。 + +但它不能替我们决定某个角色应该拥有什么权限,也不能替我们判断某个接口是否可以上线。 + +AI 可以帮我们找到代码事实,但不能替代业务和安全责任。 + +--- + +## Slide 1\-2:代码事实 vs 业务事实 + +### PPT 页面内容 + +```Plain Text +代码事实: +代码现在怎么写 + +业务事实: +业务应该怎么规定 + +TRAE 擅长发现代码事实 +人工必须判断业务事实 +``` + +### 讲师逐字稿 + +在若依案例里,这个区分非常重要。 + +比如 TRAE 可能发现某个按钮使用了权限字符 `system:user:edit`。 + +这是代码事实。 + +但哪些角色应该拥有 `system:user:edit`,这是业务事实。 + +再比如,后端某个接口加了权限注解,这是代码事实。但这个接口权限设计是否合理,是否符合公司安全要求,这是业务事实。 + +所以我们用 TRAE 时,要明确它帮我们发现的是“当前系统怎么写”,不是“业务上一定应该这样”。 + +--- + +## Slide 1\-3:适合 TRAE 的任务 + +### PPT 页面内容 + +```Plain Text +适合 TRAE 辅助: + +理解前后端目录 +查找登录入口 +查找菜单接口 +分析动态路由生成 +解释按钮权限 +梳理角色权限关系 +生成代码理解报告初稿 +``` + +### 讲师逐字稿 + +若依项目里,有很多任务适合 TRAE 辅助。 + +比如理解前后端目录结构,查找登录入口,查找获取用户信息和路由菜单的接口,分析前端动态路由生成逻辑,解释按钮权限如何生效,梳理角色、菜单、权限字符之间的关系。 + +这些信息主要都在代码库里,可以通过文件、函数、接口验证。 + +所以我们可以让 TRAE 先生成初稿,再人工校对。 + +--- + +## Slide 1\-4:必须人工判断的任务 + +### PPT 页面内容 + +```Plain Text +必须人工判断: + +角色权限是否合理 +数据权限范围是否正确 +接口是否应该开放 +敏感操作是否必须审计 +代码生成结果能否上线 +权限变更是否影响生产 +``` + +### 讲师逐字稿 + +有些任务不能直接交给 TRAE 决定。 + +比如某个角色是否应该拥有用户删除权限,某个部门的数据权限范围是否正确,某个接口是否应该开放,修改角色权限是否会影响生产用户。 + +这些涉及业务规则、安全边界和上线风险,必须人工判断。 + +TRAE 可以帮助我们列出当前权限链路和风险点,但不能直接给最终决策。 + +--- + +## Slide 1\-5:产出:TRAE 使用边界清单 + +### PPT 页面内容 + +```Plain Text +实操产出: + +TRAE 使用边界清单 + +三类任务: +1. 适合 TRAE 辅助 +2. 可生成初稿但必须人工复核 +3. 不建议直接交给 TRAE 决定 +``` + +### 讲师逐字稿 + +第一个实操是生成 TRAE 使用边界清单。 + +请大家围绕若依项目,列出哪些任务适合 TRAE 辅助,哪些可以让 TRAE 生成初稿但必须人工复核,哪些不建议直接交给 TRAE 决定。 + +比如“查找登录接口”适合 TRAE 辅助;“判断角色权限是否合理”可以生成初稿但必须人工复核;“判断能否上线”不建议交给 TRAE 决定。 + +--- + +# 模块 2:沙箱项目业务导览 + +## 若依模块导览 + +--- + +## Slide 2\-1:若依的核心业务对象 + +### PPT 页面内容 + +```Plain Text +若依核心对象: + +User 用户 +Role 角色 +Menu 菜单 +Permission 权限字符 +Dept 部门 +Post 岗位 +OperLog 操作日志 +Dict 字典 +GenTable 代码生成 +``` + +### 讲师逐字稿 + +理解若依,不能只看目录,要先看核心对象。 + +若依最核心的是用户、角色、菜单和权限。 + +用户属于部门,可以拥有岗位,可以绑定角色。角色拥有菜单权限和数据权限。菜单不仅控制左侧菜单和动态路由,也关联按钮权限字符。操作日志记录关键操作。代码生成模块帮助生成 CRUD 代码。 + +今天我们重点看用户、角色、菜单、权限这条主线。 + +--- + +## Slide 2\-2:若依模块总览 + +### PPT 页面内容 + +```Plain Text +核心模块: + +登录认证 +用户管理 +角色管理 +菜单管理 +部门管理 +岗位管理 +权限控制 +操作日志 +登录日志 +代码生成 +``` + +### 讲师逐字稿 + +若依常见模块包括登录认证、用户管理、角色管理、菜单管理、部门管理、岗位管理、权限控制、操作日志、登录日志、代码生成。 + +这些模块组合起来,构成一个典型企业后台系统。 + +今天不是要讲完所有模块,而是通过权限和菜单这条主线,学习如何理解陌生项目。 + +--- + +## Slide 2\-3:用户、角色、菜单、权限之间的关系 + +### PPT 页面内容 + +```Plain Text +用户 User + ↓ 绑定 +角色 Role + ↓ 授权 +菜单 Menu + ↓ 包含 +权限字符 Permission + ↓ 控制 +页面访问 / 按钮显示 / 接口访问 +``` + +### 讲师逐字稿 + +若依权限体系可以先用这张图理解。 + +用户绑定角色。角色被授予菜单。菜单可以是目录、菜单页面,也可以是按钮权限。按钮权限通常通过权限字符表示,比如用户新增、用户修改、用户删除。 + +前端根据这些权限字符控制按钮显示,后端接口也应基于权限注解或权限判断控制访问。 + +今天我们要追踪的,就是这条链路从后端到前端如何生效。 + +--- + +## Slide 2\-4:若依中的三类权限 + +### PPT 页面内容 + +```Plain Text +页面权限: +能不能看到某个菜单页面 + +按钮权限: +能不能看到新增、修改、删除按钮 + +数据权限: +能看到哪些部门或范围的数据 +``` + +### 讲师逐字稿 + +若依里我们可以把权限分成三类。 + +第一,页面权限。也就是用户能不能看到某个菜单页面。 + +第二,按钮权限。比如用户管理页面上的新增、修改、删除、导出按钮是否显示。 + +第三,数据权限。比如某个角色只能看本部门数据,还是可以看全部数据。 + +这三类权限不能混在一起。页面能看到,不代表按钮能操作。按钮隐藏,也不代表后端接口安全。数据能看到多少,又是另外一套规则。 + +--- + +## Slide 2\-5:若依业务导览 Prompt + +### PPT 页面内容 + +```Plain Text +@workspace 请从业务视角分析若依项目。 + +重点说明: +1. 系统主要解决什么问题 +2. 核心业务对象有哪些 +3. 用户、角色、菜单、权限如何协作 +4. 前端和后端分别负责什么 +5. 哪些结论需要人工验证 +``` + +### 讲师逐字稿 + +这一页是若依业务导览 Prompt。 + +注意我们不是让 TRAE 泛泛总结项目,而是指定业务视角。 + +我们让它说明系统解决什么问题,核心业务对象有哪些,用户、角色、菜单、权限如何协作,前端和后端分别负责什么。 + +同时必须列出需要人工验证的内容。 + +这能帮助我们快速建立若依的模块认知图。 + +--- + +## Slide 2\-6:产出:若依模块认知图 + +### PPT 页面内容 + +```Plain Text +产出内容: + +核心业务对象 +核心模块 +模块职责 +模块依赖关系 +权限链路 +风险点 +不确定点 +``` + +### 讲师逐字稿 + +这一部分的产出是若依模块认知图。 + +大家要整理出核心业务对象、核心模块、模块职责、模块依赖关系、权限链路、风险点和不确定点。 + +例如用户模块依赖部门、岗位和角色;角色模块关联菜单和数据权限;菜单模块既影响动态路由,也影响按钮权限;操作日志模块记录关键操作。 + +--- + +# 模块 3:使用 @workspace 理解全局结构 + +--- + +## Slide 3\-1:不要让 AI 泛泛总结项目 + +### PPT 页面内容 + +```Plain Text +不要问: +@workspace 帮我看看若依项目 + +要问: +从前端、后端、认证、路由、API、权限、日志、测试、构建分析项目 +并标注依据文件 +``` + +### 讲师逐字稿 + +使用 @workspace 时,最常见的错误是问“帮我看看这个项目”。 + +这样 AI 会给一段泛泛总结。 + +我们要让它从明确维度分析:前端结构、后端结构、认证流程、路由菜单、API 封装、权限控制、日志记录、测试结构、构建方式。 + +并且要求每个结论标注依据文件。 + +--- + +## Slide 3\-2:若依前后端结构怎么读? + +### PPT 页面内容 + +```Plain Text +前端重点: + +src/api +src/router +src/store +src/views +src/directive +src/permission.js / permission.ts +src/utils/request + +后端重点: + +ruoyi-admin +ruoyi-framework +ruoyi-system +ruoyi-common +Controller +Service +Mapper +``` + +### 讲师逐字稿 + +若依是前后端分离项目,所以读结构时要分前端和后端。 + +前端重点看 api、router、store、views、directive、permission 文件、request 封装。 + +后端重点看 ruoyi\-admin、ruoyi\-framework、ruoyi\-system、ruoyi\-common,以及 Controller、Service、Mapper 分层。 + +如果使用 RuoYi\-Vue3,前端目录和状态管理方式可能不同,但分析方法一样。 + +--- + +## Slide 3\-3:认证链路要看哪些文件? + +### PPT 页面内容 + +```Plain Text +认证链路重点: + +登录页面 +login API +token 存储 +request 拦截器 +getInfo 用户信息 +getRouters 动态路由 +权限 store +路由守卫 +``` + +### 讲师逐字稿 + +若依权限主线从登录开始。 + +我们要看登录页面在哪里,login API 怎么调用,token 存在哪里,request 拦截器如何带 token,请求用户信息的 getInfo 在哪里,请求菜单路由的 getRouters 在哪里,权限 store 如何保存角色和权限,路由守卫如何判断是否已加载菜单。 + +这条链路是今天最重要的主线。 + +--- + +## Slide 3\-4:动态菜单与路由怎么看? + +### PPT 页面内容 + +```Plain Text +动态菜单 / 路由重点: + +后端菜单表 +菜单类型:目录 / 菜单 / 按钮 +路由地址 +组件路径 +权限字符 +前端动态路由转换 +router.addRoute +``` + +### 讲师逐字稿 + +若依的菜单不是单纯前端写死的。 + +后台菜单管理里配置菜单,菜单可以是目录、页面菜单,也可以是按钮权限。 + +菜单包含路由地址、组件路径、权限字符等信息。 + +前端获取后端返回的菜单数据后,会转换成前端路由,再动态挂载。 + +所以分析动态菜单,既要看后端菜单接口,也要看前端路由转换逻辑。 + +--- + +## Slide 3\-5:全局结构分析 Prompt + +### PPT 页面内容 + +```Plain Text +@workspace 请分析若依项目全局结构。 + +维度: +1. 前端目录 +2. 后端目录 +3. 登录认证 +4. 动态路由 +5. API 封装 +6. 权限控制 +7. 操作日志 +8. 代码生成 +9. 测试与构建 +10. 不确定点 + +每个结论标注依据文件。 +``` + +### 讲师逐字稿 + +这是若依全局结构分析的标准 Prompt。 + +大家注意,维度非常明确。 + +我们不是让 AI 自己决定讲什么,而是让它从前端目录、后端目录、登录认证、动态路由、API 封装、权限控制、操作日志、代码生成、测试与构建这些维度分析。 + +每个结论都要标注依据文件。 + +--- + +## Slide 3\-6:产出:若依项目结构图 + +### PPT 页面内容 + +```Plain Text +项目结构图应包含: + +前端目录职责 +后端模块职责 +认证与权限相关文件 +菜单与路由相关文件 +API 封装相关文件 +操作日志相关文件 +不确定点 +``` + +### 讲师逐字稿 + +这一部分最终产出是若依项目结构图。 + +结构图不只是列目录,而是说明每个目录和权限主线有什么关系。 + +比如前端 views/system/user 是用户管理页面,api/system/user 是用户接口,store/modules/permission 或 permission 文件和动态路由有关,directive/permission 和按钮权限有关。 + +后端 sys 用户、角色、菜单 Controller、Service、Mapper 共同支撑权限管理。 + +--- + +# 模块 4:调用链路分析 + +--- + +## Slide 4\-1:第一天核心链路 + +### PPT 页面内容 + +```Plain Text +主线链路: + +用户登录 + ↓ +获取 token + ↓ +获取用户信息 + ↓ +获取菜单路由 + ↓ +生成动态路由 + ↓ +进入系统页面 + ↓ +根据权限字符控制按钮 +``` + +### 讲师逐字稿 + +下午我们进入第一天最重要的部分:调用链路分析。 + +若依案例的主线链路是:用户登录,获取 token,获取用户信息,获取菜单路由,生成动态路由,进入系统页面,根据权限字符控制按钮。 + +这条链路覆盖前端页面、API 调用、后端接口、用户角色、菜单权限、动态路由和按钮权限。 + +它非常适合训练陌生代码库理解。 + +--- + +## Slide 4\-2:调用链路 8 个检查点 + +### PPT 页面内容 + +```Plain Text +1. 页面入口 +2. UI 组件 +3. 事件函数 +4. API 调用 +5. 后端 Controller +6. Service / 权限逻辑 +7. 前端状态更新 +8. 路由 / 按钮生效 +``` + +### 讲师逐字稿 + +若依的调用链路也可以拆成 8 个检查点。 + +页面入口,比如登录页或用户管理页。 + +UI 组件,比如登录表单或新增按钮。 + +事件函数,比如 handleLogin。 + +API 调用,比如 login、getInfo、getRouters。 + +后端 Controller,比如登录接口、菜单路由接口。 + +Service 或权限逻辑,比如用户信息、角色权限、菜单树。 + +前端状态更新,比如保存 token、roles、permissions、routes。 + +最后是路由和按钮权限生效。 + +--- + +## Slide 4\-3:登录认证链路示例 + +### PPT 页面内容 + +```Plain Text +用户输入账号密码 + ↓ +Login 页面提交 + ↓ +调用 login API + ↓ +后端认证用户 + ↓ +返回 token + ↓ +前端保存 token + ↓ +request 拦截器携带 token +``` + +### 讲师逐字稿 + +登录认证链路是第一条主线。 + +用户在登录页面输入账号密码,提交表单,前端调用 login API。 + +后端校验用户身份,成功后返回 token。 + +前端保存 token,后续请求通过 request 拦截器携带 token。 + +这里要重点看三个问题:token 存在哪里,request 拦截器在哪里带 token,token 失效后如何处理。 + +--- + +## Slide 4\-4:用户信息与权限加载链路 + +### PPT 页面内容 + +```Plain Text +登录成功 + ↓ +调用 getInfo + ↓ +后端返回 user、roles、permissions + ↓ +前端保存用户信息 + ↓ +前端保存角色和权限字符 + ↓ +后续用于按钮权限判断 +``` + +### 讲师逐字稿 + +登录成功之后,系统通常会请求用户信息。 + +getInfo 这类接口会返回当前用户信息、角色列表、权限字符等。 + +前端保存这些数据后,后续按钮权限就会依赖这些权限字符进行判断。 + +这里要注意:前端拿到权限字符,只能控制页面展示,不能作为后端安全边界。 + +真正的接口安全仍然需要后端权限校验。 + +--- + +## Slide 4\-5:动态路由加载链路 + +### PPT 页面内容 + +```Plain Text +调用 getRouters + ↓ +后端返回菜单树 + ↓ +前端转换为路由对象 + ↓ +动态挂载路由 + ↓ +渲染侧边栏菜单 + ↓ +用户进入页面 +``` + +### 讲师逐字稿 + +若依的菜单和路由通常是动态加载的。 + +前端调用 getRouters,后端根据当前用户角色和菜单权限返回菜单树。 + +前端把菜单树转换成路由对象,再动态挂载到 router 中。 + +侧边栏根据这些路由渲染菜单。 + +这条链路很适合训练“从后端数据到前端页面”的完整理解。 + +--- + +## Slide 4\-6:按钮权限链路 + +### PPT 页面内容 + +```Plain Text +菜单中配置权限字符 + ↓ +角色拥有该权限字符 + ↓ +getInfo 返回 permissions + ↓ +前端权限指令 / 方法判断 + ↓ +控制按钮显示或隐藏 +``` + +### 讲师逐字稿 + +按钮权限的核心是权限字符。 + +在菜单管理中,按钮通常会配置类似“用户新增”“用户修改”“用户删除”这样的权限字符。 + +角色被授权后,用户登录时会拿到对应权限字符。 + +前端通过权限指令或权限判断方法,决定按钮是否显示。 + +但是再次强调:按钮隐藏只代表前端交互控制,不代表接口安全。 + +--- + +## Slide 4\-7:后端接口权限链路 + +### PPT 页面内容 + +```Plain Text +前端按钮权限 + ↓ +只能控制 UI 展示 + +后端接口权限 + ↓ +必须控制真实访问 + +需要确认: +Controller 是否有权限注解 +Service 是否校验数据权限 +``` + +### 讲师逐字稿 + +这一页是权限分析的关键。 + +前端按钮权限只能控制 UI 展示。 + +如果用户绕过前端,直接请求后端接口,那么真正决定是否安全的是后端接口权限。 + +所以在若依里,我们要检查 Controller 是否有权限注解,Service 是否处理数据权限。 + +如果 AI 只看到前端按钮权限,就说“权限安全”,这是错误结论。 + +报告里必须区分前端权限和后端权限。 + +--- + +## Slide 4\-8:操作日志链路 + +### PPT 页面内容 + +```Plain Text +管理员修改用户 + ↓ +调用后端接口 + ↓ +Controller 执行业务 + ↓ +日志注解 / AOP 记录操作 + ↓ +写入操作日志 + ↓ +操作日志页面查询 +``` + +### 讲师逐字稿 + +若依还有一个很适合训练的链路:操作日志。 + +比如管理员修改用户信息,前端调用后端接口,后端 Controller 执行业务逻辑。 + +如果接口上配置了日志注解或 AOP,系统会记录操作人、操作模块、操作类型、请求参数、结果等信息。 + +然后管理员可以在操作日志页面查看。 + +这条链路适合讲审计、日志脱敏和敏感操作追踪。 + +--- + +## Slide 4\-9:调用链路分析 Prompt + +### PPT 页面内容 + +```Plain Text +@workspace 请分析若依中“登录后菜单与按钮权限生效”的完整调用链路。 + +从用户登录开始,依次说明: +登录页面、登录 API、token、getInfo、getRouters、动态路由、侧边栏菜单、按钮权限、后端接口权限、不确定点。 + +每一步标注文件路径和函数名。 +``` + +### 讲师逐字稿 + +这是若依调用链路分析 Prompt。 + +注意,这个 Prompt 不是让 AI 总结权限系统,而是让它从用户登录开始,按顺序追踪链路。 + +必须包含登录页面、登录 API、token、getInfo、getRouters、动态路由、侧边栏菜单、按钮权限、后端接口权限和不确定点。 + +每一步都要标注文件路径和函数名。 + +--- + +## Slide 4\-10:产出:若依权限调用链路图 + +### PPT 页面内容 + +```Plain Text +产出内容: + +登录认证链路图 +用户信息加载链路图 +动态菜单路由链路图 +按钮权限链路图 +后端接口权限链路图 +操作日志链路图 +``` + +### 讲师逐字稿 + +这一部分的产出是若依权限调用链路图。 + +不是只画一条线,而是可以拆成几条子链路:登录认证、用户信息加载、动态菜单路由、按钮权限、后端接口权限、操作日志。 + +每条链路都要有依据文件和不确定点。 + +--- + +# 模块 5:AI 输出可信度判断 + +--- + +## Slide 5\-1:若依案例中的常见 AI 幻觉 + +### PPT 页面内容 + +```Plain Text +常见不可信结论: + +若依权限系统很完善 +所有接口都有后端校验 +按钮权限已经保证安全 +操作日志一定完整 +代码生成结果可以直接上线 +``` + +### 讲师逐字稿 + +在若依这种项目里,AI 很容易给出看起来正确但不严谨的结论。 + +比如“若依权限系统很完善”“所有接口都有后端校验”“按钮权限已经保证安全”“操作日志一定完整”“代码生成结果可以直接上线”。 + +这些话不能直接信。 + +我们要问:依据文件在哪里?哪个 Controller?哪个注解?哪个权限字符?哪个 AOP?哪个 Service?如果没有依据,就不能写成确定结论。 + +--- + +## Slide 5\-2:可信输出四件套 + +### PPT 页面内容 + +```Plain Text +可信结论必须包含: + +文件路径 +函数 / 类 / 注解 +调用关系 +不确定点 +``` + +### 讲师逐字稿 + +若依案例里,一条可信结论必须包含四件套。 + +文件路径,比如前端哪个 api 文件、后端哪个 Controller。 + +函数、类或注解,比如 getInfo、getRouters、权限指令、Controller 方法、权限注解。 + +调用关系,比如登录后先拿 token,再 getInfo,再 getRouters,再生成动态路由。 + +不确定点,比如无法确认某个接口是否有数据权限校验。 + +没有这些内容,就不能轻易采纳。 + +--- + +## Slide 5\-3:不可信回答示例 + +### PPT 页面内容 + +```Plain Text +若依已经实现了完整权限控制, +用户登录后会自动加载菜单和按钮权限, +后端接口也都有权限校验, +整体风险较低。 +``` + +### 讲师逐字稿 + +这段话看起来很顺,但不合格。 + +为什么? + +没有文件路径。没有函数名。没有说明菜单从哪个接口加载。没有说明按钮权限由哪个指令判断。没有说明后端接口权限在哪里校验。没有列出不确定点。 + +所以这种回答不能进入报告。 + +--- + +## Slide 5\-4:可信回答示例 + +### PPT 页面内容 + +```Plain Text +前端登录成功后调用 getInfo 获取用户信息和权限字符。 +随后调用 getRouters 获取动态路由菜单。 +前端根据返回路由生成侧边栏菜单。 + +可以确认前端存在菜单和按钮权限控制。 +但仍需检查后端 Controller 权限注解,才能确认接口级权限。 +``` + +### 讲师逐字稿 + +这个回答更可信。 + +它说明了前端登录后的两个关键动作:getInfo 和 getRouters。 + +它说明了前端根据返回路由生成菜单。 + +同时它没有夸大结论。它说可以确认前端存在菜单和按钮权限控制,但仍需检查后端 Controller 权限注解,才能确认接口级权限。 + +这就是专业表达。 + +--- + +## Slide 5\-5:产出:TRAE 输出校验清单 + +### PPT 页面内容 + +```Plain Text +检查项: + +是否有文件路径 +是否有函数 / 类 / 注解 +是否说明调用关系 +是否区分前端权限和后端权限 +是否列出不确定点 +是否给出验证方式 +``` + +### 讲师逐字稿 + +这一部分产出是 TRAE 输出校验清单。 + +以后 AI 给出若依权限分析时,我们就按这些问题检查。 + +是否有文件路径?是否有函数、类或注解?是否说明调用关系?是否区分前端权限和后端权限?是否列出不确定点?是否给出验证方式? + +没有通过这些检查的内容,不写进报告。 + +--- + +# 模块 6:统一实战:代码理解报告 + +--- + +## Slide 6\-1:报告主题 + +### PPT 页面内容 + +```Plain Text +代码理解报告: + +若依权限与菜单模块 + +核心问题: +用户登录后,菜单、路由和按钮权限如何生效? +``` + +### 讲师逐字稿 + +今天最终实战,是生成一份代码理解报告。 + +报告主题是:若依权限与菜单模块。 + +核心问题是:用户登录后,菜单、路由和按钮权限如何生效? + +这份报告不是 AI 聊天记录,而是可交接、可复核的工程文档。 + +--- + +## Slide 6\-2:报告结构 + +### PPT 页面内容 + +```Plain Text +报告包含: + +模块职责 +核心对象 +目录与文件结构 +核心调用链路 +权限风险 +操作日志风险 +改造建议 +不确定结论 +``` + +### 讲师逐字稿 + +报告至少包含八部分。 + +模块职责、核心对象、目录与文件结构、核心调用链路、权限风险、操作日志风险、改造建议、不确定结论。 + +每个关键结论都要有依据文件或函数。 + +如果没有依据,就写到不确定点里。 + +--- + +## Slide 6\-3:模块职责写法 + +### PPT 页面内容 + +```Plain Text +不要写: +权限模块用于权限控制。 + +要写: +权限与菜单模块负责用户登录后加载角色、权限字符和动态路由,并根据角色菜单关系控制页面访问和按钮显示。 +``` + +### 讲师逐字稿 + +模块职责不能写空话。 + +“权限模块用于权限控制”没有信息量。 + +合格写法要具体说明:权限与菜单模块负责用户登录后加载角色、权限字符和动态路由,并根据角色菜单关系控制页面访问和按钮显示。 + +同时要说明前端权限和后端权限的边界。 + +--- + +## Slide 6\-4:核心对象写法 + +### PPT 页面内容 + +```Plain Text +核心对象: + +User 用户 +Role 角色 +Menu 菜单 +Permission 权限字符 +Dept 部门 +OperLog 操作日志 +``` + +### 讲师逐字稿 + +若依权限模块的核心对象是用户、角色、菜单、权限字符、部门和操作日志。 + +用户绑定角色,角色拥有菜单权限,菜单中包含权限字符,部门影响数据权限,操作日志记录敏感操作。 + +这些对象共同构成权限体系。 + +--- + +## Slide 6\-5:风险点写法 + +### PPT 页面内容 + +```Plain Text +不要写: +权限有风险。 + +要写: +风险:按钮权限只控制前端展示。 + +触发条件: +后端接口缺少权限校验。 + +影响: +用户可能绕过前端直接调用接口。 + +验证: +检查 Controller 是否有权限注解。 +``` + +### 讲师逐字稿 + +风险点一定要具体。 + +“权限有风险”不是合格风险点。 + +合格风险点要包含风险描述、触发条件、影响范围和验证方式。 + +比如按钮权限只控制前端展示。触发条件是后端接口缺少权限校验。影响是用户可能绕过前端直接调用接口。验证方式是检查 Controller 是否有权限注解。 + +--- + +## Slide 6\-6:改造建议写法 + +### PPT 页面内容 + +```Plain Text +建议: +确保用户、角色、菜单等敏感接口均有后端权限校验 + +原因: +前端按钮隐藏不能作为安全边界 + +验收: +无权限用户直接请求接口时返回 403 +``` + +### 讲师逐字稿 + +改造建议也要具体。 + +比如建议确保用户、角色、菜单等敏感接口均有后端权限校验。 + +原因是前端按钮隐藏不能作为安全边界。 + +验收标准是无权限用户直接请求接口时返回 403。 + +这样的建议才可以进入工程评审。 + +--- + +## Slide 6\-7:第 1 天最终交付物 + +### PPT 页面内容 + +```Plain Text +第 1 天交付物: + +01_TRAE 使用边界清单 +02_若依模块认知图 +03_若依项目结构图 +04_权限调用链路图 +05_TRAE 输出校验清单 +06_若依权限与菜单模块代码理解报告 +``` + +### 讲师逐字稿 + +第 1 天最终交付六个产物。 + +第一,TRAE 使用边界清单。 + +第二,若依模块认知图。 + +第三,若依项目结构图。 + +第四,权限调用链路图。 + +第五,TRAE 输出校验清单。 + +第六,若依权限与菜单模块代码理解报告。 + +这些产物构成第一天的完整成果。 + +--- + +# + diff --git a/第 2 天:TRAE 上下文工程与规则体系.md b/第 2 天:TRAE 上下文工程与规则体系.md new file mode 100644 index 0000000..3f0f5cf --- /dev/null +++ b/第 2 天:TRAE 上下文工程与规则体系.md @@ -0,0 +1,1063 @@ +# 第 2 天:TRAE 上下文工程与规则体系 + +# 第 0 部分:从个人提效到团队 AI 工程治理 + +--- + +## Slide 0\-1:第 1 天到第 2 天 + +### PPT 页面内容 + +```Plain Text +第 1 天: +让 TRAE 看懂若依代码 + +第 2 天: +让 TRAE 按团队规则改若依代码 + +核心变化: +从代码理解 +到研发治理 +``` + +### 讲师逐字稿 + +昨天我们使用若依作为真实开源项目,学习了如何让 TRAE 理解陌生代码库。 + +今天我们进入第二阶段:上下文工程与规则体系。 + +如果说第一天是“让 AI 看懂若依”,今天就是“让 AI 按团队规则分析、修改和检查若依”。 + +当团队多人都使用 AI 时,必须有统一上下文、统一 rules、统一验收标准,否则 AI 会带来不一致甚至风险。 + +--- + +## Slide 0\-2:若依场景下的团队规则问题 + +### PPT 页面内容 + +```Plain Text +若依类后台项目常见风险: + +绕过权限 +页面直接调接口 +按钮权限当安全边界 +接口缺少权限注解 +操作日志缺失 +代码生成后直接上线 +敏感信息进入日志 +``` + +### 讲师逐字稿 + +若依这类后台系统,最容易出现的问题不是页面不好看,而是权限、日志、接口边界和生成代码质量。 + +比如 AI 可能在页面里直接新增接口调用,可能只做前端按钮隐藏,可能没有检查后端权限注解,可能新增敏感操作但没有操作日志,可能用代码生成器生成 CRUD 后直接上线。 + +所以今天我们要把这些隐性开发要求写成中文规则,让 TRAE 在后续协作中长期遵守。 + +--- + +## Slide 0\-3:今天三个关键词 + +### PPT 页面内容 + +```Plain Text +上下文 +规则 +资产化 + +上下文决定 AI 看什么 +规则决定 AI 怎么做 +资产化决定团队怎么复用 +``` + +### 讲师逐字稿 + +今天仍然是三个关键词。 + +上下文决定 AI 看什么。比如看整个若依项目,还是只看用户管理模块,还是只看某个 Controller。 + +规则决定 AI 怎么做。比如不能绕过权限、不能遗漏操作日志、不能把前端权限当安全边界。 + +资产化决定团队怎么复用。好的 Prompt、rules、报告模板,都应该进入团队资产库。 + +--- + +# 模块 1:上下文工程原则 + +--- + +## Slide 1\-1:若依任务为什么要讲清楚? + +### PPT 页面内容 + +```Plain Text +模糊任务: + +帮我优化用户管理模块 + +问题: +目标不清 +范围不清 +约束不清 +输出不清 +验收不清 +``` + +### 讲师逐字稿 + +在若依项目里,如果你直接问“帮我优化用户管理模块”,AI 很难给出可靠结果。 + +优化什么?权限?接口?页面?表单?数据权限?操作日志?代码结构?测试? + +范围不清,AI 就会自由发挥。 + +所以若依这种后台系统,更需要上下文工程。 + +--- + +## Slide 1\-2:好任务五要素 + +### PPT 页面内容 + +```Plain Text +好任务 = +目标 + 范围 + 约束 + 输出格式 + 验收标准 +``` + +### 讲师逐字稿 + +一个合格的 AI 编程任务,必须包含五要素。 + +目标:到底要分析或修改什么。 + +范围:只看哪些模块,不看哪些模块。 + +约束:不能做什么,必须遵守什么。 + +输出格式:报告、表格、代码 diff、测试用例。 + +验收标准:什么结果算合格。 + +这五项越清楚,AI 输出越稳定。 + +--- + +## Slide 1\-3:若依坏 Prompt 示例 + +### PPT 页面内容 + +```Plain Text +@workspace 帮我检查若依权限有没有问题。 +``` + +### 讲师逐字稿 + +这个 Prompt 看起来合理,但其实太大。 + +“权限”包含页面权限、按钮权限、接口权限、数据权限。 + +“有没有问题”也太泛。是安全风险、实现缺陷、配置问题,还是调用链路不清? + +没有范围,没有约束,没有输出格式,也没有验收标准。 + +--- + +## Slide 1\-4:若依好 Prompt 示例 + +### PPT 页面内容 + +```Plain Text +@workspace 请分析若依“用户管理页面按钮权限”的调用链路。 + +范围: +只分析用户管理页面的新增、修改、删除按钮权限。 + +约束: +不修改代码;结论标注文件和函数;区分前端权限和后端接口权限。 + +输出: +表格。 + +验收: +覆盖按钮、权限字符、前端判断、后端接口、权限注解、不确定点。 +``` + +### 讲师逐字稿 + +这个 Prompt 就清楚很多。 + +目标是用户管理页面按钮权限,不是整个权限系统。 + +范围限定新增、修改、删除按钮。 + +约束要求不修改代码,结论标注文件和函数,区分前端权限和后端权限。 + +验收标准要求覆盖按钮、权限字符、前端判断、后端接口、权限注解和不确定点。 + +这就是合格任务。 + +--- + +## Slide 1\-5:上下文组织清单 + +### PPT 页面内容 + +```Plain Text +若依任务上下文清单: + +目标 +范围 +输入文件 +约束 +输出格式 +验收标准 +不确定点 +``` + +### 讲师逐字稿 + +以后大家在若依项目里使用 TRAE,可以先填这张清单。 + +比如分析角色权限保存链路,需要提供角色页面、角色 API、后端角色 Controller、Service、菜单关系表、操作日志相关代码。 + +同时要约束 AI:不要改代码,不要猜,不要把按钮权限当安全边界。 + +--- + +# 模块 2:@workspace、\#File、\#Code、\#Web 使用 + +--- + +## Slide 2\-1:四类上下文 + +### PPT 页面内容 + +```Plain Text +@workspace:找路 +#File:看文件 +#Code:抠细节 +#Web:查外部依据 +``` + +### 讲师逐字稿 + +若依项目比较大,所以更要正确选择上下文。 + +@workspace 用来找入口,比如找 getInfo、getRouters、按钮权限指令。 + +\#File 用来分析相关文件,比如用户管理页面和用户 Controller。 + +\#Code 用来分析某个方法,比如 handleLogin 或某个权限判断函数。 + +\#Web 用来查框架文档或最佳实践,但不能替代项目代码依据。 + +--- + +## Slide 2\-2:@workspace 找路示例 + +### PPT 页面内容 + +```Plain Text +@workspace 请找出若依中与“用户登录后菜单路由生成”相关的前端和后端文件。 + +要求: +标注文件路径 +标注函数或类名 +区分事实和推测 +列出不确定点 +``` + +### 讲师逐字稿 + +这个 Prompt 适合任务早期。 + +我们不知道具体文件在哪里,就让 @workspace 先找入口。 + +它应该帮我们找出前端登录、权限 store、路由守卫、getRouters API,以及后端菜单路由接口相关文件。 + +但所有结论都必须标注依据。 + +--- + +## Slide 2\-3:\#File 聚焦示例 + +### PPT 页面内容 + +```Plain Text +#File 请分析这些文件中登录、用户信息、菜单路由的调用关系。 + +重点: +谁调用 login +谁调用 getInfo +谁调用 getRouters +权限信息保存在哪里 +路由在哪里动态生成 +``` + +### 讲师逐字稿 + +当我们找到相关文件后,就用 \#File 聚焦。 + +这时目标不是全局找,而是分析这些文件之间的调用关系。 + +比如谁调用 login,谁调用 getInfo,谁调用 getRouters,权限信息保存在哪里,路由在哪里动态生成。 + +--- + +## Slide 2\-4:\#Code 抠细节示例 + +### PPT 页面内容 + +```Plain Text +#Code 请分析 handleLogin 函数。 + +重点: +参数来源 +调用哪个 API +token 如何保存 +失败如何处理 +loading 是否恢复 +登录成功后跳转哪里 +``` + +### 讲师逐字稿 + +如果我们只分析登录函数,就用 \#Code。 + +重点看参数来源、API 调用、token 保存、失败处理、loading 恢复和登录成功后的跳转。 + +这类函数级分析非常适合发现细节风险。 + +--- + +## Slide 2\-5:\#Web 使用边界 + +### PPT 页面内容 + +```Plain Text +#Web 可查: +Spring Security 权限实践 +Vue Router 动态路由 +前端按钮权限最佳实践 + +但: +若依当前实现必须回到代码验证 +``` + +### 讲师逐字稿 + +\#Web 可以查外部资料,比如 Spring Security 权限实践、Vue Router 动态路由、按钮权限最佳实践。 + +但若依当前实现如何,必须回到代码里验证。 + +外部资料只能提供参考,不能替代项目事实。 + +--- + +# 模块 3:幻觉死循环切断方法 + +--- + +## Slide 3\-1:若依场景中的幻觉死循环 + +### PPT 页面内容 + +```Plain Text +常见表现: + +AI 说所有接口都有权限校验 +但不给 Controller 依据 + +AI 说操作日志完整 +但不给注解或 AOP 依据 + +AI 说按钮权限安全 +但只看到前端代码 +``` + +### 讲师逐字稿 + +在若依项目里,AI 很容易因为它“知道若依是权限系统”,就过度自信。 + +比如它说所有接口都有权限校验,但不给 Controller 依据。 + +它说操作日志完整,但不给注解或 AOP 依据。 + +它说按钮权限安全,但只看到了前端按钮隐藏。 + +这就是需要切断的幻觉。 + +--- + +## Slide 3\-2:幻觉控制顺序 + +### PPT 页面内容 + +```Plain Text +先找证据 +再判断原因 +最后给方案 +``` + +### 讲师逐字稿 + +遇到这种情况,不要继续让 AI 给结论。 + +先让它找证据:文件、类、方法、注解、调用关系。 + +然后再判断问题。 + +最后才给方案。 + +--- + +## Slide 3\-3:若依证据收集 Prompt + +### PPT 页面内容 + +```Plain Text +请先不要修改代码。 + +请围绕“用户管理删除按钮权限”收集证据: + +1. 前端按钮在哪个页面 +2. 使用了哪个权限字符 +3. 前端如何判断按钮显示 +4. 后端删除接口在哪里 +5. Controller 是否有权限注解 +6. 是否记录操作日志 +7. 无法确认的内容 +``` + +### 讲师逐字稿 + +这是若依场景下的证据收集 Prompt。 + +它没有直接问“有没有风险”,而是先要求 AI 找证据。 + +前端按钮在哪里,权限字符是什么,前端怎么判断,后端删除接口在哪里,Controller 是否有权限注解,是否记录操作日志,哪些无法确认。 + +这些证据收集完,才能判断风险。 + +--- + +## Slide 3\-4:原因判断 Prompt + +### PPT 页面内容 + +```Plain Text +请基于证据判断风险: + +每个风险必须对应文件、函数或注解 +区分已确认事实和推测 +无法确认的内容写入不确定点 +不要直接下安全结论 +``` + +### 讲师逐字稿 + +第二步是原因判断。 + +比如发现前端按钮有权限字符,但后端删除接口没有找到权限注解。 + +这时可以说“存在接口级权限待确认风险”,但不能直接说“系统不安全”。 + +如果没有看到后端文件,也要写无法确认,而不是猜测。 + +--- + +## Slide 3\-5:方案生成 Prompt + +### PPT 页面内容 + +```Plain Text +请基于已确认风险给出方案: + +修改文件 +修改方法 +新增或调整权限注解 +是否需要操作日志 +影响范围 +验证方式 +测试建议 +``` + +### 讲师逐字稿 + +第三步才给方案。 + +如果确认证据显示后端接口缺少权限注解,才建议补权限注解。 + +如果敏感操作缺少日志,才建议补操作日志。 + +每个方案都要说明文件、方法、影响范围、验证方式和测试建议。 + +--- + +# 模块 4:\.gitignore 与 IDE 忽略配置 + +--- + +## Slide 4\-1:若依项目哪些文件不能提交? + +### PPT 页面内容 + +```Plain Text +不应提交: + +.env +application-dev.yml 中真实密码 +数据库账号 +Redis 密码 +target/ +node_modules/ +dist/ +日志文件 +IDE 本地配置 +``` + +### 讲师逐字稿 + +若依项目里,忽略配置同样重要。 + +后端可能有 application\-dev\.yml、本地数据库账号、Redis 密码。前端有 node\_modules、dist。后端有 target。还有日志文件和 IDE 配置。 + +这些都不应该进入仓库,更不应该进入 AI 上下文。 + +--- + +## Slide 4\-2:若依忽略配置检查 Prompt + +### PPT 页面内容 + +```Plain Text +@workspace 请检查若依项目的 .gitignore 是否完整。 + +重点检查: +后端 target +前端 node_modules / dist +日志文件 +本地配置 +数据库密码 +Redis 密码 +IDE 配置 +``` + +### 讲师逐字稿 + +可以让 TRAE 检查若依项目的 \.gitignore。 + +重点看后端 target、前端 node\_modules 和 dist、日志文件、本地配置、数据库密码、Redis 密码、IDE 配置。 + +同样,不要让 AI 直接改,先给审查报告。 + +--- + +# 模块 5:\.trae/rules\.md 中文安全规则 + +--- + +## Slide 5\-1:若依安全规则重点 + +### PPT 页面内容 + +```Plain Text +若依安全规则重点: + +账号密码 +Token +接口权限注解 +菜单与按钮权限 +数据权限 +操作日志 +敏感配置 +日志脱敏 +``` + +### 讲师逐字稿 + +若依安全规则和一般前端项目不完全一样。 + +它必须重点关注账号密码、token、接口权限注解、菜单与按钮权限、数据权限、操作日志、敏感配置、日志脱敏。 + +尤其是权限与日志,是后台管理系统的核心。 + +--- + +## Slide 5\-2:中文安全规则示例 + +### PPT 页面内容 + +```Plain Text +规则示例: + +前端按钮权限只能作为交互控制,不能作为安全边界。 + +涉及用户、角色、菜单、部门、岗位等敏感接口时,必须检查后端 Controller 是否存在权限控制。 + +涉及新增、修改、删除、导出等操作时,必须检查是否记录操作日志。 +``` + +### 讲师逐字稿 + +这些规则可以直接写进 \.trae/rules\.md。 + +第一,前端按钮权限只能作为交互控制,不能作为安全边界。 + +第二,涉及用户、角色、菜单、部门、岗位等敏感接口时,必须检查后端 Controller 是否存在权限控制。 + +第三,涉及新增、修改、删除、导出等操作时,必须检查是否记录操作日志。 + +这些规则非常适合若依。 + +--- + +## Slide 5\-3:敏感配置规则 + +### PPT 页面内容 + +```Plain Text +规则示例: + +禁止在源码中硬编码数据库密码、Redis 密码、JWT 密钥、第三方密钥。 + +不得提交真实 application-dev.yml、.env、本地配置文件。 + +示例配置必须使用占位符。 +``` + +### 讲师逐字稿 + +若依项目通常有后端配置文件,所以敏感配置规则也很重要。 + +禁止在源码中硬编码数据库密码、Redis 密码、JWT 密钥、第三方密钥。 + +不得提交真实 application\-dev\.yml、\.env、本地配置文件。 + +示例配置必须使用占位符。 + +--- + +# 模块 6:中文编码与测试规则 + +--- + +## Slide 6\-1:若依编码规则重点 + +### PPT 页面内容 + +```Plain Text +若依编码规则重点: + +前端 api 分层 +后端 Controller / Service / Mapper 分层 +权限注解 +操作日志注解 +数据权限 +字典使用 +代码生成规范 +``` + +### 讲师逐字稿 + +若依的编码规则要结合它的项目结构。 + +前端接口应放在 api 目录,不应该页面里直接写请求。 + +后端要遵守 Controller、Service、Mapper 分层。 + +敏感接口要关注权限注解和操作日志注解。 + +列表查询要关注数据权限。 + +固定枚举值尽量使用字典。 + +代码生成结果不能直接上线,要人工检查权限、日志、校验和测试。 + +--- + +## Slide 6\-2:若依测试规则重点 + +### PPT 页面内容 + +```Plain Text +测试规则重点: + +登录成功 / 失败 +无权限访问接口 +按钮权限显示 +角色授权变化 +数据权限范围 +操作日志记录 +代码生成 CRUD +``` + +### 讲师逐字稿 + +若依测试规则应该围绕权限和后台管理流程。 + +登录要测成功和失败。 + +无权限访问接口要返回拒绝。 + +按钮权限显示要和权限字符匹配。 + +角色授权变化后,菜单和按钮权限应变化。 + +数据权限要验证不同角色看到的数据范围。 + +敏感操作要验证操作日志记录。 + +代码生成 CRUD 要验证增删改查、权限和日志。 + +--- + +# 模块 7:中文前端专项规则 + +--- + +## Slide 7\-1:若依前端规则重点 + +### PPT 页面内容 + +```Plain Text +前端规则重点: + +api 目录调用 +权限指令 +动态路由 +列表 loading +表单校验 +删除二次确认 +导出权限 +字典显示 +``` + +### 讲师逐字稿 + +若依前端规则应覆盖这些点。 + +接口调用要放 api 目录。 + +按钮权限要使用项目已有权限指令或权限方法。 + +动态路由不能随意绕过。 + +列表页必须有 loading、空状态、错误处理。 + +表单必须有校验。 + +删除必须二次确认。 + +导出按钮要有权限控制。 + +字典字段要使用统一字典显示。 + +--- + +## Slide 7\-2:用户管理页面规则示例 + +### PPT 页面内容 + +```Plain Text +用户管理页面规则: + +新增、修改、删除、导出按钮必须使用权限控制 +删除必须二次确认 +提交失败后恢复 loading +修改用户后刷新列表 +敏感字段不得明文展示或输出日志 +``` + +### 讲师逐字稿 + +以用户管理页面为例。 + +新增、修改、删除、导出按钮必须使用权限控制。 + +删除必须二次确认。 + +提交失败后 loading 必须恢复。 + +修改用户后列表必须刷新。 + +密码、手机号、邮箱等敏感字段不得随意明文展示或输出日志。 + +--- + +# 模块 8:技能与规则资产化 + +--- + +## Slide 8\-1:若依资产库建议 + +### PPT 页面内容 + +```Plain Text +建议沉淀: + +若依结构分析 Prompt +登录权限链路 Prompt +菜单路由分析 Prompt +按钮权限检查 Prompt +操作日志检查 Prompt +代码生成 Review 清单 +若依 rules.md +``` + +### 讲师逐字稿 + +若依案例非常适合沉淀资产。 + +比如若依结构分析 Prompt、登录权限链路 Prompt、菜单路由分析 Prompt、按钮权限检查 Prompt、操作日志检查 Prompt、代码生成 Review 清单、若依 rules\.md。 + +这些资产以后可以直接用于公司内部类似后台管理系统。 + +--- + +## Slide 8\-2:若依资产库目录 + +### PPT 页面内容 + +```Plain Text +ai-dev-assets/ +├── prompts/若依/ +├── rules/若依/ +├── templates/若依/ +├── checklists/若依/ +└── examples/若依/ +``` + +### 讲师逐字稿 + +建议企业资产库里单独有一个若依目录。 + +prompts 存若依相关 Prompt。 + +rules 存若依 rules\.md。 + +templates 存若依代码理解报告、权限链路报告模板。 + +checklists 存权限检查、日志检查、代码生成检查清单。 + +examples 存优秀案例和反面案例。 + +--- + +# 模块 9:规则可执行性检查 + +--- + +## Slide 9\-1:若依坏规则示例 + +### PPT 页面内容 + +```Plain Text +坏规则: + +注意权限安全 +代码要规范 +日志要完整 +数据权限要合理 +生成代码要检查 +``` + +### 讲师逐字稿 + +这些话方向没错,但不可执行。 + +“注意权限安全”太泛。 + +“日志要完整”没有说明哪些操作必须记录。 + +“数据权限要合理”没有判断标准。 + +“生成代码要检查”没有检查项。 + +所以要改成明确规则。 + +--- + +## Slide 9\-2:若依好规则示例 + +### PPT 页面内容 + +```Plain Text +好规则: + +涉及用户、角色、菜单、部门、岗位的新增、修改、删除、导出接口时,必须检查后端权限控制和操作日志记录。 + +涉及列表查询时,必须确认是否需要数据权限过滤。 + +代码生成结果上线前,必须检查权限、日志、表单校验、异常处理和测试。 +``` + +### 讲师逐字稿 + +这就是更好的规则。 + +它有触发场景:用户、角色、菜单、部门、岗位相关接口。 + +它有必须动作:检查后端权限控制和操作日志。 + +它能被检查:看 Controller、注解、Service 和日志配置。 + +这类规则才适合写进 \.trae/rules\.md。 + +--- + +## Slide 9\-3:若依 rules 检查 Prompt + +### PPT 页面内容 + +```Plain Text +@workspace 请检查当前 .trae/rules.md 是否适合若依项目。 + +重点检查: +权限规则 +操作日志规则 +数据权限规则 +前端按钮权限规则 +代码生成规则 +敏感配置规则 +``` + +### 讲师逐字稿 + +这是让 TRAE 检查若依 rules 的 Prompt。 + +重点检查权限规则、操作日志规则、数据权限规则、前端按钮权限规则、代码生成规则和敏感配置规则。 + +要求 AI 先给审查报告,不要直接改文件。 + +--- + +# 综合实战:团队 \.trae/rules\.md v0\.1 + +--- + +## Slide 10\-1:若依版 rules\.md 结构 + +### PPT 页面内容 + +```Plain Text +若依版 rules.md: + +0. 基础原则 +1. 安全规则 +2. 权限规则 +3. 操作日志规则 +4. 编码规则 +5. 前端规则 +6. 测试规则 +7. 代码生成规则 +8. 不确定性处理规则 +``` + +### 讲师逐字稿 + +今天最终产出是若依版 \.trae/rules\.md v0\.1。 + +它比通用 rules 多了几个若依特色部分:权限规则、操作日志规则、代码生成规则。 + +这份 rules 后续可以作为团队后台管理系统 AI 协作规范的基础。 + +--- + +## Slide 10\-2:若依版 rules 核心条款 + +### PPT 页面内容 + +```Plain Text +核心条款: + +前端按钮权限不是安全边界 +敏感接口必须检查后端权限 +敏感操作必须检查操作日志 +列表查询必须考虑数据权限 +代码生成结果不得直接上线 +不确定内容必须标注 +``` + +### 讲师逐字稿 + +若依版 rules 的核心条款可以浓缩成六句。 + +前端按钮权限不是安全边界。 + +敏感接口必须检查后端权限。 + +敏感操作必须检查操作日志。 + +列表查询必须考虑数据权限。 + +代码生成结果不得直接上线。 + +不确定内容必须标注。 + +只要这六条落实,AI 在若依项目里的使用风险会明显降低。 + +--- + +## Slide 10\-3:第 2 天交付物 + +### PPT 页面内容 + +```Plain Text +第 2 天交付物: + +01_上下文组织清单 +02_上下文引用模板 +03_幻觉控制 Prompt +04_gitignore 忽略配置样例 +05_若依中文安全规则 +06_若依编码测试规则 +07_若依前端规则 +08_若依 AI 资产库目录 +09_规则验收清单 +10_若依版 rules.md v0.1 +``` + +### 讲师逐字稿 + +第 2 天最终交付十个产物。 + +它们不是零散作业,而是一套若依项目 AI 协作规范资产。 + +以后团队在若依或类似后台系统中使用 TRAE,就可以复用这些清单、Prompt、规则和模板。 + +--- + +## Slide 10\-4:两天课程总结 + +### PPT 页面内容 + +```Plain Text +第 1 天: +用 TRAE 看懂若依 + +第 2 天: +让 TRAE 按规则参与若依研发 + +最终能力: +读得懂 +问得准 +查得实 +改得稳 +可复用 +``` + +### 讲师逐字稿 + +两天课程到这里形成闭环。 + +第一天,我们学习如何用 TRAE 看懂若依代码:看结构、找入口、追链路、查依据。 + +第二天,我们学习如何让 TRAE 按团队规则参与若依研发:组织上下文、控制幻觉、编写 rules、沉淀资产。 + +最终目标是五个字:读得懂,问得准,查得实,改得稳,可复用。 + +这就是 AI 编程在企业研发里的真正价值。 +