软工总结

软工总结

对于软件工程课程的想象

在最初看到这个与某专业重名的课程名时就隐隐猜到这门课绝对不简单,事实也正是如此。
起初我是希望能够摆脱ai的束缚,尽量多自己写代码来提升自己的综合水平,但一学期下来仍然是让ai担任了更多的工作。。。
但值得庆幸的是,通过这一学期的学习和实践,我初步的理解和掌握了一个软件从设计到开发到部署运维的整体过程,也算是收益匪浅

投入与产出

在软工实践课程当中我编写了大约7000行代码。
在团队项目中我参与了 剑来 的设计与开发,我在其中担任后端开发的角色。
软工实践的各次作业分别花费的时间:

  • 软件实践的各次作业分别花费的时间:
作业 花费时间
第一次个人作业 15小时
第二次个人作业 28小时
第一次结对作业 35小时
第二次结对作业 43小时
第一次团队作业 40小时
第二次团队作业 36小时
现场编程作业 3小时
团队作业beta冲刺 50小时
  • 在软件工程课程上花费的时间:
累计时间 实际周均时间 预计周均时间
250(h) 22(h) 18(h)

印象最深刻的作业

让我认为印象最深刻的是个人作业--羊了个羊
第一次真正意义上的去开发一个完整的软件让我非常的兴奋,也算是第一次去做一个应用层的内容,有一种终于可以尝试做一些真正有意义的工作的感觉。
我写的是小游戏“投喂精灵”
虽然是第一次实践,但是好在游戏本身的逻辑并不算太过复杂,在ai的帮助下很快就确定了大致的方向
但等真的实际编写起来,虽然有ai的帮助(GPT-4O),但是在代码量达到一定程度时,ai犯错、丢失记忆的概率也会成倍的上升,
可以说到最后的整合时已经几乎没有办法依靠ai了同时在前中期编程的过程中需要保持高度的清醒,一定要清晰的明白自己在做什么,确定好程序的逻辑,
ai在编程时经常会随机的提出一些非常建设性的建议,
这些建议有时可能是绝妙的神来之笔,有时也可能是让代码变成屎山的搅屎棍。一定不能被ai牵着鼻子走。
在最初我显然没能领悟这些,完全成为了ai的奴隶,直到程序成为我在也看不懂也改不动的屎山才幡然醒悟
好在时间较为充沛,我也从来不缺乏从头再来的勇气,最终有惊无险的完成了这次任务
唯一有些遗憾的是我最终没能实现“提示”的功能,起初我有自己尝试思考,也有让ai帮我思考,但最终的算法都不太理想,“提示”功能肯定是需要即时的进行响应才算成功
然而我和ai思考出来的算法的时间复杂度都不符合要求,后来我又去请教了几个打acm的同学,他们也未能实现理想的算法,如果事情到此为止,其实我也没有什么可遗憾的,
毕竟专门打算法竞赛的人都无法实现的功能,我没能实现好像也没什么。但就在作业提交前还有几个小时的时候,我忽然发现自己陷入了误区,
羊了个羊的设定是在各个位置随机生成图案
我是希望在这个基础上通过某种算法寻找当下可行的消除策略
然而实际上.....真的一定要在随机位置生成图案吗?
随机生成图案的目的在本质上是为了提升玩家的体验,增加游戏的可玩性,所以追本溯源,其实只需要让玩家认为是随机的就可以了
也就是设定一些规律,一些玩家无法一眼察觉的规律来生成图案
但十分可惜,我醒悟的太晚了。。。。
奇迹没有发生,我没能在有限的两三个小时里完成这个功能,后续也因为其他的课程任务一直搁置了。(如果寒假有空应该会完善)

软工实践故事

关于结对编程
头一次跟别人合作编程,感触最深的就是协作的问题了,比较幸运的是
我跟我的搭档 朱佳杰 算是比较有默契的,在设计和开发的过程中观点是比较一致的
我们面临的最大的问题实际上来源于对工具使用的不熟练,特别是原型设计时用的 墨刀
墨刀的协作模式需要收费。。。我们在最初并没有了解清楚就使用分工的方式完成了原型设计,
到完成后要合并时才发现问题。。最终在一台电脑上完成了剩余的内容(真·结对编程)
还有开发时用的 微信开发者工具
同样的内容,换一台电脑就莫名的行不通,还有微信开发者工具的云函数也是让人无力吐槽
最终用flask编写了一个本地运行的后端框架才解决了问题。

关于团队编程
团队编程是十个人一同进行协作,原本会有些担忧,毕竟十个人虽然人力资源足够,但是如果不能进行良好的任务规划和协作可能会造成1+1<2的结果
但万幸的是小组的成员都出乎意料的靠谱,协作进行的有条不紊,虽然代码量跟前两个任务相比增加了许多,但是压力反而减少了很多
我在团队里是担任后端开发的角色,我们是使用了flask的框架,使用蓝图来模块化协作。开发的过程并不算十分顺利,有时会出现数据库、服务器崩掉的情况,以及
开发到某部分发现有些功能直接会有冲突,需要临时修改方案等情况,但最终经过艰苦的奋斗我们还是完成了这个游戏---剑来!

学习到的新技术或生产力工具

flask框架---其实严格来说不算新技术,之前在数据采集课有接触过但涉猎不深,这次软工时间让我对flask有了更深的理解
Git指令以及GitHub---以前有浅尝辄止的了解过Git,包括但不限于创建新分支、上传代码等,这次让我对Git的操作更加熟练了
Lightly---一个在线协同开发的工具,非常的好用!!!
ChatGPT---我最尊贵的恩师,致以最崇高的敬意~

技术之外的提升

与伙伴协作的能力
时间管理能力
任务规划与自律执行

想说的

希望Ai统治世界的时候能对我网开一面

致谢

非常感谢团队协作的伙伴们坚苦卓绝的付出与努力,相比与整个大学生涯,我们共同开发的时间也许很短暂,但剑来的这份光荣会持续很久~

posted @ 2024-12-28 22:31  Victor·bayim  阅读(17)  评论(0)    收藏  举报