这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315 |
这个作业的目标 | 对整个学期的学习进行总结 |
学号 | 102201130 |
🎓 一、学期回顾
1.1 回顾你对于软件工程课程的想象
- 在上这门课之前,我以为这门课程是像之前所有的编码课程一样,教我们编码的 💻。
- 所以一开始的课程目标,我只是想在这门课里面锻炼精进一下编码的能力。没想这门课的水比我想象中的‘深’多了 😲。
- 在此之中,我的编码能力不仅有了显著的提高! 并且对于做一整个包含前后端的大项目有了更深的理解,包括项目的框架、API的设定、技术的选取等等 😊。
- 更重要的是,在这么多次的项目之中,我学习了如何与他人协作,如何与他人沟通项目的细节,之前我都是一个人独自编码的,这门课教会了我如何与他人共同合作编码 🤝。
1.2 回顾你在这门课程中的投入与产出
- 在软工实践课程当中我编写了大约8000行代码 💾。
- 在结对项目中我参加了‘PG’的设计和开发,在其中所承担的角色是后端代码的部分,包括数据库设计,API设计和编码,整体后端框架的设计等等 🛠️。
- 在团队项目中我参与了‘EZnote’的设计和开发,在其中所承担的角色是后端代码的部分,包括笔记一些逻辑的编写,API的确定,AI部分的编码还有一些前端工作,包括美化界面等等 🎨。
- 软工实践的各次作业分别花费的时间 ⏳
作业 | 花费时间 |
---|---|
第一次个人作业 | 2h ⏰ |
第二次个人作业 | 12h ⏰ |
第一次结对作业 | 13h ⏰ |
第二次结对作业 | 76h ⏰ |
第一次团队作业 | 5h ⏰ |
第二次团队作业 | 6h ⏰ |
现场编程作业 | 3h ⏰ |
团队作业beta冲刺 | 90h ⏰ |
- 在软件工程课程上花费的时间
累计时间 | 实际周均时间 | 预计周均时间 |
---|---|---|
40(h) 📅 | 2.6(h) | 2(h) |
1.3 令你印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?
- 印象最深的应该是BETA冲刺的答辩 🎤
- 这次答辩我们组不仅获得了最佳LLM和最佳产品经理,还获得了一等奖,出乎我的意料 🏆😊
- 实际上就我而言,我认为我们组的工作量并没有其它组那么夸张(也可能是我们方向对,效率比较高) 🤔👍
- 后来总结复盘应该是跟我们最初的设计理念有关 🧠
- 一开始我想的是,既然是做LLM相关的项目,那么最好是选择用LLM擅长的方面
- 所以像旅游、游戏等方面都被我们pass了,因为LLM擅长的领域并不在这块,或者说LLM本身就不擅长于逻辑思考,做这块方面LLM有他一定的局限性 🛑
- 我们的设想是,LLM只是应该作为辅助,而不是核心功能,软件本身去除了LLM应该要也是一个能够运行的正常的项目 🔄
- LLM擅长的是什么,就是文本的处理,所以我们考虑了做笔记的软件,非常适配LLM的长处 📝😊
*(前端小组居然能够复刻出原型的样子) 😲
📝 二、总结收获
2.1 展开说说你的软工实践故事
-
个人编程 👨💻
- 个人编程带给我的震撼就是。我去,AI居然这么好用 🤖😊
- 之前我也不是没有用过AI编程,比如说OJ的题目,但是当时AI带给我的感受就是:不太聪明 😕
- AI给出的代码在总体的框架上是对的,但是又一些细节又错的离谱,但一眼又看不出来,找半天不如我自己写了,所以我之前并不是很喜欢用 😅
- 但是这里脱离了算法,到了实际工程,AI就展示出了他的强大之处了 💪
- 首先是在实际的工程上面,很多逻辑并不复杂,只是设计到很多API的使用,AI在这方面比手动查资料强多了 📈
- 其次是工程上有很多重复而又简单的逻辑,AI可以快速将其编码出来,减少了人类很多的工作量 🔄
- 最后就是AI对Python的支持度真的很高,得益于Python各种各样的库,导致一些你认为很难实现的东西,AI用几句代码就可以实现了 🐍😊
- 比如说我当时询问AI的例子
- (文件发给他就能读取,你只要说出你的需求就好了) 📂➡️💬
-
结对编程 🤝
- 结对编程让我首次接触到了多人合作的一整个前后端的项目(当然也缺少不了AI的帮助) 🌐😊
- 最让我触动的是GitHub的使用,GitHub可以很方便地进行版本之间的管理,而且方便多人协作 🐙
- 大家只要把代码放到同一个仓库,然后进行同步就可以了 📁🔗
- 如果才用QQ群协作的话,指不定要出现多少的问题 📱❓
-
现场编程 🖥️
- 现场编程让我知道了规划的重要性,也加深了我对代码框架的一些理解 🗺️😊
- 现场紧张刺激的编程中,我们一开始对金钱收入支出如何表示设计的不是很好 💸❌
- 导致最后前后端合并的时候出现了问题,很多功能无法实现 🚫🔧
- 这让我体会到了合作的重要性,以及代码开始前设计的重要性 🤝📝
- (然后我们组后来就定下了规矩,前后端代码设计API使用APIFOX工具进行统一) 📐
-
团队项目实践 👥
- 这里面获取到的经验是最多的,我就挑一个我认为重要的讲讲吧 📚
- 团队项目实践我负责的一部分有AI接口的调用,在之前我认为这个接口调用和网页上直接使用AI的功能应该是一样的 🤔
- 但是随着查阅文档和资料的丰富,我才知道AI接口能做的比我想象中的要多 📖😊
- 你可以给他制定一系列的规则,让他按照你指定的规则返回信息,而且一定不会违背规则,比我想象中的LLM要强大很多 💪🔧
- 我以代码来举例子,例如说我们设定一键导入日程的功能,在此之前我认为AI是绝对完成不了这件事的,没想到可以通过规则的设定来完成 📅➡️📝
- 可以通过设定规则,让他只返回json格式的文本,这样我们可以直接生成进数据库里 🗃️😊
2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?
2.2.1 GitHub 🐙
GitHub是我们团队协作的核心工具。
- 轻松跟踪代码变化,避免冲突和丢失 🔄
- 独立开发新功能,通过 Pull Request 进行代码审核和合并 ✅
- Issue 和 Pull Request 功能可以促进团队成员之间的沟通和问题解决 💬
2.2.2 APIFOX ⚙️
APIFOX帮助我们统一前后端的 API 设计。
- 快速设计和定义 API 规范,确保前后端一致 🖥️
- 自动生成的 API 文档方便团队成员查阅和理解接口功能 📑
- 支持 API 版本管理,平滑引入新接口变更 🔄
2.2.3 OpenAI 的 ChatGPT 🤖
ChatGPT在项目开发中发挥了重要作用。
- 快速生成代码框架,优化现有代码,解决编程问题 🛠️
- 通过互动快速获取技术文档和解决方案,缩短学习时间 📚
- 协助完成重复性高的任务,如编写测试用例和生成配置文件 🔄
- 再举一个AI强大的例子,我问他APIFOX应该如何使用它也可以回答 🗨️
2.3 技术之外,这门课程还给你带来了哪些方面的提升?
2.3.1 团队协作能力 🤝
- 通过多个结对编程和团队项目,我学会了如何在团队中有效地协作 😊
- 我学会了如何清晰表达自己的想法,同时也学会了倾听和理解队友的意见 👂🗣️
- 理解了在团队中合理分配任务的重要性,确保每个人都能发挥自己的优势 🧩
- 面对团队中的分歧和冲突,学会了冷静分析问题,寻找共识和解决方案 🧘♂️
2.3.2 时间管理与项目规划 ⏰
- 课程中的各类作业和项目要求我合理安排时间,提升了我的时间管理能力 ⏳
- 学会了为项目制定详细的时间表和任务清单,确保按时完成各项任务 📋
- 能够根据任务的重要性和紧急程度,合理安排工作顺序,提高效率 🚀
- 在项目进展中遇到意外问题时,能够迅速调整计划,保证项目顺利进行 🔄
2.3.3 问题解决能力 🛠️
- 在项目开发过程中,难免会遇到各种技术和非技术问题,这门课程帮助我提升了问题解决的能力 🧠
2.4 如果还有什么想记录的或者想说的,就写在这儿吧! ✍️
-
首先声明这些有点半糖的emoji表情也是我让AI工具加的(AI会发流汗黄豆太恐怖了) 😀
-
(上去答辩被拍了) 📸😅
-
这次答辩挺幽默也搞得挺耻辱的(耻辱下播了) 😂
-
本来我们的计划是原型画简单一点,功能靠嘴讲的,不过后来发现讲不完 🖼️💬
-
当然这不是最耻辱下播的 🙃
-
最耻辱下播的,其实大家也都没咋听,大抵是看谁画的多画得好给谁分 😅
-
然后我们组的就荣获一个很低的票数,耻辱下播了 😓
-
当然后面我们就吸取教训了,东西都尽量的给做好看点(比如说这次作业我就打算把博客的风格给换一换,搞点背景,搞点音乐什么的) 🎨🎶😊
🙏 三、致谢
- 首先要致谢的就是我的搭档林智烽了,他又是会给我一些软件上的灵感,又会跟我说一些话,让我软工繁忙的工作中没有那么无聊 😊
- 然后要感谢的就是我组长黎曼了,我一直和林智烽说选她当组长真是选对了,她作为组长真的很负责,会积极地指导工作,提醒组员,有时甚至能看她熬夜到凌晨4点 🌙,还好当初没有选我当组长,如果我是组长,我大概就不会这么上心,大概就会有点小摆 🤷♂️
- 最后致谢的是我的组员陈宇杰了,他以前有过一些项目的经验,我们很多东西都要请教他,包括APIFOX的使用也是他提出的,而且网站也是他来部署的,为团队也是贡献了很多 👍
- 最后也是终于结束一学期的软工了