团队作业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容器),无需本地安装。。

功能性需求

  1. AI个性化路线推荐
    用户画像:基于技能水平、兴趣标签(如前端/后端)及行业趋势数据生成画像。
    动态路径生成:推荐学习路线(如“React入门→全栈开发→架构设计”),支持手动调整。
    可视化展示:以甘特图形式呈现学习阶段与里程碑。
  2. AI实战代码评阅
    多文件提交:支持真实项目结构(如Spring Boot工程),贴合企业开发场景。
    实时反馈:流式返回评分(功能完整性50%、代码规范30%、性能20%),延迟<2秒。
    错误高亮:定位代码问题并提供优化建议(如“建议使用缓存减少数据库查询”)。
  3. 开发者社区
    同好推荐:匹配学习目标相似的用户,形成技术小组。
    UGC内容:支持教程、经验帖发布与评论互动,优质内容整合为开源资源。
  4. 用户管理
    技能评估:通过初始测试题确定用户水平(初级/中级/高级)。
    学习记录:跟踪进度,动态调整推荐内容。

技术需求

前端技术

  • 核心框架与工具: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接口,但在参与公司微服务改造项目时,面对分布式事务、服务熔断等工程化需求感到力不从心。

  1. 动态路径推荐
    • 登录CodePilot后,系统通过技能评估测试将其标记为"中级-Java后端",并推荐"微服务架构专项提升"路径:
      Spring Cloud基础 → 分布式事务实践 → 服务网格进阶
    • 李明调整路径优先级,将"分布式事务实践"前置,系统自动重新规划配套资源(教程、实战案例)。
  2. 实战代码评阅
    • 在完成"Seata分布式事务"实验项目后,提交包含OrderService.javaInventoryService.java的多文件工程代码。
    • AI在8秒内返回反馈:
      ✅ 功能完整性:45/50(未处理库存不足时的补偿事务)
      ❌ 代码规范:25/30(@GlobalTransactional注解未添加Javadoc说明)
      ⚠️ 性能提示:检测到selectForUpdate未使用索引,建议添加idx_product_id
  3. 开发者社区互动
    • 在"微服务架构"技术小组中发现《分布式事务调试技巧》精华帖,通过评论区与作者讨论Seata TC Server部署问题。
    • 将优化后的代码提交至社区开源项目库,获得"贡献者"徽章。

价值体现

  • 动态路径解决"学什么"的决策焦虑
  • 多维度代码评审加速工程思维培养
  • 社区协同打破技术孤岛

功能四象限分析

用户感知价值高 用户感知价值低
开发难度高 杀手功能: AI实时代码评阅(需集成GPT-4+CodeLlama) 外围需求: 社区勋章系统(需设计成就体系)
开发难度低 必要需求: 浏览器内嵌开发环境(基于Monaco Editor) 辅助功能: 学习路径甘特图导出(第三方图表库实现)

WBS与进度调整

关键变更

  1. 第7周增加"社区交互原型设计"任务(原仅包含基础社区功能)
  2. 第8周拆分"AI服务集成"为两个子任务:
    • 代码评审核心模块开发(优先级P0)
    • 学习路径推荐算法调优(优先级P1)
  3. 第9-10周敏捷冲刺新增:
    • 每日代码评审准确率监控(需搭建测试用例库)
    • 社区UGC内容审核系统(基础版)ßß

其他改进点

  1. 补充非功能需求

    • 性能指标:代码评审服务需支持500并发(原未明确)
    • 可维护性:采用OpenAPI 3.0规范设计接口文档
  2. 增强安全性描述

    • 沙箱环境增加网络隔离策略(禁止外网访问宿主机器)
    • 代码存储加密增加定期密钥轮换机制
  3. 用户画像细化

    • 增加"技术焦虑指数"维度(通过用户行为日志计算学习中断频率)
    • 区分"主动探索型"与"任务驱动型"学习模式

系统架构设计

分层架构图

+-------------------+     +-------------------+  
|  前端层           |     | 移动端适配层      |  
| (React + TS)      |<--->| (Responsive Web)  |  
+-------------------+     +-------------------+  
           ↓ HTTP/WebSocket  
+--------------------------------------------+  
|  应用服务层                               |  
| (Spring Boot)                            |  
| - 用户管理模块                           |  
| - 学习路径调度引擎                       |  
| - 代码评阅任务分发                       |  
| - 社区交互逻辑                           |  
+--------------------------------------------+  
           ↓ REST API  
+--------------------------------------------+  
|  AI服务层                                |  
| (Python微服务)                           |  
| - GPT-4通用分析模块                      |  
| - CodeLlama专项优化模块                   |  
| - 代码规范检查器(基于Fine-tuning模型)   |  
+--------------------------------------------+  
           ↓ gRPC  
+--------------------------------------------+  
|  基础设施层                              |  
| - MySQL集群(主从复制)                  |  
| - Redis缓存(学习路径元数据)            |  
| - Docker Swarm沙箱集群                   |  
| - KMS密钥管理服务                        |  
+--------------------------------------------+

核心组件说明

  1. 前端层
    • 动态路径甘特图:基于D3.js实现可视化交互,支持拖拽调整节点
    • 嵌入式IDE:集成Monaco Editor,预置Spring Boot/React项目模板
    • 实时反馈面板:WebSocket推送AI评阅结果,支持代码行级高亮
  2. 应用服务层
    • 异步任务队列:使用RabbitMQ处理高并发代码评阅请求(保障<2s延迟)
    • 学习路径引擎:基于用户画像的DAG(有向无环图)调度算法
    • 安全网关:JWT鉴权 + 请求限流(1000请求/秒)
  3. AI服务层
    • 模型分级调用
      • 轻量级规则检查(如命名规范)直接本地执行
      • 复杂分析(分布式事务检测)调用GPT-4 API
    • 结果缓存机制:相同代码Hash值复用历史分析结果
  4. 基础设施层
    • 沙箱环境
      • 每个代码会话分配独立Docker容器
      • 网络策略:禁止容器间通信,仅允许访问内网AI服务
    • 灾难恢复:数据库每日快照 + 跨AZ部署

分析设计方法

架构决策依据

  1. 前后端分离
    • 优势:前端可独立迭代IDE交互组件,后端专注业务逻辑
    • 验证:通过Postman模拟500并发API请求,响应时间<800ms
  2. AI服务微服务化
    • 问题:初期单体架构导致GPU资源争用
    • 解决方案:按功能拆分为代码规范/性能分析/架构建议3个微服务
  3. 缓存策略
    • 一级缓存(Redis):存储热点学习路径数据,TTL=1小时
    • 二级缓存(本地Caffeine):AI结果缓存,TTL=10分钟

质量属性应对

质量属性 设计策略
可扩展性 数据库水平分片(按user_id哈希)
安全性 动态密钥轮换(KMS每日生成新密钥)
容错性 沙箱环境超时熔断(5秒无响应自动释放容器)

待解决问题

  1. AI服务降级方案:当GPT-4 API不可用时,如何自动切换至本地CodeLlama模型?
  2. 大规模代码提交:超过10个文件的工程代码如何优化静态分析性能?
  3. 社区实时协同:多人同时编辑同一代码片段时的冲突解决策略
posted @ 2025-04-16 20:52  xb2555  阅读(66)  评论(0)    收藏  举报