这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 软件工程2024秋——个人总结作业 |
这个作业的目标 | 学期总结 |
学号 | 102202150 |
🙅禁止焦虑——2024秋软工实践个人总结博客
一、🎞️学期回顾🎞️
1.1 💭回顾你对于软件工程课程的想象💭
刚开始我对软件工程的理解只局限于通过团队分成前后端编写代码得到一个可以运行的软件,没有想过还需要进行需求分析,写各种文档📃,设计原型……😶
还以为老师会教我们如何使用开发工具,如何进行开发👩💻,如何进行团队协作,现在想想确实是我想多了🤨,软件工程是不断探索的过程,每一步都要靠自己和团队探索,积累经验,才能让自己真正的成长。
翻看第一次个人作业博客,初始我对课程的目标是希望可以学习到软件工程的一些概念、过程以及软件开发的思维和方法,希望学会使用AI帮助写代码和解决问题,希望在后面的小组任务中学会团队合作,希望通过学习这门课程多实践,提升写代码的能力,提高思考问题全面和严谨的能力。
从总体上看,目标和预期基本实现,各个方面都有提升👍,但是在团队交流方面仍存在欠缺,还是不能及时了解团队其他成员的想法、分享自己的想法,导致有时候会做重复的工作👎...
在完成软工实践作业的过程中我真实的感受到了自己的进步和成长✊。
1.2 ⏏️回顾你在这门课程中的投入与产出⏏️
-
在软工实践课程当中我编写了( 8000+ )行代码。😮
第一篇博客还预计代码量增加1000行以上,现在直接拉爆💥 -
在团队项目中我参与了( 福小旅 )的设计与开发,我在其中所承担的角色是原型设计、福小旅行程规划模块的前后端实现。
-
软工实践的各次作业分别花费的时间😫:
作业 花费时间 内容 第一次个人作业 4h 熟悉博客园、Github个人主页 第二次个人作业 20h 开发消除类小游戏 第一次结对作业 30h 结对作业原型设计 第二次结对作业 45h 结对作业编码实现 第一次团队作业 5h 确定主题及需求分析 第二次团队作业 34h 我主要参与团队作业原型设计 现场编程作业 4h 编写代码开发记账软件 团队作业alpha冲刺 40h 我负责福小旅行程规划模块 团队作业beta冲刺 15h 对alpha冲刺写的代码进行改进和错误修改 -
在软件工程课程上花费的时间😫
累计时间 实际周均时间(8周) 预计周均时间 194h 24.25h 12h
1.3 🤔令你印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?🤔
让我印象最深的作业是现场编程作业,最极限的一集🤯,从来没有想过可以在这么短的时间内开发出可以使用的软件,因为我的代码能力和设计能力不是很强,尽管只是一个简单的记账软件,但是放在平常做可能需要一整天甚至更久的时间。
果然人在极限的时候什么都做的出来,充分激发了自己的潜能😌...
我还实现了图表功能,其中团队开发中主要遇到的问题还是数据的读写,刚开始不知道如何在微信开发者平台进行数据交互和读写
二、🪢总结收获🪢
2.1 📖展开说说你的软工实践故事📖
软工实践故事始于夏天,经过秋天,终于冬天
在夏天播种,在秋天灌溉,在冬天成长
-
第一次个人作业认清自己的定位,了解软件工程,为这门课设定一个目标,播下了一颗小小的种子🧑🌾
-
第二次个人作业,开发消除类小游戏,开始浇水,难度逐渐显现🌱
初始我先拟定了一个游戏框架,后续再在这个框架的基础上逐渐添加功能(高亮选择、计时、界面元素是否还能匹配、游戏成功、游戏失败、难度设定……)让我第一次如此真实的感受到一步一个脚印👣、每一步都有新的收获的快乐,虽然页面比较简单而且后面老师评讲的时候发现我没有符合“羊了个羊”的题目风格要求,但是对于没有任何经验的我来说,这已经是一大突破,当我的游戏可以真正使用的时候,成就感击退了我在开发过程中遇到困难的焦虑。
-
第一次结对作业,设计原型,开始施肥,难度加大🪴
主要难题在于墨刀这一陌生的工具,前期花了一些时间熟悉和操作墨刀,但是到了开始设计任务的时候也是一片空白🗋(这个软件应该确定什么功能,页面应该如何设计,页面之间有什么逻辑……)于是我又开始焦虑了😟
焦虑归焦虑,作业还是要做的,经过和队友的交流,我们一致认为可以“模仿”一些现有软件的设计,以至于不会没有参考一片空白,结果证明这个想法是正确的。
在这个作业中我们还分成了教师端和学生端,分别设计了不同功能,最终也是有38个界面
-
第二次结对作业,编码实现,开始拔苗助长🌱🌱,难度和焦虑情绪都达到了顶峰😰
首先是不知道如何选择开发工具的问题,其次在选定开发小程序后,需要在短时间内学会如何开发小程序,学习小程序的架构和语言,而且这次作业安排在了国庆假期,对我的心态和时间管理又是一大考验😰。而且不明确作业的意图,不知道是否需要实现后端是否需要连接数据库,总感觉有很多工作要做,又不知道从何下手😶🌫。经过探索,最后使用了微信云开发作为简单的后端和数据库,主要还是在前端实现上花费时间,和队友一起在食堂和教室写代码的场景历历在目,个人觉得对原型的还原度还是挺高的😇
-
团队作业,逐渐成长🌲
有了之前结对作业的一点经验,团队作业比较容易上手,也有在调节自己的心态,没有前几次作业那么焦虑和不知所措了,初期的任务是设计软件原型,我们小组一共三个人设计,经过快速有效的交流我们统一了风格,确定了分工,效率比我想象中的高,但是工作量确实很大,三个人都表示不想再看到墨刀
后期的任务是行程规划前后端实现,我们团队每个人负责一个模块,这样比较容易实现前后端的交互,后面整合只需要设置跳转逻辑即可,前端使用了vue后端使用了node.js,前端主要难度在于需要尽量还原墨刀的原型设计,包括按钮、分隔栏、页面布局、色调等等,下面左边是原型,右边是实现
后端主要难度在于需要接入AI接口,处理AI返回的数据还要保证每次返回的结果格式都一样,首先需要调研多个AI接口,哪个更适合这个任务
最后选择通义千问系列大模型API
原因:
每个模型都有100万免费token
有完整的开发文档,包括node.js,便于接入
尝试了多个大模型之后发现通义千问比较“听话“,返回的结果也还可以
而且可以指定返回的内容格式为json,如果在prompt中指定返回json,就会直接返回回答的json部分,不会有其他信息,所以后面的提取字段和可视化比较方便。
接入AI不仅是用来生成行程规划,还用来搜索景点信息,使用了通义千问的不同模型,使用不同的prompt。
在景点信息中我还接入了一个爬虫,用来爬取景点的图片,因为如果只有文字的话对用户不是很友好。
还有比较困难的是页面间的信息传递还有前后端的交互,都需要使用格式化数据json进行传递,刚开始对这个不熟悉也是花了一些时间理解,页面间的传递我使用了storage进行暂时存储,前后端的交互是通过发送HTTP请求进行的,在本地上使用localhost,部署后访问云主机地址。
最后,我犯了一个较大的错误,因为在HBuilderX中开发使用了内置浏览器运行,导致写的程序有些在Web端可用而在APP端不可用,比如发送请求与后端交互我使用了axios(但是要使用uni.request),以及数据的存储我使用了浏览器的localStorage(但是在手机端要使用uni.storage),更严重的是高德接了JS API,不仅导致页面不能出现地图还导致整个项目打包和运行出现问题,最终更换成AndroidSDK,并把后端部署到了云服务器中。
回顾我的软工实践,几乎每一次作业都被焦虑支配,也许是对自己要求太高,从来没有接触过的东西又想做的好,每次做软件工程作业都会熬夜🌃,睡觉在梦里也在思考应该怎么做💭,早上起来接着干……好不容易提交一个作业还有下一个作业,而且还要兼顾上课和其他作业……也算是挺过来了,现在回顾还是可以真实感受到那个时候的焦虑。
2.2 🧰介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?🧰
-
首先学习到了如何使用AI辅助编程
在这学期之前还只会使用文心一言,但是文心一言在写代码方面相对较弱,很多时候不能满足任务要求,而且代码准确率也较低
之后接触到了Kimi,Kimi在第二次个人作业编写消除类小游戏中发挥了至关重要的作用,一度把Kimi问崩溃😵,辛苦了🌹
最后我终于用到了ChatGPT,第一次觉得生产力如此重要😮……感谢这位靠谱的好伙伴,不敢想象如果没有AI我会碎成什么样💔... -
其次学会使用墨刀进行团队和个人原型设计,一步一步在设计的过程中探索,从陌生到熟悉,在第一次结对作业使用过之后第二次团队作业设计就很熟练了。而且是可视化界面,所以不会很枯燥。一共与团队小伙伴设计了38(结对)+43(团队前台)+18(团队后台)个页面
很享受探索新事物的过程,新鲜感是我的动力
-
然后学会使用微信开发者工具开发小程序,了解微信小程序每个页面的基本构造,该平台也提供了开发框架,很多组件等等,还接触到了微信云开发,连接云数据库实现软件基本功能
-
以及学会使用HBuilderX开发APP(可以打包成APK下载)
以上两个开发工具都比较容易上手,没有在学习使用开发工具上耗费太多时间,但是在选择开发工具上花了较多时间⏲️,特别是结对编程我们两个对开发工具和开发流程一无所知😵💫,而且开发工具多种多样,不知道选择哪一个,在对比了几个开发工具之后选择使用了微信开发者工具,事实证明选择正确的易上手的开发工具事半功倍。
2.3 ⏫️技术之外,这门课程还给你带来了哪些方面的提升?⏫️
- 抗压能力:尽管压力很大,但是也是坚持下来了,感觉现在自己强的可怕💪
- 情绪管理、自我调节能力:从一开始的焦虑到后面的释然,我想开了🙏
- 时间管理能力:在多个学科的大作业中来回穿梭,不断挑战极限🦸
- 解决问题能力:可以通过各种途径解决问题,不管多难的问题总能找到解决办法,遇到问题就解决问题
- 团队协作能力:与团队的沟通与协作,在团队中相互学习相互鼓励相互进步
- 坚持:过程很难但坚持下来实在是泰酷辣✌
2.4 PS
不仅饱受作业折磨🥀,写博客也是一件让我头疼的事,每次作业都要预留一天时间写博客,写了又删,删了又改,实在是难上加难😒...
三、🤗致谢🤗
感谢结对编程中情绪稳定、审美在线的队友🌹!
感谢团队中给满情绪价值的队长🌹!
感谢批改作业的老师和助教🌹!
感谢不放弃的自己🌹!
感谢AI🌹!