长沙市网站建设_网站建设公司_网站制作_seo优化
2025/12/24 19:28:55 网站建设 项目流程

一、学期回顾

1.1 回顾你对于软件工程课程的想象

在学期初,我对软件工程课程的想象主要集中在学习系统化的软件开发方法论和掌握团队协作的规范流程。 我期待通过这门课程了解从需求分析到产品上线的完整生命周期,学习如何在实际项目中应用敏捷开发、版本控制等工程实践。现在看来,课程在这些方面完全超出了我的期待——我们不仅学习了理论,更重要的是通过两次完整的项目实践(WeaTrip智能体和植物养护系统)将这些理论付诸实践。特别是从智能体原型到全栈项目的演进过程,让我深刻理解了软件系统从概念验证到产品化的发展路径。

然而,课程也存在一些不足,主要体现在时间安排和资源支持的平衡上。 由于需要同时进行智能体项目和全栈项目,加上频繁的博客作业,团队成员常常面临时间压力,有时不得不牺牲代码质量和设计深度来赶截止日期。此外,虽然我们接触了MCP、FastAPI等现代技术栈,但受限于课程时间和团队经验,对于测试驱动开发、持续集成等更高阶的工程实践涉猎较浅。这种深度与广度的平衡是未来课程设计可以考虑优化的方向。

1.2 回顾你在这门课程中的投入与产出

在软工实践课程当中我累计编写了约1200行代码。 植物养护系统的日记模块约1200行(Python/FastAPI)。

在团队项目中我参与了“WeaTrip天气感知型旅游规划Agent”和“植物养护智能管理系统”两个项目的设计与开发。 在WeaTrip项目中,我主要承担前后端联调联试以及博客的撰写。在植物养护系统中,我是后端模块成员,负责日记模块的全流程开发,包括数据库设计、错误处理优化、接入天气API。

软工实践的各次作业花费时间统计:

作业 花费时间
第一次团队作业(团队组建与选题) 6小时
第二次团队作业(智能体开发) 20小时
第一次团队项目作业(Alpha冲刺) 30小时
第二次团队项目作业(Beta冲刺) 15小时
第三次团队项目作业(冲刺总结) 8小时
第四次团队项目作业(最终答辩) 10小时

在软件工程课程上花费的总时间:

累计时间 实际周均时间 预计周均时间
89小时 约7小时/周 预计6-8小时/周

1.3 令你印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?

最令我印象深刻的是Alpha冲刺阶段,这可以说是一次“魔鬼周”的极限挑战。 我们需要在一个星期内基本实现一个功能完整的Web系统,同时还要应对穿插其中的考试,时间压力前所未有。但正是这种高强度、高密度的实战,让我第一次真实地体验了完整的Web开发流程,收获了远超预期的成长。

这个阶段给我最深的印象是“集体攻关”的氛围和“问题丛生”的现实。 我们后端组的几个成员一起在讨论室里并肩作战,每个人都专注于自己的模块开发,但遇到问题时会立即交流求助。我至今记得那个周四的下午,整个讨论室充满了键盘声和讨论声:“我这个数据库连接一直报错”、“API调用返回404”、“JSON序列化有问题”。虽然各自负责不同模块,但我们遇到的问题却惊人地相似——大多是接口对接、数据格式、依赖配置这些基础但关键的集成问题。

对我来说,最大的挑战来自后端作为“中间层”的定位困境。 我需要先独立测试自己的日记模块,确保基本功能正常;然后要跟前端同学对接API接口;同时还要确保数据库连接稳定。每一个环节都可能出错,而错误往往又相互关联。最典型的一次经历是:我本地测试一切正常,但前端调用时始终返回500错误。我们花了近三个小时排查,从CORS配置到请求头检查,从日志分析到网络抓包,最终发现是一个极其隐蔽的问题——我的FastAPI应用在特定环境下会启动两个实例,导致端口冲突。这种“看似正常实则异常”的问题,只有在实际集成中才会暴露出来。

尽管我没有负责最终的答辩展示,但Alpha冲刺的开发过程本身就是一个深刻的“答辩”——对技术能力、协作能力和抗压能力的全面检验。 我们一直工作到晚上十点多。当最终打通前后端,看到前端界面上成功显示出日记数据时,那种攻克难关的喜悦是无法言喻的。这次经历让我明白,软件开发的真正难度往往不在于编写代码,而在于让不同部分协同工作;不在于个人能力有多强,而在于团队如何互相支持。

二、总结收获

2.1 展开说说你的软工实践故事

在Alpha冲刺的“魔鬼周”我们后端组选择在讨论室里集中开发,这个决定现在看来非常明智。 讨论室成了我们的临时作战室,在这里,我们各自开发负责的模块,但绝不是孤军奋战。我的任务是日记模块的开发,从数据库设计到API实现,从错误处理到性能优化。每当遇到问题时,我不需要自己苦思冥想,只需抬头问一句,就会有同伴一起分析。这种即时的技术交流极大地提高了解决问题的效率。

分开开发带来的最大挑战是模块对接。 作为后端,我需要时对接三个方向:向上要保证自己的程序逻辑正确,横向要与其他后端模块(用户、植物)数据一致,向下要为前端提供稳定的API接口。每个对接环节都充满了“惊喜”——各种各样的报错、404、500、数据库连接失败、数据类型不匹配等等。我们花了大量时间在这些对接问题上。

那个一直待到晚上十点多的夜晚,成为了我软工实践中最温暖的记忆。 当大多数同学已经结束一天的学习,我们小组还在为最后几个对接问题而努力。讨论室里的灯光下,大家脸上虽然带着疲惫,但眼神中充满坚定。有人调试代码,有人查阅文档,有人测试接口。当一个顽固的跨域问题终于解决时,整个小组爆发出小小的欢呼。那一刻,我深刻感受到团队的力量——不是简单的分工合作,而是在困难面前的相互支撑,是在疲惫时刻的相互鼓励。

站立会议的实践让我对敏捷开发有了切身体会。 每天早晨,我们聚在一起,简短地同步进度:“我昨天完成了日记创建接口”、“我遇到了图片上传的权限问题”、“我今天计划完成日记列表的分页功能”。这种仪式感的沟通让我们始终保持在同一频道上,及时发现问题、调整计划。更重要的是,站会给了我们一种“整体感”——每个人不再是独立开发自己的模块,而是共同推进整个项目的进展。当听到其他模块也遇到类似问题时,我们知道这不仅是个人技术问题,更是系统性的工程问题,需要团队一起思考和解决。

这次Alpha冲刺虽然时间紧张、压力巨大,但一整套流程跟下来,我的收获是实实在在的。 我不仅掌握了具体的技术技能,更理解了软件开发的系统性、团队协作的重要性、沟通规范的必要性。那些深夜的调试、反复的对接、团队的讨论,都成为了我软件工程学习中最宝贵的实践经验。这段经历让我明白,软件工程不仅仅是写代码,更是在时间、资源、技术、团队多重约束下解决问题的系统工程。

2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?

1. MCP(Model Context Protocol)框架:在WeaTrip项目中首次接触,它让我理解了现代AI应用如何通过标准化协议将大语言模型与外部工具连接。通过学习MCP,我掌握了如何将天气API封装为模型可调用的工具,这种“模型-工具”协作模式是构建智能体应用的核心范式。

2. FastAPI与Pydantic组合:在植物养护系统中学到,FastAPI的异步特性显著提升了API性能,而Pydantic的数据验证让输入输出处理更加安全和规范。这个组合让我体会到了现代Python Web开发的优雅和高效,特别是自动生成OpenAPI文档的功能极大提高了前后端协作效率。

3. Tortoise ORM:作为异步ORM,它在处理数据库操作时与FastAPI完美配合。通过学习其模型定义、查询优化和事务管理,我掌握了如何在异步环境中高效地进行数据持久化操作,特别是关联查询和分页处理等复杂场景。

4. Git分支工作流与Pull Request评审:课程强制要求的规范Git使用让我养成了良好的版本控制习惯。从最初只会git add/commit/push,到熟练使用功能分支、合并请求和代码评审,这种工程实践让我理解了团队协作中代码质量保障的重要性。

5. VS Code的调试和扩展生态:通过项目的实际需求,我深入学习了VS Code的调试器使用、Python环境配置和各种生产力扩展(如GitLens、Prettier、REST Client),这些工具让开发过程更加高效和可控。

2.3 技术之外,这门课程还给你带来了哪些方面的提升?

1. 系统性思维能力的提升:从最初只关注代码功能实现,到学会从需求分析、架构设计、开发实现、测试验证到部署维护的全流程思考。特别是在植物养护系统的设计中,我学会了如何平衡技术选型、开发成本和未来可扩展性。

2. 团队协作与沟通能力的质变:经历了需求讨论的技术分歧、接口对接的协调困难、时间压力的共同应对,我学会了如何在团队中清晰表达技术观点、如何倾听他人意见、如何在冲突中寻找共识。最宝贵的是理解了“团队目标优先于个人偏好”的协作原则。

3. 时间管理与多任务处理能力:面对多个并行的项目和作业,我不得不学习如何合理分配时间、设置优先级、处理突发任务。通过使用日历规划、任务清单和番茄工作法,我建立了一套适合软件开发节奏的时间管理体系。

4. 文档写作与知识整理能力:频繁的博客作业迫使我养成了及时记录和总结的习惯。从最初把写文档视为负担,到后来发现清晰的技术文档和项目总结不仅有利于团队协作,更是个人技术成长的加速器。

5. 抗压能力与问题解决韧性:还记得在Beta冲刺前夕发现关键Bug时的焦虑,以及在调试复杂问题时屡次碰壁的挫败感。正是这些挑战让我学会了在压力下保持冷静、系统性分析问题、善用资源和团队支持来突破技术难关。

2.4 如果还有什么想记录的或者想说的,就写在这儿吧!

如果用一个词形容这学期的软件工程课程,我会选择“蜕变”。 不仅仅是技术能力的提升,更是思维方式和职业认知的深刻改变。入学时我以为软件工程就是写代码,现在才明白,代码只是冰山一角——海面下是需求分析、架构设计、团队协作、项目管理这一整套复杂的系统工程。在Alpha冲刺之前,我对后端开发的理解还停留在“处理业务逻辑”的层面。但经历了那一周的实战,我看到了后端工程师的真正价值:我们是系统的“中枢神经”,既要保证自身模块的健壮性,又要协调前后端的顺畅对接,还要考虑数据库的性能和扩展性。我发现自己真正享受这种“承上启下”的角色——既需要深入的技术细节把控,又需要宏观的系统思维。我决定未来继续深耕后端技术栈,但会更加关注架构设计和工程管理方向,目标是成为能够把握系统全局、协调团队协作的技术负责人。

三、致谢

一个学期过去了,我想要感谢一个人。

首先是我的项目经理,也是我们的队长YQL。 我至今记得一开始确定分工的时候,因为我当时什么项目都还没有做过,是一个只会写一些算法的软工小白。而我被安排去做MCP的组长和负责调试,我觉得压力挺大的,因为我啥也不懂。队长知道了,就跟我说和我一起负责调试的内容,我觉得很温暖,很大程度上缓解了我的压力。她也是一个很负责任,很优秀的队长。到了后期,我们已经有了一定的学习基础,当我遇到什么问题时,都会想找队长沟通,因为她知道的更多一些,也会耐心的讲,考虑的很全面,给出合适的解决方法,她作为队长会让我觉得很安心。而且她也很幽默,当我们遇到困难的时候,她会说一些好笑的让大家放松一些。

一路走来,风雨兼程。 这一学期的软工实践之旅,有凌晨的代码、有团队的热议、有突破的喜悦、有挫败的反思。每一篇博客都是成长的印记,每一行代码都是思考的结晶。我带着从这门课程中获得的技术能力、工程思维和团队精神,更重要的是带着一群并肩作战的伙伴的信任和支持,继续向前。这不是终点,而是我作为软件工程师职业生涯的真正起点。

落幕不是结束,是下一个舞台的序章。感谢所有同行者,江湖再见,代码常青。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询