guoyu/log/1-AI指南.md
2025-12-12 11:42:50 +08:00

5.3 KiB
Raw Blame History

AI工作指南

项目结构

1. 后端 + 管理后台

  • 路径: Study-Vue-redis/
  • 技术栈: Spring Boot + MyBatis + Vue.js
  • 说明: 包含后端API服务和管理后台前端

2. APP项目

  • 路径: fronted_uniapp/
  • 技术栈: uni-app (Vue.js)
  • 说明: 移动端应用可打包为Android/iOS

3. 数据库

  • 导入脚本: log/数据库/dump-study-202512070856.sql
  • 数据库名: study
  • 默认账号: root / root

4. 开发环境

  • 本地开发: Windows环境运行正常
  • 部署环境: Linux服务器存在环境差异问题
  • 注意: 部署前需要测试环境兼容性

工作原则

原则1主动获取信息

优先使用工具获取信息,减少询问

应该做的:

  • 使用grep_search查找代码
  • 使用read_file读取配置文件
  • 使用run_command检查端口占用、进程状态
  • 查询数据库获取数据状态(配置文件中有账号密码)
  • 查看日志文件分析问题

不应该做的:

  • 直接询问"端口是多少"(应该用命令查询)
  • 询问"数据库密码是什么"(应该读取配置文件)
  • 询问"这个文件在哪里"应该用find_by_name搜索

例外情况:

  • 报错信息(需要用户提供控制台输出)
  • 运行结果(需要用户反馈测试结果)
  • 业务需求(需要用户明确需求细节)

原则2确认需求再执行

信息不完整时,先确认再行动

检查清单:

  • 用户需求是否明确?有无歧义?
  • 是否需要补充信息才能执行?
  • 能否通过工具自行获取缺失信息?
  • 执行前是否理解了预期结果?

示例:

  • 用户说"修复这个bug" → 先确认具体是哪个bug复现步骤是什么
  • 用户说"部署到服务器" → 先确认服务器地址、环境、部署方式
  • 用户说"优化性能" → 先确认性能瓶颈在哪里,优化目标是什么

原则3简洁文档

只在需要时写文档,内容精简实用

文档要求:

  • 用户明确要求时才写文档
  • 用户会指定文档路径
  • 只写必要内容,不要冗余
  • 重点突出,步骤清晰
  • 使用Markdown格式

避免:

  • 自动生成大量README
  • 过度详细的注释
  • 重复的说明文档
  • 长篇大论的总结

例外情况:

  • SQL脚本需要记录修改
  • 部署步骤(需要明确指引)
  • 配置文件(需要说明参数)

原则4理解功能逻辑

充分理解现有功能后再修改

功能理解流程:

  1. 使用grep_searchcode_search查找相关代码
  2. 阅读核心逻辑,理解业务流程
  3. 用简洁语言总结功能逻辑
  4. 提供实际应用场景示例
  5. 确认理解正确后再进行修改

示例:

  • 用户说"优化学习记录功能"
    • → 先查找StudyLearningRecord相关代码
    • → 理解当前如何记录学习进度
    • → 总结每次上报时更新learning_record和learning_detail
    • → 场景学生观看视频时每10秒上报一次进度
    • → 确认理解无误后,再讨论优化方案

常见操作

编译后端

cd Study-Vue-redis
mvn clean package -DskipTests

启动后端

java -jar ry-study-admin/target/ry-study-admin.jar

查询数据库

mysql -u root -proot study -e "你的SQL语句"

查看端口占用

netstat -ano | findstr :端口号

停止Java进程

taskkill /F /IM java.exe

工作流程

1. 接收需求

  • 阅读用户请求
  • 识别关键信息
  • 判断是否需要补充

2. 信息收集

  • 优先使用工具获取
  • 必要时向用户确认
  • 确保信息完整

3. 分析问题

  • 定位问题根源
  • 查看相关代码
  • 理解业务逻辑

4. 实施修改

  • 最小化修改范围
  • 保持代码风格一致
  • 添加必要注释

5. 验证结果

  • 编译测试
  • 提供验证步骤
  • 记录修改内容

经验总结

BUG修复经验

多视频时长问题2025-12-12

问题: 多个视频课件共用一个总时长字段 方案: 动态更新courseware.duration每个课件独立存储 教训: 数据设计要考虑一对多关系

防快进检测2025-12-12

问题: 用户拖动到末尾就能完成 方案: 添加累计观看时长检测(>=80% 教训: 前端数据可被篡改,后端必须验证

观看时长共用2025-12-12

问题: Mapper XML缺少coursewareId过滤 方案: 添加WHERE条件 教训: SQL查询必须明确过滤条件

异常数据清理2025-12-12

问题: duration<=0的脏数据影响统计 方案: 清理异常数据,代码中过滤 教训: 数据验证要在代码和数据库两层进行


注意事项

  1. 修改前先备份 - 重要文件修改前先备份
  2. 测试后再部署 - 本地测试通过再部署到服务器
  3. 保持代码风格 - 遵循项目现有代码规范
  4. 避免过度设计 - 简单问题简单解决
  5. 记录关键修改 - 重要修改需要记录在log目录

遇到问题时

  1. 先查看日志文件
  2. 使用grep搜索相关代码
  3. 查询数据库验证数据
  4. 尝试用命令诊断
  5. 最后才询问用户

最后更新: 2025-12-12