个人回忆录---2024软件工程历险记

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315
这个作业的目标 回顾这一学期所完成的软工任务,总结这一学期的收获
学号 102202108 王露洁

前言:我对软件工程课程的想象

None

😇 实话实说环节:一学期有这么多课,谁能特地注意到软工这门课呀,更不用说什么对它的想象,所以谁也没想到后面会被它整得那么(꒦_꒦) !

🤢 对课程的目标和期待:这个得趁着开课前好好想想,因为开课后根!本!没!时!间!

🤩 但是不得不说,这三个月我不管是编码能力,沟通能力还是组织管理能力都是 ↑↑↑,还有更重要的是认识和了解了更多的同学

下面直接进入正文吧:

一. 你存在~ 我深深的脑海里~

1. 就我❓开发游戏❓(团了个团)

🤪当时本人内心活动:

×&%¥#@没错,我是学过不少编程语言了§№☆●◎□但是学了不代表我就会呀◆○◎★▲△■这作业是不是布置错了※£¤¢℃¥ξο这老师上课也没教啊$ & ¤ § | 我哪会开发小游戏啊?大家都会吗?这是合理的吗?@#$^&%!$#*&%¥&@34%#!……

什么?要用AIGC吗?原来如此,不是让我自己写啊。。。(呼~)

既然那次作业已经结束了,那我又要开始说实话了:本身作业要求的是“使用GitHub Copilot或其他AIGC工具生成至少30%的代码”,但我的代码中含AI量高达99.999999999%

🥴含AI量99.999999999%的游戏长啥样:

唯一没有靠AIGC的部分就是美工,为了防止侵权啥的,我直接上手绘 (如果你也喜欢海贼王,那我们就是好朋友、、):

接下来隆重介绍一下我的右手:

真的真的很好用(虽然后面没怎么用过),只需(Ctrl+L)输入需求,然后直接给出一整套。

于是我就不停地给它提要求,加条件,但是随着要求越来越多,它报错的概率就越来越大,而我又不会改,所以不得不放弃一些功能,反反复复折腾几次才最终生成一个没什么缺陷也没什么亮点的Tuan a Tuan,果然做人不能太贪(⊙o⊙)…

经过三个月的磨炼,我发现当时怎么也看不懂的代码,现在,,,,也仍然看不懂o(╥﹏╥)o

说了这么多,下面该展示了,其实它跟我原本想象的差挺多的,但是,我觉得我应该学会知足,毕竟,,懂的都懂。。。

现在看看觉得有点花里胡哨了哈哈!这是查看更具体信息的通道:https://www.cnblogs.com/bushiwanglujie/p/18417638

总结:此次作业,我和我的助理最终一共写了415行代码;总时间消耗:大约3天

2. 两个小白❓造小程序❓(Campus Linker)

🤧二话不说先吐槽:

天哪!怎么做到的!每次作业都在我的意料之外!每次都能给我不一样的惊(刺)喜(激)!小程序??是微信的那种小程序吗?那是刚迈入大三的学生可以做得出来的吗?原谅我,我实在不知道从哪下手了。

不过幸好我有一个擅长探索新事物的搭档,不管是墨刀(原型设计工具)还是微信开发者工具(程序开发工具),都是她先学习使用然后教给我的,这才让我慢慢地知道了自己应该做什么,用什么工具做,以及怎么做。

但是还有一件事,谁来也救不了咱,那就是----我俩都有一点点拖延症。。。没记错的话,结对作业的编程部分老师把它安排在了国庆假期,而我这次假期也是难得回了趟那个离这儿一千多公里的家。不用说,我回家是包不会做作业的,电脑都没带回去;而我搭档也是,我不在,她也是不会想要碰的,毕竟难得的假期,我们都舍不得让它就那么跟软工姓了。

我当时是5号晚上回来,10号要交博客,也就是我们要用4-5天的时间从0开始,把小程序做完然后把博客写完,听起来还好,但是我们还有很多课要上,总而言之,挺急的。不过我们刚开始一点都不带慌的,因为不知道自己即将面对什么,后来是越做越懂越慌啊!!!

这个时间没有很长,但是过程却极其崎岖(这里不想回忆得那么清楚了)。从“空壳”到连接数据库,再到后面的实时聊天,最后基本上也算完成了(这都多亏了我的搭档)。

还记得交博客的前一天晚上我们待在学习中心快到十二点(我本来说过不会为了软工而熬夜的),结果那天我不但熬了夜,博客还迟交了(踩着点交谁知道电脑卡了),后面跟老师解释了一下,他很耐心宽容地扣了我三分(没关系我不记仇(#^ . ^#))。

🥶为何选蓝色?那是汗水和泪水凝结而成的

先用一张图简单展示一下大概的界面:

是不是看着还不错?当然不错了,,因为那是原型的截图。

不过程序实现跟原型也没差多少,所以可以替代(嗯嗯)。

具体详情:https://www.cnblogs.com/bushiwanglujie/p/18450380

下面是我们这次编程辅助的工具(GPT老师以后还请多多关照!):

还有开发工具(这个不是很好用呢):

也是经过这次,我才知道编写小程序是分前端和后端的,前端主要进行html,css和js脚本的编写,而后端主要是搭建服务器和数据库,我的理解是这样子,实际上肯定是更复杂的。

做这个小程序的时候,我只涉及到前端代码的编写,而且是依赖AI的,所以我根本看不太懂我自己写的啥,html文件还好,css一般,js是一点也看不懂啊!!当时就是很赶(前面也说了),根本没有时间去慢慢研究每行代码是什么作用,还记得我只会改改界面的排版和颜色等等,至于动态交互嘛emmmm……

我们一共做了三十个页面,原码上传在了github上:

说到github,又是一道坎……,谁家学计算机的大三学生还不能熟练使用github呀,,哭哭哭,,什么fork,clone,commit,merge,pull request……别人都能轻易搞定,到我这就不好使了,不知道是不是电脑有问题(好吧肯定不是)。

但是我知道了github的优点(本来是不知道的还觉得没必要),那就是可以直接把整个项目的所有文件克隆到本地,跟人合作需要交换文件就不用一个个传了,但其实压缩包也挺方便的。还有就是可以直接进行合并,但前提是没有冲突;关于分支,合并,冲突这块,我目前还是不太懂。。

总结:此次作业的代码量:2000-3000行(粗略估算);总时间消耗:10天左右(原型+编程)

3. 当选前端小组长❓我去管人,谁来管我❓(养食记)

🤡最难忘的大组作业,让我想想从哪说起

作为前几次作业排名在后50%的人,我丧失了自行组队的权利,这个是稍稍有点不服气的(不过那作业确实做的不行哈哈)。但是如果让我选,我十有八九会选择那些跟我经常在一起组队的同学,这当然是还挺好的,只不过减少了跟其他没怎么接触过的同学交流的机会;但是随机被分配也会增大跟组员们合不来的可能性,反正都是有利有弊嘛。现在来看,我还算幸运的,在这个组里,利是大于弊的。

我跟我们的组长也是第一次接触(虽然我们已经做同班同学两三年了),但是我还是第一次见到主动担起组长职务的人(可能是我见识浅陋了),之前我组过的所有小组的组长都是抽签决定的。

他很认真,有耐心,每次任务都安排得很清楚,每次都有详细记录,把飞书玩得明明白白的,物证如下:

下面也是:

人证也有哦:

很多时候,组员的态度取决于组长的态度。组长积极负责,组员自然也差不了。(嗯嗯,是这样)

这次项目持续时间很久,一个半月左右,这搁谁能撑得住啊,就算一开始充满热情也会被时间无情地磨灭,不过好在大家都坚持了下来,虽然都是硬抗的 hhh……

从前面的开发经历不难看出,我做的工作很少,不是依靠AI就是依靠搭档。没事,因为,现在,我已经加倍偿还了,这一切的一切都起源于:

真是的,不知道我这个人经不起夸嘛(罒 ω 罒)

我的宗旨是:要当组长就要好好当,(下半句:要摸鱼就要好好摸)

自从当了前端小组长,我的生活be like :

天天在群里说一堆话,但是无人回复,偶尔有一个人回,还是我们老大。。即使是这样我还是不停地在群里说,说,说,(这可能是我遇到的最大的困难了,)

等等,可能还有更难的,原型设计的时候还算好,给大家安排的任务基本都能完成,但是到了前端开发这里,大家给我的感觉就是:心有余而力不足。

也许他们一直在尝试,可能也熬了不少夜。但是站在我的角度来看,他们不回我群里的消息,甚至有些私发消息也不回,到了我定的deadline时发给我一堆没有实现的东西,我就很容易认为,他们在偷懒。

我为了尽量减少矛盾,自己把他们的任务都重新做了一遍(也挺感谢的,我的能力也因此提升),很累不说,这也是不妥的做法。老师也说过自己一个人把活都干完的组长不是好组长,他也许有很强的工作能力,但是几乎没有组织和管理的能力,而组织管理能力恰恰是组长最应该具备的。

关于这一点我们老大就做的很好,不管怎样他都不急,永远那么温柔又耐心:

再看看我的语气:

果然,他是鼓励,我是命令,的确,这方面我还有很大的提升空间。

但其实老大也很心累啊,他在博客里也坦白了(被我发现了哈哈):

开发过程不管遇到什么难搞的问题,他永远只有一句话:

嗯哼~ 我们组长棒极了~

🥰“养食记”的成长日记

第一次开会的时候确定了选题,灵感来源于我们老大说他天天最大的烦恼就是不知道今天吃什么,所以想做一个关于饮食推荐的小程序。

后来慢慢进化:饮食推荐-->健康饮食推荐-->个性化健康饮食推荐

所以我们的杀手级功能就是:根据用户真实的身体状况来进行针对性的饮食推荐。后面我们也的的确确实现了这一点,很棒很棒!

接下来是名字的确定:

紧接着logo的确定:

最后就是漫长的设计和开发过程:原型设计,概要设计,Alpha冲刺,Beta冲刺。。。

这里也用一张图来展示我们大概的界面(有点乱糟糟的,别介意哈):

每完成一个步骤都要在周六的实践课上进行汇报,虽然不是我汇报,那我也累,累,累呢。

到了后期就是不停地编码,然后整合,再是编码,再整合……前前后后不知道有多少个版本,反正我的桌面都要被铺满了。

时间紧迫的时候,本来会听的课也不听了,直接拿着电脑在老师眼皮子底下赶进度(当然不止我一个人这样做,都是被迫的)。

还记得Beta冲刺汇报的前一天晚上,我一直忙着不停地整合,黄同学也在帮我整合(听说他都快崩溃了,因为那些发给他的界面很多都没有实现,,哎!这应该怪谁呢?我觉得要怪就怪不应该有这个作业吧),然后组长一直等着我们整合好的版本做PPT呢哈哈,结果还是等到早上才开始做,他那天晚上还难得地早睡了,为了第二天早起做PPT哈哈哈!当时挺急的,我现在想起来只想笑 ~

当我们的小程序部署完之后,才意味着它真正的完成了。(哦对,我忘记了,还有很多小功能只是摆设没有实现呢!不过算了,已经很好了。没事没事,知足知足。)

以下是我们的小程序码(欢迎大家来体验哦!):

🥳我们是---银河护胃队

我们的口号是:美食不将就!健康不妥协!

大家在一次次的作业经历中熟悉了彼此,之前组长也有心把咱的经历总结在他的一篇博客里了:https://www.cnblogs.com/starryship/p/18548506

Alpha冲刺时老师有要求我们以vlog的形式记录我们的工作日常,我觉得这很好,所以坚决不记流水账,现在又多了个美好的回忆。

下面截几张欢乐的动图(都是拥有有趣灵魂的人啊哈哈!):

最后附上两张全员合照:

一张是白天:

一张是黑夜:

代表我们日日夜夜为了同一目标而努力。

总结:本次作业一共写了6/7/8000行左右?(不想仔细算了),耗费时长:一个半月

4. 我在软工上消耗了多少生命

🌱各次作业

作业 花费时间
第一次个人作业 1天
第二次个人作业 3天
第一次结对作业 4天
第二次结对作业 5天
第一次团队作业 7天
第二次团队作业 7天
现场编程作业 半天
团队作业Alpha冲刺 14天
团队作业Beta冲刺 7天

🌴软工课程

累计时间 实际周均时间 预计周均时间
>345h >25h 20h

二. 这世界总有人在忙忙碌碌寻宝藏~

🧠有啥经验可总结的

个人编程:

一个人编程的好处在于没有团队协作的沟通成本,咱可以自由选择技术工具,自行设计界面并实现功能;但是,同时也缺少了更多开发者的视角和反馈。如果个人能力不够的话(比如当时我),就只能依靠AIGC了,那么个人参与度就大大↓↓↓。

结对编程:

老师之前好像也说过一人负责编写代码,另一人负责审查。当遇到难题时,两人可以共同讨论解决方案。我觉得不太适合咱们这种情况,毕竟两个人都不够专业,这样的效率太低下了,而且审查的人很容易摸鱼。所以我们两个人做小程序时就是都有编程,每人负责一部分界面,遇到问题就问gpt或者一起讨论。

现场编程:

说是现场编程可以提高编程速度和压力承受能力,但是,额,我们当时在现场做一个记账小程序时可能稍稍有点混乱,与其说是提高速度和承压能力,不如说是考验吧,大家的火候都还不够呢!如果平时不是经常自己编程的话(注意是自己编程,而不是借助外力),应该是很难做到的,不知道其他小组有没有做出来的(不是找的开源代码),反正咱是没做出来,不过没关系啦!

团队项目实践:

这个!嗯~ 好的领导者真的真的很重要!团队项目实践强调团队协作、任务分配和项目管理。咱组长很优秀,做的很好,我都说累了~ 其次,积极配合的组员也是极其重要的!这一点我深有体会,不想说了。实践中我们团队成员分别负责前端、后端、数据库和测试等不同部分,组长通过定期的会议和飞书等工具来协调工作,确保各部分之间的无缝集成。在项目过程中,如果遇到了技术难题和进度延误,大家都会及时沟通,最后才得到了一份不错的成果。

🚀我不能没有新技术工具的支持

cursor:

这是我第一次开发小游戏的时候使用的编程工具,前面也说了我当时用它生成了99.999999%的代码,这就直接体现出它的一个优点:能够根据用户的输入或需求自动生成高质量的代码(利用先进的自然语言处理和深度学习算法)。初次之外,Cursor还能对已有代码进行优化和解释,我就是先生成一个基本功能的游戏框架,然后进行更多功能的添加和优化,真的很方便!

墨刀:

几次开发都有用到的原型设计的工具,里面有很多模版,基本都能满足需求,就是进行协作的功能需要收费,记得结对作业时就是我搭档一个人进行原型设计的,我可能是后来进行的些许的调整;而团队项目时我是有买可以协作的账号,毕竟这个量可不能一个人做啊!目前没有尝试过其他原型设计的工具,因为就这个已经挺好的了,挺简单的(跟编程相比)。

微信开发者工具:

这是在结对编程时使用的开发工具,怎么说呢,确实是比较容易上手,它就是每个界面分成三个文件进行编辑:wxml,wxss和js(还有json,这个没怎么用),这样可能不会容易乱。但是就是体验感不是很好,每次编译都卡半天加载不出来,只好关掉重开,而且当时本来就时间紧急,它还整这一出,有点气人啊[○・`Д´・ ○]!!所以后来就没有再用它了。

HBuilder X:

在团队作业的时候舍弃了微信开发者工具,选择了这个全新的开发工具,幸好我们小组有同学之前使用过,在张同学等人的帮助下我很快就可以熟练操作了,确实比那啥要好用一点,后面有其他的开发任务我都是使用的这个。

ChatGPT:

这个!从第一次结对作业开始就一直参与我的编程工作,从未缺席!美中不足就是它也是要收费的。我周围的同学也是几乎都借助它来进行编程,可能经常使用会让我们本身的编程能力下降,但是,科技,不就是为人所用才存在的嘛,,反正我现在是完完全全离不开~

Github:

其实我可能从大一就有接触这个了,或者是类似的(比如Gitee),应该还是用得少才导致我不够熟练吧。这上面有很多开源代码可以直接拿过来运行(这是我比较喜欢的地方),在这里我主要是在与队友合作的时候有用到(尽管用得一团乱),但是我估计以后的学习和工作中都能使用到它,所以,再练练~~

三. 难~忘~今~宵~ 难忘今宵~

🙉印象最深的答辩吗?

我的话印象最深的就是最后关于Beta冲刺的答辩,不知道是不是因为时间离得比较近,所以我还没有把它忘记,只知道那次我们是要正式展示小程序的功能。

前面都跟平时没什么两样,就是组长跟大家介绍我们小程序的相关情况,虽然没有什么人在听,不过老师和助教有在听就行了。我当时坐在组长旁边,因为我作为最后进行整合的人,比较清楚小程序有哪些bug,可以及时提醒组长(哪些功能还没有实现之类的),防止给同学试用的时候出现尴尬的情况 ~

说了这么多都是铺垫,我主要是想说后面,在老师对我们进行问答的环节时提了一个比较不好答的问题(具体是什么我忘了),正当我思考该怎么应对时,组长说,这个得问咱们的技术人员,而老师似乎不打算放过我们,直接大声喊:“哪一个是技术人员?”就在这时刘同学挺身而出,直接冲向组长这边,操作着电脑给老师进行解答;结果老师还是不满意,继续连环提问。突然地,黄同学又冲了上来,把我都吓了一跳(本来以为他没来上课的),老师似乎也挺出乎意料的哈哈!小组成员们接二连三地站出来,共同应对老师提出的难题,这真的是我眼中一个小组该有的样子,的确是记忆深刻,不是因为时间隔得短才没忘。

有点可惜,要是当时能把那个场景录下来就好了,现在也只能把它留在我的脑海里了~

下面放一张Alpha冲刺时录的答辩现场哈哈~

👻我最想感谢的人居然是!!

我!自!己!

为什么呢,首先,如果不是我拥有极其顽强的生命力,肯定就看不到美好的明天了 ~

我是如此的无私,拿我最珍贵的东西去冒险---我的生命。每次熬夜赶工,都是做好了赌上了性命的觉悟啊!!!

不过呢,我还是主张--非必要不熬夜,不能仗着身体年轻就肆无忌惮,嗯嗯!

其次,感谢我的搭档和伙伴们,能够毫无保留地把他们知道的东西教给我;也是他们用实际行动激励了我,看到他们如此认真对待咱们的项目,我竟(短暂性地)克服了懒惰,是这样没错。

最后,感谢老师吧,布置作业也挺辛苦的,每次都是长篇大论的要求,我都是从中一点一点地提取有效信息。没有老师,就没有作业;没有作业,就没有小组;没有小组,就没有矛盾;没有矛盾,我就会很快乐……不对不对,,,总而言之,谢谢老师!!!好的!!感言发表到此结束!!(掌声 ~)

posted @ 2024-12-17 16:16  bushiwanglujie  阅读(24)  评论(0编辑  收藏  举报