翻过入门的第一座小山
1.1 回顾对软件工程课程的想象
在这学期初,课程刚开始时,我对这门课程的期待说多也不多,因为课程是“软件工程”,所以希望能从这门课中学习到有关实际搭建项目比如做app、做小程序、做web等相关的技术,希望能从实际的操作和实践中学习到一些东西。不过从结果来看软件工程对我的影响确实挺大的。
学期刚开始,我对未来的规划是努力保研,争取每门课程尽量取得较高的绩点。但是经过一个学期的学习,包括其他课程的学习以及对研究生课程的相关了解之后我发现我并不喜欢那样的学习。而在软工的课设当中,虽然经常很痛苦地进行debug、赶ddl,我确实也从和大家一起完成的项目当中得到了成就感,也更加明白自己更擅长实操构建项目而非理论研究,因此我渐渐希望能够更多地增加就业可能会使用到的有关知识与技术,而将时间更好地分配
1.2 学到的知识和技术以及展望
在软件工程的课程当中,我或许从实践课学到的知识更多。
我从一个构建项目的小白、一个只会在命令窗口执行程序并产出的后端新手,到了解了整个开发的大致流程,都离不开软工的每一次实践。我主要负责后端,有时候为了debug我们会在alpha冲刺和beta冲刺计划的会议之外再自己开一些小会,分工解决某几个功能上出现的问题。这个过程是有趣又困难的,因为有时候很快就能修复好bug,有时候又甚至需要一整天去做。
我了解了开发的大致流程,从实操中学到了我一直拖延着没有去仔细学习的python语言,还更深入了解了python中后端架构的一种——fastapi架构,这似乎是一种比较新的架构。并且利用这个架构,我轻松完成了数据库的作业。软工中得到的知识一下子又在别的地方用上了。
除此之外,为了能够和前端界面进行对接,我还了解了一部分有关于前端代码的知识,虽然只能做到大概了解每个部分大体是做什么的,但在开发环境中,基本已经足够可以和前端的同学做到顺利的对接了。
与此同时,我还了解到了python是如何与数据库进行对接的,以及一般来说数据库和后端连接使用的ORM映射是什么,这些都是我之前在其他专业课没有学习到但其实更贴近实际需要的知识。
在做中学这个方面,我达到了给自己设立的预期,但同时我还有很多的不足。比如我希望能够学习到以java语言为基础的项目搭建,但是因为时间紧任务重我们选择的是更容易理解且包体较多的python语言进行开发。我可能会在后续自己多学习java的Spring和SpringBoot等开发架构,使自己具备的知识和技术更让我在就业中更有竞争力。
1.3 回顾你在这门课程中的投入与产出
-
在软工实践课程当中我大致编写了800行代码(最终代码)
-
在团队项目中我参与了Floramind植悟的设计与开发,在其中所承担的角色是后端整体架构设计以及后端部分智能提醒模块的主要开发和其他一些模块小问题的debug。
-
软工实践的各次作业我分别花费的时间:
| 作业 | 花费时间 |
|---|---|
| 第一次团队作业 | ≈3h |
| 第二次团队作业 | ≈30h |
| 第一次团队项目作业 | ≈10h |
| 第二次团队项目作业 | ≈15h |
| 第三次团队项目作业 | ≈30h |
| 第四次团队项目作业 | ≈15h |
-
在软件工程课程上花费的时间
| 累计时间 | 实际周均时间 | 预计周均时间 |
|---|---|---|
| ≈103h | ≈8.6h | 6h |
1.4 印象最深刻的是作业&答辩?
-
印象最深刻的作业
其实做智能体以及做团队项目都非常印象深刻。
智能体做的时候我对python语言几乎还可以说是熟悉的陌生人的程度,但是在不熟悉的情况下就需要去利用这个语言去构建一个智能体了。对当时的我来说,如果不是在B站找到了一个很详细的教程,应该连一个可以上交的作业的都没办法进行产出。
而我也从那时候意识到我在专业课的基础上似乎也比别人落下了太多脚步。
最深刻的肯定就是alpha冲刺了。
那一次的作业可以说是我们项目平地起高楼(平地起土楼)的一次作业。前后端、数据库的大家其实都不太清楚项目的具体构建是如何做到的,都在摸索、在更合理地利用ai了解我们缺失的知识以及我们做错的地方。同时我也是一口气恶补了十几个小时的python的fastapi架构的网课,就着急忙慌开始进行编程了。
所以我们的团队项目一开始是缺失了很多东西的,好在后来的时间让我们能够对这个项目做一个及时的补充。
-
印象最深刻的答辩
应该是最后一次beta冲刺的答辩。
因为答辩时间刚好和六级考试时间冲突,我只能代替我们组长进行项目的介绍和答辩。好在最后结果还算不错,顺利地把我们的项目讲完了。
二、总结收获
2.1 展开说说你的软工实践故事
-
智能体实践
mcp协议确实是一个方便的结构,但是对于完全没有接触过机器学习以及大语言模型接入的我们来说还是十分有难度的。
且我自身对python语言的掌握程度不高,导致在查询mcp官方文档的代码并加以分析的时候遇到比较多的问题。然而时间有限,我只能在原来有部分python语言编写经验还有c语言和c++语言经验的基础上,遇到不太能理解的部分就马上进行对应的查询和学习,在建构项目的过程中也在弥补我关于python基础的知识。
在完成智能体后端的开发后,在经过前端同学的努力和对接之后得到的结果,以及其他同学在各个方面的努力,有一种团队合作的成就感:D
-
团队项目实践
在第一次的alpha冲刺中,由于时间很紧张,没有办法很好很细致地完全理解代码的各个细节,但是也学到了很多,比如fastAPI的框架,tortoise的ORM映射,前端-后端-数据库的连接等,对于一个项目的构建有了更多的理解。
而在最后阶段中,我学习到了很多的实操技能与代码的相关知识,更多地了解了遇到问题如何debug等方法。 比如,在遇到无法在前端界面进行图片的显示时,我学会了去仔细核对后端反馈给前端的json数据是否有误、其中图片的url是否正确,再到前端调试接口查看返回的url是否准确无误、再进一步查看前端对具体url的渲染。 在调试的过程中,我更加学会了如何与其他成员沟通以达成更好的呈现效果,并对其他成员负责的部分也有了一点了解,对于我原来一点都不了解的前端语言也增加了很多认识,特别是前后端对接的部分。 同时我也意识到了分工合作的重要性,整个项目的工作量非寥寥几人能成功,不仅是项目的前后端代码等实体操作,还有做ppt的、做vlog的同学们花费的时间和精力,每个人都有各自擅长和负责的部分,对于互不了解的模块总是抱着赞叹的心情惊喜地查看对方的成果,这是我在团队中收获到的很有意义和价值的感受。
2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?
-
pycharm
pycharm是我主要进行后端编程时所使用的python编辑器。它的功能很完善,包括可以连接数据库后进行可视化等,大大方便了我们的代码开发过程。
-
cursor
在我们构建mcp架构时,我们使用了cursor作为我们的主要开发平台。cursor的自动补全功能大大提高了我们的开发效率,使得开发难度降低,时间成本也缩减了。
-
gemini3
在编程的过程中,我们自然也少不了ai的辅助,特别是近几年ai开始迅猛发展。所以我个人在编写代码的过程中,会使用gemini进行一定程度的辅助,比如帮我查看我不了解的前端代码、帮我修正有错误的代码、为我解释有关的知识等。利用gemini我更快地学习到了搭建项目的各个过程与具体展开。
2.3 技术之外,这门课程还给你带来了哪些方面的提升?
-
提升了和团队成员沟通协调的能力。在开发过程中,后端不仅要和前端沟通,也需要和数据库设计的部分进行对接,所以沟通是很重要的。在这门课程的实践中,我更多学习到了如何清楚明白地表达自己的需求和意见,锻炼了沟通能力。
-
从长代码中找到需要的代码模块与问题模块的能力,善用检索工具,结合debug信息,准确且快速地找到需要修改的地方。
三、致谢
-
想感谢我们的组长~特别有耐心特别负责任的小姐姐:D,还好有她在统筹分配,平时还那么忙真的特别辛苦
-

浙公网安备 33010602011771号