YACW株式会社──Beta 冲刺总结

YACW株式会社 团队 2023-06-02 22:41:12
这个作业属于哪个课程2023 年福大-软件工程实践-W 班
这个作业要求在哪里团队作业——beta冲刺+事后诸葛亮
这个作业的目标Beta 冲刺总结
其他参考文献

目录

  • 前情提要
  • 前端部分
  • 后端部分
  • 改进计划
  • 任务分配
  • 工具流程改进
  • Beta 冲刺成品
  • 成品展示
  • 主页
  • 黑暗模式
  • 聊天功能
  • 翻译功能
  • 正常翻译
  • 选择情感翻译
  • 游戏功能
  • 心得体会
  • 刘泓
  • 傅铭锋
  • 刘伟文
  • 陈英杰
  • 胡彦杰
  • 郭河源
  • 熊鹏程
  • 赵杰
  • 贡献度
  • Teambition Task 完成数量
  • Issue 解决数量
  • Issue 提出数量(*0.1)
  • 加分项
  • 扣分项

前情提要

我们在 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 的成果如下图所示:

Beta 冲刺成品

项目部署地址: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

成品展示

主页

img

黑暗模式

img

聊天功能

img

翻译功能

正常翻译

img

选择情感翻译

img

游戏功能

img

img

心得体会

刘泓

作为小组的小组长,通过对工作流程进行改进,我可以清楚地发现,我和两位小组长对整体项目的进度有了更加全面地掌握──今日大家的任务都完成了吗?很早就做完的组员是否需要再布置一些任务?没完成的组员是否需要其他人的帮助?这些问题,我们都可以回答上来了。

这是我头一回使用完整的项目管理工具链来管理一个项目──从代码管理、看板工具到错误追踪,甚至是 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 提出数量考察组员的贡献程度。

Teambition Task 完成数量

组员完成数量
刘泓15
傅铭锋16
刘伟文21
陈英杰13
胡彦杰4
熊鹏程3
郭河源2
赵杰1

Issue 解决数量

组员解决数量
刘泓24
傅铭锋20
刘伟文18
陈英杰12
胡彦杰9
熊鹏程6
郭河源3
赵杰2

Issue 提出数量(*0.1)

组员提出数量
刘泓27
傅铭锋20
刘伟文10
陈英杰0
胡彦杰16
熊鹏程1
郭河源1
赵杰0

加分项

  • 陈英杰同学修复了很多繁杂的 Bug,因此加 5 点分数。
  • 赵杰同学负责每日收集日报,因此加 2 点分数。

扣分项

  • 郭河源同学在 Beta 冲刺前期消极怠工,因此总分 *0.9。
  • 刘伟文同学在 Beta 冲刺最后一日旷工,因此总分 *0.95。

综合上述结果,各组员得分为:

组员得分
刘泓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%
...全文
145 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

对组员的绩效统计做到了量化有依据,很赞!
团队使用了teambition和Git Action工具,对于工具对于提高项目管理和项目构建的效率方面的改进,可以在博客中加上一个小节,专门介绍一下;
结合AI的测试与传统项目开发的测试有何不同?

内容概要:本文提出了一种基于混沌系统与DNA编码的复合型彩色数字图像加密方案,旨在解决传统加密算法密钥空间小、抗干扰能力弱的问题。该方案利用混沌系统生成伪随机序列,结合DNA碱基编码规则对图像RGB三通道进行像素级置换与混淆扩散,实现高安全性加密;解密过程则通过逆操作精确还原原始图像。文章重点对该方案进行了系统的抗噪声与抗裁剪性能分析,实验结果表明,该算法在面对高斯噪声、椒盐噪声以及不同面积、位置的裁剪攻击时均表现出优良的鲁棒性,能够有效恢复图像核心信息,适用于网络传输与私密存储等复杂环境下的图像安全保护。; 适合人群:具备一定信号处理或信息安全基础知识,从事图像加密、信息隐藏、多媒体安全等相关领域的科研人员及研究生。; 使用场景及目标:①用于提升数字图像在网络传输中的安全性,防止窃听与篡改;②适用于医疗影像、军事测绘、商业机密等对图像安全性和抗干扰性要求较高的应用场景;③为研究高鲁棒性图像加密技术提供理论支持与实验参考。; 阅读建议:建议读者结合Matlab代码实践加密与解密流程,并自行设计不同强度的噪声与裁剪干扰实验,深入理解混沌置乱与DNA编码在提升算法鲁棒性方面的协同机制。

688

社区成员

发帖
与我相关
我的任务
社区描述
2023年福州大学软件工程实践课程W班的教学社区
软件工程团队开发软件构建 高校 福建省·福州市
社区管理员
  • FZU_SE_teacherW
  • 张书旖
  • 郭渊伟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧