688
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2023 年福大-软件工程实践-W 班 |
|---|---|
| 这个作业要求在哪里 | 团队作业——beta冲刺+事后诸葛亮 |
| 这个作业的目标 | Beta 冲刺总结 |
| 其他参考文献 | 无 |
我们在 Beta 冲刺开始立下了很多 Flag确立了很多目标,让我们来看看我们的目标完成情况吧。
在 Beta 冲刺阶段前端一共创建了 55 个 Issue,完成了 50 个,完成率为 90.09%。
在 5 个未完成的 Issue 中,有 1 个为 Bug,但这个 Bug 过于奇怪,我们都怀疑和 Element-Plus 的代码有关,故无法修复;剩余的 1 个都是可以提升的点,但由于时间不足,这些被标记为 不急 或 中等紧急 的改进点没能完成。
下面是 Issue 完成情况的表格(节选了重要的 Issue):
| 目标 | 完成情况 | 未完成原因 |
|---|---|---|
| #39 Feat: 支持更换后端 URL | 已完成 | 无 |
| #40 Feat: 输入 Key 后改变按钮及弹窗样式 | 已完成 | 无 |
| #41 Feat: 选择模型后改变按钮及弹窗样式 | 已完成 | 无 |
| $42 Feat: 输入 Key 检查其可用性 | 已完成 | 无 |
| #43 Feat: 黑夜模型 | 已完成 | 无 |
| #45 Bug: 前端数据库问题 | 已完成 | 无 |
| #46 Feat: 聊天界面 直接发送对话时新建对话 | 已完成 | 无 |
| #47 Bug: 聊天界面 CSS 修复 | 已完成 | 无 |
| #48 Feat: 创建新对话时使用 UUID 作为 chatId | 已完成 | 无 |
| #51 Bug: 删除对话后应当跳转至空页 | 已完成 | 无 |
| #52 Bug: 无法在两个已聊天的对话间跳转 | 已完成 | 无 |
| #53 Feat: 请求 OpenAI API 被流控的情况提醒用户 | 未完成 | 由于 OpenAI 返回的内容较为复杂,我们无法判断是否被流控 |
| #54 Feat: 一键复制对话内容 | 已完成 | 无 |
| #57 Feat: 模型对话使用流式输出 | 未完成 | 考虑到流式输出要用到 WS,工程量很大,我们将此功能无限期推迟完成 |
| #60 Bug: Prompt 商店排版 CSS 修复 | 已完成 | 无 |
| #62 Feat: 人格选择界面 使用人格后在聊天界面添加反馈 | 已完成 | 无 |
| #64 Bug: 翻译界面 交换文本框文字按钮点击范围过大 | 已完成 | 无 |
| #73 Bug: 会话组件,Card 和两个修改 Button 点击范围冲突 | 不完全完成 | 目前没有合适的解决方案,我们进行了一定程度的修改 |
| #85 Feat: 将 Axios 请求提取 | 已完成 | 无 |
| #86 Bug: 输入框输入过长,发送后文字不显示 | 未完成 | 怀疑是 Element-Plus 的 Bug,无法修复 |
| #89 Bug: 前端验证apiKey的请求的路径apikey改为apiKey | 已完成 | 无 |
| #102 Bug: 更换 Key 弹窗填充文字内容位置错误 | 已完成 | 无 |
| #120 Bug: 翻译页面交换内容按钮 hover 范围过大 | 已完成 | 无 |
| #128 Bug: 新建prompt没有显示 | 已完成 | 无 |
| #129 Bug: 聊天侧边栏index错乱 | 已完成 | 无 |
| #133 Feat: 新增设置页面 | 已完成 | 无 |
| #136 Bug: 显示用户prompt没有立刻更新 | 已完成 | 无 |
| #144 Bug: 翻译界面拉长后输入框与按钮错位 | 已完成 | 无 |
| #148 Bug: 验证 API Key 逻辑有误 | 已完成 | 无 |
| #149 Bug: 请求 game/chat 发送上下文传递错误 | 已完成 | 无 |
| #151 Bug: 游戏界面展示 story 问题 | 已完成 | 无 |
在 Beta 冲刺阶段后端一共创建了 30 个 Issue,完成了 30 个,完成率为 100%。
下面是 Issue 完成情况的表格(节选了重要的 Issue):
| 目标 | 完成情况 | 未完成原因 |
|---|---|---|
| #16 后端改为存储来自前端的chatID | 已完成 | 无 |
| #17 后端人格返回的ID的类型改为String | 已完成 | 无 |
| #20 后端openAI的API调用出错,对于出错情况的细分 | 已完成 | 无 |
| #24 Bug: 新建对话API请求体字段添加前端生成的uuid类型的chatid,chatid不再由后端生成 | 已完成 | 无 |
| #26 制定游戏的API文档,指定游戏的数据库 | 已完成 | 无 |
| #29 数据库prompt数据重新填充 | 已完成 | 无 |
| #32 涉及到apiKey的删除使用Post请求,而不是Delete | 已完成 | 无 |
| #34 恐慌处理 | 已完成 | 无 |
| #35 完善翻译的prompt | 已完成 | 无 |
| #36 完善游戏的剧情prompt,补充剧本 | 已完成 | 无 |
| #38 在主函数运行时检查环境变量 | 已完成 | 无 |
| #39 deleteprompt中获取数据的方式,不能用json传递 | 已完成 | 无 |
| #43 从数据库提取出来的信息拼装成的json与需要传给API的json结构不同 | 已完成 | 无 |
| #48 avoid panic errors by adding an ok flag | 已完成 | 无 |
| #50 删除prompt输入不存在的ID | 已完成 | 无 |
| #51 获取apiKey部分没有进行apiKey的过程 | 已完成 | 无 |
| #54 choosegameback没有设置modelid下标越界的情况 | 已完成 | 无 |
| #63 Bug: 程序开始时未验证数据库正确性 | 已完成 | 无 |
| #65 跨域问题 | 已完成 | 无 |
除了功能方面的提升,我们在管理方面也有一些改进的计划。
在 Beta 冲刺阶段,由于对彼此的认识加深,我们确实可以根据每个组员所擅长的领域分配任务。下面是每个组员的大致分工
| 组员 | 分工 |
|---|---|
| 刘泓 | CSS 编写,代码审查 |
| 傅铭锋 | 逻辑编写,代码审查 |
| 刘伟文 | 界面构建,界面设计 |
| 陈英杰 | 错误修正,组件整合 |
| 胡彦杰 | 逻辑编写,代码审查 |
| 熊鹏程 | 数据库设计 |
| 郭河源 | 测试编写 |
| 赵杰 | Prompt 设计,文档编写 |
在 Beta 冲刺阶段,我们顺利地将 GitHub Issue 融入进开发流程中。对于每一个发现的问题或改进点,我们会将其加入至 Issue 列表,并持续追踪 Issue 完成的情况;在 Pull Request 中,我们可以提及 Issue,从而将 Issue 和 Pull Request 关联起来,方便我们在合并时进行检查。
使用 GitHub Pull Request + GitHub Issue 的成果如下图所示:
项目部署地址:https://yacw.laoliu.icu/
部署脚本仓库:https://gitcode.net/2023-w/yacw/yacw
前端代码仓库:https://gitcode.net/2023-w/yacw/yacw-frontend
后端代码仓库:https://gitcode.net/2023-w/yacw/yacw-backend







作为小组的小组长,通过对工作流程进行改进,我可以清楚地发现,我和两位小组长对整体项目的进度有了更加全面地掌握──今日大家的任务都完成了吗?很早就做完的组员是否需要再布置一些任务?没完成的组员是否需要其他人的帮助?这些问题,我们都可以回答上来了。
这是我头一回使用完整的项目管理工具链来管理一个项目──从代码管理、看板工具到错误追踪,甚至是 CI/CD 系统,每一样工具在使用过程中,变得越发地重要,到最终,我甚至觉得我们已经少不了其中的任意一个工具了。
这也是我头一回领导一个小组在这么多个日夜里一同协作,共同为同一个目标──完成 YACW 这个项目,而努力。组员们的配合度也令我相当满意,从 Alpha 到 Beta 都没有出很大的管理问题。
总之,这是一个非常有意义的项目,我也从中学到了很多东西。
通过第一次使用Vue编写大型项目,我获得了宝贵的经验。Vue的组件化开发方式使得项目结构更加清晰,代码复用性提高。同时,Vue的响应式数据绑定和虚拟DOM技术带来了高效的页面渲染和交互性能。然而,在开发过程中,我也遇到了一些挑战,如组件通信和状态管理。这促使我深入学习Vuex和Vue Router等相关工具。总体而言,通过这个项目,我不仅加深了对Vue的理解,也提升了自己的编码能力和项目管理技巧。在团队协调方面时候,我觉得组员之间要有更多的沟通交流,才能够更快的把项目发展起来。我期待能继续探索更多Vue的潜力,并在未来的项目中运用所学。
体验:体验了一次完整的开发,但是α冲刺的收获比较多,感觉β的收获一般,都是改Bug。写的火大。
收获:更熟悉了Vue的使用,和怎么更好的使用git
心得:在学了这么多语言后,已经能够更快的上手新东西。并且触类旁通。相信如果有什么开发需要学习的东西,也能够很快的上手
体验:因为是从其他组换过来的,这次的beta冲刺对我来说就是短时间内去融入团队,去学习和应用的一个过程。又有比较精细的分工,每天都多少有做一些东西,虽然核心的东西还没有真正的掌握,但还是有不断在进步和提升的感觉。
收获:认识了新的同伴,也去尝试了新的东西,学会了前端vue框架的应用和前端的设计方法。
心得:这次比较不一样的冲刺算使一次意外吧,但人生或许就是因为有各种意外要我们去面对、解决、享受才会更加精彩吧。
我在此次的团队项目中主要负责后端的代码的编写,同时也是这次后端部分的负责人。这次实践任务给我带来的体会可以从两个方面来说,一个是技术层面的,我们后端这次采用了 Go + Gin + Gorm 的技术栈,go 语言对于我来说是一门新的语言,虽然之前在结对作业中有练习过 go 语言的编写,但是团队实践的过程使我对go语言的一些特性更加印象深刻,也初步的掌握了 go 语言的框架以及库函数的使用方法。另外,我们在开发的过程中借助了 ChatGPT,同时我们的项目又是基于 OpenAI 的 API 接口的,在编写程序的运行逻辑的过程中,我也更加深入的学习了 GPT 模型的调用技巧。另一个层面是团队合作以及项目整体的层面,在项目的初期时,大家的技术力不均给我们后端的开发带来了一些困扰,但是随着我们的沟通交流以及对于彼此队员认识的深入,我们每个人明确了自己在项目中的地位,做到了各司其职。而且,此次实践,对于我们这些没有真正体验过做项目的人来说更是一次宝贵的经验,从中我认识到了一个项目是怎么从一个想法落实到具体的代码的,项目的开发是如何推进的,人员的管理是如何进行的,项目的质量是如何保证的等等。我想可能我们的结果不够优秀,但是我们的付出值得肯定!
体验:经历了长达一周的Beta冲刺,我的体验是前面的坑后面来填,不论是函数的补全还是测试的完善都是一项大工程。
收获:能够以更多的角度方式来思考测试,增加测试的完整性
心得:覆盖率是一个重要的指标,覆盖率 的高低直接决定了你的测试是否完善
体验:经历过这次β冲刺之后,感觉整个项目既添加了新的功能,又完善了之前的功能,修复了之前代码中存在的bug,像panic报错,openai错误码的细分,单元测试的完善以及随着api文档接口的修改,后端代码的修改。总的来说,此次冲刺体验感不错的,我们白天写代码,根据github中的issue问题创建分支并作出问题里面的修改,晚上pull request,等两位成员批准后,才能进行合并,这是一个完整、合理的流程,保证了bug问题能及时修复,以及代码质量的审查。
收获:本次β冲刺,我最大收获是对github的熟练度提高,编程思维能力进一步提升了,能够根据实际问题,用代码来完成需求,以及对代码质量把控的要求提高了,不仅要包证gocilint通过,还要通过之前写好的单元测试函数,这是我另一个收获。还有应该就是团队的协作能力,通过每天的会议,前后端能够及时的沟通并解决问题,成员之间的默契度日益提高,更像一个老练的外包团队了。
心得:通过这次β冲刺甚至是软工实践,我发现了团队的力量是无限的,是一个人无法带来的,三个臭皮匠顶个诸葛亮,有了团队协作,能够省下不少事情,从而高效地完成任务,留给自己自由的时间变多了,分工可以提高生产率,合理的分工加上高效的方法才能达到最高的工作效率。
体验:这次的β各方面都完成的水到渠成,团队任务分工明确。相较于之前的冲刺,这次冲刺完成的更加轻松,队员之间的配合更加的默契,是一次很“舒适”的冲刺(bushi。
收获:这次β冲刺我学会了如何训练AI,让AI更加听话,完成了游戏部分的剧本编写,更明白了测试的重要性,go语言掌握的页更加熟练了。
心得:每日的站立式会议为我们提供了每天线下沟通的机会,成员之间更加清晰的知道对方的需求是什么,有助于程序Bug的修改,这是一个很好的活动。大家集思广益共同打造一个优秀的程序。
由于后端出现了较多没有按照 API 文档编写代码的情况,一定程度上加大了前端开发的工作量。故总体贡献度调整为:前端 55%,后端 45%。
我们从 Teambition Task 完成数量,Issue 解决数量,和 Issue 提出数量考察组员的贡献程度。
| 组员 | 完成数量 |
|---|---|
| 刘泓 | 15 |
| 傅铭锋 | 16 |
| 刘伟文 | 21 |
| 陈英杰 | 13 |
| 胡彦杰 | 4 |
| 熊鹏程 | 3 |
| 郭河源 | 2 |
| 赵杰 | 1 |
| 组员 | 解决数量 |
|---|---|
| 刘泓 | 24 |
| 傅铭锋 | 20 |
| 刘伟文 | 18 |
| 陈英杰 | 12 |
| 胡彦杰 | 9 |
| 熊鹏程 | 6 |
| 郭河源 | 3 |
| 赵杰 | 2 |
| 组员 | 提出数量 |
|---|---|
| 刘泓 | 27 |
| 傅铭锋 | 20 |
| 刘伟文 | 10 |
| 陈英杰 | 0 |
| 胡彦杰 | 16 |
| 熊鹏程 | 1 |
| 郭河源 | 1 |
| 赵杰 | 0 |
综合上述结果,各组员得分为:
| 组员 | 得分 |
|---|---|
| 刘泓 | 15 + 24 + 27*0.1 = 41.7 |
| 傅铭锋 | 16 + 20 + 20*0.1 = 38 |
| 刘伟文 | (21 + 18 + 10*0.1) * 0.95 = 38 |
| 陈英杰 | 13 + 12 + 0 + 5 = 30 |
| 胡彦杰 | 4 + 9 + 16*0.1 = 14.6 |
| 熊鹏程 | 3 + 6 + 1*0.1 = 9.1 |
| 郭河源 | (2 + 3 + 1*0.1)*0.9 = 4.59 |
| 赵杰 | 1 + 2 + 0 + 2 = 6 |
前端 147.7
后端 34.29
经过计算,每个组员的贡献率为:
| 组员 | 贡献率 |
|---|---|
| 刘泓 | 15.53% |
| 傅铭锋 | 14.15% |
| 刘伟文 | 14.15% |
| 陈英杰 | 11.17% |
| 胡彦杰 | 19.17% |
| 熊鹏程 | 11.94% |
| 郭河源 | 6.03% |
| 赵杰 | 7.88% |
对组员的绩效统计做到了量化有依据,很赞!
团队使用了teambition和Git Action工具,对于工具对于提高项目管理和项目构建的效率方面的改进,可以在博客中加上一个小节,专门介绍一下;
结合AI的测试与传统项目开发的测试有何不同?