个人总结
软件工程课程学期总结
一、学期回顾
1.1 课程期待与现实的对比
达到期待的部分:
工程化思维培养:通过完整的项目开发流程,真正理解了需求分析、设计、编码、测试到部署的全过程,这正是我选择这门课程的核心目标
团队协作能力:实际体验了多人协作开发、代码审查、冲突解决的完整流程,超出了我对“团队合作”的想象
现代开发工具链:熟练掌握了Git、CI/CD、项目管理工具等,这些是企业级开发的必备技能
尚存不足的部分:
架构设计深度:由于项目时间限制,在系统架构的深度设计上略显仓促,部分技术决策缺乏充分论证
测试覆盖度:虽然建立了测试流程,但单元测试覆盖率没有达到理想状态,更多停留在功能测试层面
性能优化实践:在实际性能调优和压测方面的实践机会有限
1.2 课程投入与产出
代码量统计:
个人编写代码:约8,500行
代码审查:约12,000行
团队项目参与:
项目名称:TravelMate智能旅行助手
承担角色:后端开发工程师 & 测试人员
主要职责:
设计并实现用户管理、行程规划模块API
搭建项目CI/CD流水线
负责后端单元测试和集成测试
参与系统架构设计讨论
各次作业时间花费:
| 作业 | 花费时间 |
|---|---|
| 第一次团队作业(组队与选题) | 3days |
| 第二次团队作业(需求分析) | 7days |
| 第一次团队项目作业(设计文档)) | 7days |
| 第二次团队项目作业(Alpha版本) | 14days |
| 第三次团队项目作业(Beta版本) | 14days |
| 第四次团队项目作业(最终评审) | 14days |
课程总时间统计:
| 累计时间 | 实际周均时间 | 预计周均时间 |
|---|---|---|
| 90小时 | 18小时 | 15小时 |
实际投入比预期多20%,主要因为技术探索和问题调试
1.3 最印象深刻的一次作业
Beta版本答辩让我印象最为深刻。
原因分析:
真实的压力测试:面对教授和助教的“刁钻”提问,需要即时思考并给出合理的技术方案
技术决策的反思:在答辩中暴露了我们选择MongoDB而非关系型数据库的决策漏洞,促使我们连夜重构部分模块
团队应急能力:演示时突发的API崩溃,团队成员迅速分工定位问题,5分钟内恢复服务
评委的专业反馈:来自企业导师的点评直接指出了我们在缓存设计和数据库连接池配置上的问题,这些是在文档中学习不到的经验
这次答辩不仅是一次展示,更是一场生动的工程实践课,让我深刻理解到“软件工程”不仅仅是写代码,更是做决策、担责任、持续改进的过程。
二、总结收获
2.1 软工实践故事
Alpha阶段的教训: 我们过于追求功能完整,导致代码质量下降。有一次合并分支时,出现了30多个冲突文件,团队花费了整个周末才解决。这让我们意识到每日集成的重要性,后来我们建立了“小步快跑”的开发节奏。
技术债务的偿还: Beta阶段初期,系统响应时间超过5秒。通过性能分析,发现是N+1查询问题。我们进行了以下改进:
引入Redis缓存热点数据
优化数据库索引
实现分页查询
最终将响应时间降到800ms以内。这个过程让我明白:技术债务迟早要还,越早越好。
团队协作的成长: 记得有一次,前端同学误删了重要组件,但因为我们有完善的Git分支策略和代码审查流程,只用了10分钟就从历史提交中恢复。这件事强化了我们对工程规范的信赖。
2.2 学习到的新技术与工具
- Docker容器化技术
帮助:实现了开发、测试、生产环境的一致性,解决了“在我机器上能运行”的问题
应用:使用Docker Compose编排了MySQL、Redis、后端服务 - GitHub Actions CI/CD
帮助:自动化测试和部署,每次提交自动运行测试套件
应用:配置了三条流水线——PR检查、主分支部署、定时性能测试 - 性能监控工具(Prometheus + Grafana)
帮助:实时监控系统健康状态,快速定位性能瓶颈
应用:监控API响应时间、数据库连接数、服务器资源使用率 - API测试工具(Postman + Newman)
帮助:自动化接口测试,确保API变更不会破坏现有功能
应用:建立了包含87个测试用例的集合,集成到CI流程 - 代码质量工具(SonarQube)
帮助:持续检查代码质量,技术债务可视化
应用:设置了质量门禁,代码覆盖率必须>70%才能合并
2.3 技术之外的提升 - 沟通协调能力
学会了如何清晰表达技术方案,用流程图和架构图辅助沟通
掌握了有效会议技巧:会前有议程、会中有记录、会后有行动项 - 项目管理能力
使用燃尽图跟踪进度,及时识别延期风险
学会了任务拆解:将大功能拆分为可在一周内完成的小任务 - 文档撰写能力
从“知道怎么做”到“能写清楚让别人也能做”
掌握了技术文档、API文档、部署手册的不同写作重点 - 抗压与应急能力
线上故障处理流程:监控报警→问题定位→预案执行→复盘总结
学会了在压力下保持冷静,按优先级解决问题 - 批判性思维
面对技术选型时,会多问几个“为什么”
学会了从多个维度(性能、成本、可维护性)评估方案
2.4 如果还有什么想记录的或者想说的,就写在这儿吧!
这门软件工程课程最宝贵的收获,不仅是掌握了PPT制作、剪映剪辑等实用技能,更让我理解了“团队协作”的核心要义——充分的沟通与相互的理解。通过一次次沟通讨论,我们不仅完成了优质的汇报成果,更拉近了组员间的距离。也正是这次经历,让我明确了自己在团队中的定位,找到了工作的价值感。这门课让我明白,软件工程从来不是单个人的战斗,而是团队协同的成果,而良好的沟通则是协同的核心。让我明确了自己对软件工程课程的兴趣,未来希望继续深耕这一领域,将所学的需求分析方法、协作技巧运用到更多实际项目中。
三、致谢
一个学期的软工实践旅程,之所以能顺利走完并收获满满,离不开每一位伙伴的并肩同行与鼎力支持,在此,我想向所有参与其中的老师、同学致以最诚挚的感谢!
首先,我要感谢我的团队成员们。在项目开发过程中,我们一起克服了很多困难,共同完成了TravelMate智能旅游助手项目。特别是在遇到技术难题的时候,大家一起讨论、一起查找资料,最终成功解决了问题。感谢你们的陪伴和支持,让我在这个学期的软件工程学习和实践中收获了很多,还要感谢TA在技术实现上的指导,以及感谢UI设计师提供了精美的设计稿。最后感谢这门课程带来的成长与收获。
浙公网安备 33010602011771号