团队作业3
团队作业3
CodePilot —— AI驱动的开发者实战成长平台
这个作业属于哪个课程 | 课程 |
---|---|
这个作业要求在哪里 | 要求 |
这个作业的目标 | 需求改进+系统设计 |
项目简介
CodePilot是一款面向开发者的智能学习平台,核心功能包括AI个性化学习路线推荐、实战代码实时评阅和开发者社区。通过动态路径规划与实时反馈,帮助开发者从“会写Demo”进阶为“能写工程代码”,降低技术学习门槛,推动技术资源公平化。
面向用户分析
- 项目目标用户:
1.初级开发者
刚接触编程,缺乏系统学习路径,易陷入“学什么、怎么学”的迷茫。
需要手把手指导,快速掌握基础工程能力(如代码规范、调试技巧)。
2.中级开发者(核心用户)
已掌握基础语法,但缺乏真实项目经验,难以从“Demo级代码”过渡到“工程级代码”。
需要针对性的技术栈进阶建议(如从Spring Boot到微服务架构)。
3.非计算机专业转行者
时间有限,需高效掌握就业市场热门技能(如全栈开发、云原生)。
对行业趋势敏感,依赖平台推荐避免学习过时技术。
4.高校学生
学校课程与工业界需求脱节,需补充实战经验(如Git协作、单元测试)。
希望与同水平开发者交流,解决自学中的疑难问题。 - 用户需求:
1.动态学习路径推荐:
(1)根据用户当前技能标签,结合行业趋势,生成动态学习计划;
(2)支持手动调整路径节点;
(3)阶段性成果验证。
2.实时AI代码评阅:
(1)支持多文件代码提交,自动识别技术栈。
(2)AI反馈维度:功能实现(是否满足需求、边界条件覆盖);代码规范(命名、注释、设计模式应用);性能优化(SQL查询效率、内存泄漏风险);部署建议(依赖冲突检测、容器化配置提示)。
(3)流式响应:逐行高亮问题代码,提供修改建议
3.低门槛实战环境:
(1)浏览器内嵌开发环境,预置主流框架模板;
(2)一键运行/调试,自动分配临时沙箱环境(Docker容器),无需本地安装。。
功能性需求
- AI个性化路线推荐
用户画像:基于技能水平、兴趣标签(如前端/后端)及行业趋势数据生成画像。
动态路径生成:推荐学习路线(如“React入门→全栈开发→架构设计”),支持手动调整。
可视化展示:以甘特图形式呈现学习阶段与里程碑。 - AI实战代码评阅
多文件提交:支持真实项目结构(如Spring Boot工程),贴合企业开发场景。
实时反馈:流式返回评分(功能完整性50%、代码规范30%、性能20%),延迟<2秒。
错误高亮:定位代码问题并提供优化建议(如“建议使用缓存减少数据库查询”)。 - 开发者社区
同好推荐:匹配学习目标相似的用户,形成技术小组。
UGC内容:支持教程、经验帖发布与评论互动,优质内容整合为开源资源。 - 用户管理
技能评估:通过初始测试题确定用户水平(初级/中级/高级)。
学习记录:跟踪进度,动态调整推荐内容。
技术需求
前端技术
- 核心框架与工具:React + TypeScript
强类型支持,提升代码可维护性,适用于复杂交互场景(如动态学习路径甘特图、实时代码反馈)。
后端技术
- 核心框架:Spring Boot+ MyBatis
- 数据库设计:MySQL
存储用户技能标签、学习进度、兴趣领域。
记录用户提交的多文件代码及AI评阅结果。
AI服务集成
- 基础层:GPT-4 API(通用代码理解) + CodeLlama(代码生成专项优化)
- 优化策略:Fine-tuning 模型以适配工程代码规范(如 Google Java Style)
安全需求
- 数据安全
敏感数据加密
传输层:HTTPS + HSTS 强制加密
存储层:AES-256 加密用户代码历史,独立密钥管理服务(KMS) - 攻击防护
代码注入防御
前端:Monaco Editor 禁用危险 API(如 eval 的代码提示)
后端:静态代码分析拦截危险模式(正则表达式匹配 system 调用)
预期用户数量
Beta阶段(3-6个月):500-800名开发者。
后期目标:通过社区裂变与开源生态整合,实现用户量翻倍。
真实性、可用性 以及价值所在
- 真实性:直击开发者学习痛点,解决传统学习平台问题
- 可用性:低门槛 + 高实用性,贴合开发者习惯
- 价值所在:加速开发者成长
- 情怀所在:让技术学习更公平,整合开源学习资源
Issue管理
- 码云链接:
- Issue截图:
时间安排
原有安排
周次 | 任务 |
---|---|
第6周 | 1.团队组队、团队博客 2.团队介绍、成员展示、角色分配、选题确定 3.制定团队计划安排,团队贡献分的规定 |
第7周 | 1.需求规格说明书 2.原型设计,队员估计任务难度并学习必要的技术 3.编码规范完成、平台环境搭建完成、初步架构搭建 |
第8周 | 1.需求改进,向目标用户展示并收集反馈 2.系统设计,完成WBS(工作分解结构),成员估计任务时间 |
第9、10周 | 1. 团队项目Alpha任务分配计划 2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 |
第11周 | 1.用户反馈+测试计划改进 2.根据用户反馈改进系统 3. 团队Alpha阶段个人总结 4. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 |
第12周 | 1. 团队项目Alpha博客:事后分析 |
改进安排
周次 | 任务 |
---|---|
第6周 | 1.团队组队、团队博客 2.团队介绍、成员展示、角色分配、选题确定 3.制定团队计划安排,团队贡献分的规定 |
第7周 | 1.需求规格说明书 2.原型设计,队员估计任务难度并学习必要的技术 3.编码规范完成、平台环境搭建完成、初步架构搭建 |
第8周 | 1.需求改进,向目标用户展示并收集反馈 2.系统设计,完成WBS(工作分解结构),成员估计任务时间 |
第9、10周 | 1. 团队项目Alpha任务分配计划 2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 |
第11周 | 1.用户反馈+测试计划改进 2.根据用户反馈改进系统 3. 团队Alpha阶段个人总结 4. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 |
第12周 | 1. 团队项目Alpha博客:事后分析 2.下一阶段规划 |
团队分工
任务 | 负责成员 |
---|---|
前端开发 | 何松,洪徐博 |
后端开发 | 崔嘉豪,徐云哲,康经腾,彭鑫 |
用户故事(User Story)
场景:中级开发者突破技术瓶颈
李明是一名工作2年的Java后端开发者,能熟练使用Spring Boot编写基础CRUD接口,但在参与公司微服务改造项目时,面对分布式事务、服务熔断等工程化需求感到力不从心。
- 动态路径推荐
- 登录CodePilot后,系统通过技能评估测试将其标记为"中级-Java后端",并推荐"微服务架构专项提升"路径:
Spring Cloud基础 → 分布式事务实践 → 服务网格进阶
- 李明调整路径优先级,将"分布式事务实践"前置,系统自动重新规划配套资源(教程、实战案例)。
- 登录CodePilot后,系统通过技能评估测试将其标记为"中级-Java后端",并推荐"微服务架构专项提升"路径:
- 实战代码评阅
- 在完成"Seata分布式事务"实验项目后,提交包含
OrderService.java
和InventoryService.java
的多文件工程代码。 - AI在8秒内返回反馈:
✅ 功能完整性:45/50(未处理库存不足时的补偿事务)
❌ 代码规范:25/30(@GlobalTransactional
注解未添加Javadoc说明)
⚠️ 性能提示:检测到selectForUpdate
未使用索引,建议添加idx_product_id
- 在完成"Seata分布式事务"实验项目后,提交包含
- 开发者社区互动
- 在"微服务架构"技术小组中发现《分布式事务调试技巧》精华帖,通过评论区与作者讨论
Seata TC Server
部署问题。 - 将优化后的代码提交至社区开源项目库,获得"贡献者"徽章。
- 在"微服务架构"技术小组中发现《分布式事务调试技巧》精华帖,通过评论区与作者讨论
价值体现:
- 动态路径解决"学什么"的决策焦虑
- 多维度代码评审加速工程思维培养
- 社区协同打破技术孤岛
功能四象限分析
用户感知价值高 | 用户感知价值低 | |
---|---|---|
开发难度高 | 杀手功能: AI实时代码评阅(需集成GPT-4+CodeLlama) | 外围需求: 社区勋章系统(需设计成就体系) |
开发难度低 | 必要需求: 浏览器内嵌开发环境(基于Monaco Editor) | 辅助功能: 学习路径甘特图导出(第三方图表库实现) |
WBS与进度调整
关键变更:
- 第7周增加"社区交互原型设计"任务(原仅包含基础社区功能)
- 第8周拆分"AI服务集成"为两个子任务:
- 代码评审核心模块开发(优先级P0)
- 学习路径推荐算法调优(优先级P1)
- 第9-10周敏捷冲刺新增:
- 每日代码评审准确率监控(需搭建测试用例库)
- 社区UGC内容审核系统(基础版)ßß
其他改进点
-
补充非功能需求:
- 性能指标:代码评审服务需支持500并发(原未明确)
- 可维护性:采用OpenAPI 3.0规范设计接口文档
-
增强安全性描述:
- 沙箱环境增加网络隔离策略(禁止外网访问宿主机器)
- 代码存储加密增加定期密钥轮换机制
-
用户画像细化:
- 增加"技术焦虑指数"维度(通过用户行为日志计算学习中断频率)
- 区分"主动探索型"与"任务驱动型"学习模式
系统架构设计
分层架构图
+-------------------+ +-------------------+
| 前端层 | | 移动端适配层 |
| (React + TS) |<--->| (Responsive Web) |
+-------------------+ +-------------------+
↓ HTTP/WebSocket
+--------------------------------------------+
| 应用服务层 |
| (Spring Boot) |
| - 用户管理模块 |
| - 学习路径调度引擎 |
| - 代码评阅任务分发 |
| - 社区交互逻辑 |
+--------------------------------------------+
↓ REST API
+--------------------------------------------+
| AI服务层 |
| (Python微服务) |
| - GPT-4通用分析模块 |
| - CodeLlama专项优化模块 |
| - 代码规范检查器(基于Fine-tuning模型) |
+--------------------------------------------+
↓ gRPC
+--------------------------------------------+
| 基础设施层 |
| - MySQL集群(主从复制) |
| - Redis缓存(学习路径元数据) |
| - Docker Swarm沙箱集群 |
| - KMS密钥管理服务 |
+--------------------------------------------+
核心组件说明
- 前端层
- 动态路径甘特图:基于D3.js实现可视化交互,支持拖拽调整节点
- 嵌入式IDE:集成Monaco Editor,预置Spring Boot/React项目模板
- 实时反馈面板:WebSocket推送AI评阅结果,支持代码行级高亮
- 应用服务层
- 异步任务队列:使用RabbitMQ处理高并发代码评阅请求(保障<2s延迟)
- 学习路径引擎:基于用户画像的DAG(有向无环图)调度算法
- 安全网关:JWT鉴权 + 请求限流(1000请求/秒)
- AI服务层
- 模型分级调用:
- 轻量级规则检查(如命名规范)直接本地执行
- 复杂分析(分布式事务检测)调用GPT-4 API
- 结果缓存机制:相同代码Hash值复用历史分析结果
- 模型分级调用:
- 基础设施层
- 沙箱环境:
- 每个代码会话分配独立Docker容器
- 网络策略:禁止容器间通信,仅允许访问内网AI服务
- 灾难恢复:数据库每日快照 + 跨AZ部署
- 沙箱环境:
分析设计方法
架构决策依据
- 前后端分离:
- 优势:前端可独立迭代IDE交互组件,后端专注业务逻辑
- 验证:通过Postman模拟500并发API请求,响应时间<800ms
- AI服务微服务化:
- 问题:初期单体架构导致GPU资源争用
- 解决方案:按功能拆分为代码规范/性能分析/架构建议3个微服务
- 缓存策略:
- 一级缓存(Redis):存储热点学习路径数据,TTL=1小时
- 二级缓存(本地Caffeine):AI结果缓存,TTL=10分钟
质量属性应对
质量属性 | 设计策略 |
---|---|
可扩展性 | 数据库水平分片(按user_id哈希) |
安全性 | 动态密钥轮换(KMS每日生成新密钥) |
容错性 | 沙箱环境超时熔断(5秒无响应自动释放容器) |
待解决问题
- AI服务降级方案:当GPT-4 API不可用时,如何自动切换至本地CodeLlama模型?
- 大规模代码提交:超过10个文件的工程代码如何优化静态分析性能?
- 社区实时协同:多人同时编辑同一代码片段时的冲突解决策略