102301241 冯德衍 软工总结
一、学期回顾
1.1 回顾我对于软件工程课程的想象
学期初,我对软件工程课程的想象停留在“系统化学习编程开发”的层面——以为会重点讲解高深的技术框架,或是复杂的代码编写技巧,期待能通过课程快速提升自己的编码能力,掌握几款主流开发工具的使用,为后续职业发展打下基础。
如今回望,课程在“实战能力”和“协作思维”的培养上完全超出了我的预期。我不仅学会了代码编写,更系统掌握了从需求分析、原型设计,到模块开发、测试部署的完整软件开发流程,深刻理解了“软件工程”并非单纯的“写代码”,而是涵盖流程规范、团队协作、问题解决的综合学科。在团队项目中,我们通过一次次讨论、迭代,将抽象的需求转化为可运行的产品,这种“从0到1”的落地体验,是独自编程从未有过的。
但在部分方面仍存在不足。一方面,我原本期待能深入钻研某一技术方向(如后端接口优化、前端交互设计),但由于项目需要兼顾全流程推进,技术深度打磨不够,很多知识点仅停留在“能用”层面,未能达到“精通”;另一方面,对软件工程理论的结合度不足,初期编写代码时,常忽略注释规范、版本控制逻辑等基础要求,直到后期遇到代码冲突、维护困难时,才深刻意识到理论知识的重要性,这也成为了我后续需要弥补的短板。
1.2 回顾我在这门课程中的投入与产出
在软工实践课程中,我累计编写了约2300行代码,涵盖项目的核心功能模块开发、接口调试及部分测试用例编写。
在团队项目《智能旅游助手》中,我承担的角色是“功能模块开发+测试辅助”。主要负责用户行程规划模块、数据统计展示模块的代码编写,同时配合前端同学进行接口联调,协助测试同学梳理测试用例,排查功能异常问题。
各次作业花费时间统计如下:
| 作业 | 花费时间 |
|---|---|
| 第一次团队作业 | 8小时 |
| 第二次团队作业 | 12小时 |
| 第一次团队项目作业 | 20小时 |
| 第二次团队项目作业 | 25小时 |
| 第三次团队项目作业 | 30小时 |
| 第四次团队项目作业 | 22小时 |
在软件工程课程上的时间投入统计:
| 累计时间 | 实际周均时间 | 预计周均时间 |
|---|---|---|
| 150小时 | 12.5小时 | 8小时 |
1.3 令我印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?
令我印象最深刻的是第三次团队项目作业。这次作业要求完成项目核心功能的开发与整合,我负责的是用户旅行规划模块的后端。在整合阶段,我负责的模块与前端同学的页面渲染逻辑以及推荐模块的接口调用出现了严重冲突 —— 我设计的行程数据结构与前端预期的格式不匹配,导致页面无法正确展示规划结果,同时推荐模块调用我提供的接口时频繁出现参数错误,距离提交截止仅剩 2 天,核心功能陷入瘫痪,整个团队都倍感压力。
为了推进作业进度,我们立刻组织线上会议,我先详细讲解了旅行规划模块的后端逻辑、数据模型设计思路以及接口定义文档。前端同学提出了页面渲染时遇到的字段缺失、格式不统一等问题,推荐模块的同学也指出了接口参数传递中的歧义。经过讨论,我们重新梳理了数据流转流程,我根据前端需求调整了行程数据的 JSON 结构,补充了缺失字段,并与推荐模块同学共同定义了更清晰的接口参数规范。随后我连夜修改代码、更新接口文档,前端和推荐模块同学同步进行联调测试,最终在截止前解决了所有冲突,成功完成了核心功能的整合。
这次作业让我印象深刻,不仅因为它的挑战性,更因为它让我深刻认识到后端开发并非孤立工作:清晰的接口设计和文档是模块间协作的基础,主动沟通、换位思考才能高效解决跨模块问题。这次经历也让我养成了 “开发前先与相关模块同学对齐接口规范”“设计数据结构时充分考虑前端渲染需求” 的习惯,这些经验对我后续的后端开发工作帮助很大。
二、总结收获
2.1 展开说说我的软工实践故事
这次软工实践对我而言,是一次从 "学生" 到 "准工程师" 思维转变的完整蜕变。我收获的不仅仅是技术,更是一套解决问题的方法论和团队协作的宝贵经验。
-
需求分析与原型设计:从 "拍脑袋" 到 "用户视角"在项目初期,我们对用户需求的理解非常模糊,仅凭想象就开始构思功能。通过该课程,我们学会了通过绘制用户故事地图、使用 Figma 进行低保真原型设计,将抽象的需求具象化。这个过程让我明白,好的产品始于对用户的深刻洞察,而不是开发者的自我陶醉。例如,我们最初设计的行程规划页面包含了很多 "酷炫" 但冗余的动画,通过原型评审,我们意识到简洁高效才是用户真正需要的,最终果断进行了简化。
-
版本控制与代码规范:从 "单兵作战" 到 "团队协作"正如我在回顾中提到的,我最初对 Git 的使用非常随意,导致了严重的代码冲突。这次经历让我痛定思痛,系统学习了 Git 的分支管理策略(如 Git Flow)、提交规范(如 Conventional Commits)和代码审查(Code Review)流程。我们约定,每个新功能都在独立的分支上开发,完成后通过 Pull Request 提交,由至少一名队友审查通过后才能合并到主分支。这不仅解决了冲突问题,更让代码质量有了质的飞跃。
-
测试驱动开发(TDD):从 "事后补救" 到 "事前预防"在项目后期,一个小小的修改就可能导致其他模块功能异常,这让我们疲于奔命。我们开始尝试编写单元测试和集成测试,虽然初期投入了额外的时间,但从长远来看,这大大提高了代码的健壮性和可维护性。当我们能够自信地说 "我们的代码有 90% 的测试覆盖率" 时,那种成就感是无与伦比的。
2.2 介绍我学习到的新技术或生产力工具以及它们给我带来的帮助
在这次实践中,我接触并掌握了许多能显著提升开发效率的工具和技术:
-
Git & GitHub:从最初的git add .和git commit -m "update",到熟练使用git branch、git merge、git rebase和解决复杂冲突,Git 已经成为我日常开发中不可或缺的一部分。它让团队协作变得有序和高效。
-
Docker:学习了如何将应用程序及其依赖项打包成标准化的容器。这解决了 "在我电脑上能跑" 的难题,确保了开发环境、测试环境和生产环境的一致性,极大地简化了部署流程。
-
Postman:用于 API 的设计、测试和文档化。它让我能够独立地调试自己编写的接口,而不必总是麻烦前端同学配合,提高了开发效率。
-
Jira:用于项目管理和任务跟踪。我们用它来创建用户故事、划分任务、跟踪进度和管理缺陷。它提供了一个清晰的可视化看板,让每个人都能了解项目的整体状态和自己的职责。
2.3 技术之外,这门课程还给我带来的提升
这门课程对我的提升是全方位的,很多收获甚至超越了技术本身:
-
沟通与表达能力:从最初在团队会议上不敢发言,到后来能够清晰地阐述自己的技术方案、在答辩时从容地回答评委的问题,我的沟通能力得到了极大锻炼。我明白了,作为一名工程师,清晰地表达自己的想法和倾听他人的意见同样重要。
-
问题解决与抗压能力:项目开发过程中,我们遇到了无数的技术难题和团队矛盾。每一次解决问题的过程,都是一次成长。特别是在第三次作业的紧急关头,我学会了如何在巨大的压力下保持冷静,分解问题,并与团队成员高效协作,共同寻找解决方案。
-
责任感与主人翁意识:当我负责的行程规划模块出现问题时,我不再是逃避或推诿,而是主动承担责任,深入排查。我意识到,在一个团队项目中,每个人的工作都不是孤立的,都直接影响着整个项目的成败。这种责任感的建立,对我未来的职业发展至关重要。
2.4 我想记录的话
如果说这学期有什么遗憾,那就是我们对技术的探索还不够深入。为了赶进度,很多地方都采用了 "能用就行" 的方案,而没有去追求更优的性能和更优雅的代码结构。这也为我未来的学习指明了方向:在掌握了软件工程的基本流程后,我需要在某一两个技术方向上进行更深入的钻研。
给未来的学弟学妹们一句鼓励的话:"不要害怕犯错,每一次错误都是一次宝贵的学习机会。大胆去尝试,积极去沟通,你会在这个过程中收获远超想象的成长。"
三、致谢
一个学期的软工实践之旅,充满了挑战,但也充满了温暖。我想借此机会,向所有帮助过我的人表达最诚挚的感谢。
首先,我要感谢我们的吴老师。从项目的选题、需求分析,到每一次作业的评审和答辩,他都给予了我们耐心细致的指导。当我们在技术上遇到瓶颈时,他总能一针见血地指出问题所在,并引导我们找到解决思路。
其次,我要感谢我的团队成员们。是你们的信任、支持和无私的帮助,让我能够顺利完成自己的工作。我们一起熬夜改 bug,一起为解决一个难题而欢呼,一起在答辩前反复打磨演示方案,这些共同奋斗的日子,将是我大学生涯中最宝贵的回忆。
最后,我要感谢课程组的老师们。感谢你们精心设计的课程内容和实践项目,让我们能够将理论知识应用于实践。这门课程不仅教会了我如何开发软件,更教会了我如何成为一名合格的软件工程师。
感谢这学期所有的遇见,轻舟已过万重山,前路漫漫亦灿灿。

浙公网安备 33010602011771号