总结

啊队队队-学期总结

一、学期回顾

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

在学期开始前,我对软件工程课程的想象是:这是一门教授软件开发流程和方法的课程,会学习到如何将一个想法转化为可运行的软件产品。我期待能够学习到团队协作开发的经验,掌握实际项目开发的流程和工具,以及如何解决开发过程中遇到的各种问题。

经过一个学期的学习,我发现课程比想象中更全面和深入。我们不仅学习了理论知识,还通过团队项目实践了从需求分析、设计、开发到测试和部署的完整流程。作为数据库负责人,我深入参与了数据模型设计、数据库实现、性能优化和数据安全保障等工作,并使用 Flask + DBUtils 搭建后端数据访问层,体会到数据层在整个系统中的核心支撑作用。

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

在软工实践课程当中,我编写了约 2000 行代码,主要参与 Old Friend 老友助手 项目的数据库设计与 Flask 数据接口实现,并配合前端和微信开发者工具完成联调。负责的模块包括:

  • 好友信息表、聚会记录表、相册表、留言表等核心表结构设计
  • 使用 Flask 构建 RESTful API 提供数据增删改查服务
  • 使用 DBUtils 实现数据库连接池管理,提升并发访问性能与稳定性
  • 数据库索引优化与查询性能调优
  • 与前端(微信开发者工具开发的小程序)进行接口联调,验证数据交互的正确性

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

  • 第一次团队作业:8 小时
  • 第二次团队作业:10 小时
  • 第一次团队项目作业:15 小时
  • 第二次团队项目作业:20 小时
  • 第三次团队项目作业:25 小时
  • 第四次团队项目作业:30 小时

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

  • 累计时间:108 小时
  • 实际周均时间:10.8 小时
  • 预计周均时间:8 小时

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

令我印象最深刻的是第三次团队项目作业的答辩。我们展示了 Old Friend 老友助手 的核心功能,包括好友信息管理、聚会活动记录、相册共享与留言互动等。

印象深刻的原因:

  1. 在数据库与后端方面,我们使用 Flask + DBUtils 实现了稳定的连接池管理,解决了高并发访问下的数据库连接瓶颈问题,并在微信开发者工具模拟的不同网络环境下保证了数据加载速度和准确性。
  2. 答辩中评委老师对我们的数据模型设计接口响应优化给予了肯定,并建议增加历史聚会数据的归档与清理机制,这为我们后续数据库维护提供了改进方向。

二、总结收获

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

在 Old Friend 老友助手项目中,我作为数据库负责人,经历了完整的数据层开发流程:

  • 需求分析阶段:与团队讨论业务数据需求,明确好友信息、聚会记录、相册、留言等核心数据实体及关系。
  • 设计阶段:绘制 ER 图,设计表结构、主键/外键约束、索引方案;考虑分表与冷热数据分离以应对未来数据增长。
  • 开发阶段
    • 使用 MySQL 实现表结构,编写建表脚本与初始化数据。
    • 使用 Flask 构建轻量级 Web 服务,定义 RESTful API(如 /api/friend, /api/event, /api/album, /api/message)。
    • 引入 DBUtilsPooledDB 来管理数据库连接池,避免频繁创建/关闭连接的开销,提高并发处理能力。
    • 与后端业务逻辑配合,优化复杂查询(如多表 JOIN 查询某次聚会的参与好友与相册),并通过 EXPLAIN 分析 SQL 执行计划进行索引调整。
  • 测试阶段:与前端同学配合,在 微信开发者工具 中测试小程序端数据渲染是否正确,修复接口字段缺失、数据类型不匹配等问题。
  • 部署阶段:将 Flask 应用部署到云服务器,配合 Nginx 反向代理,保证线上数据服务的稳定运行。

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

  • Flask:轻量级 Python Web 框架,快速构建 RESTful API,路由与视图函数清晰易维护,让我能专注于数据接口的实现与调试。
  • DBUtils:数据库连接池管理工具,显著减少连接建立的开销,提高并发访问性能;支持连接复用与健康检查,提升系统稳定性。
  • MySQL:关系型数据库,可靠存储结构化数据,支持事务与复杂查询,为业务功能提供坚实的数据支撑。
  • Redis(配合缓存):缓存热点数据(如常用好友信息),减少数据库查询压力,提高响应速度。
  • 微信开发者工具:小程序开发调试利器,模拟多种机型与网络环境,帮助验证接口返回数据在前端的渲染效果。
  • Git:版本控制与团队协作,确保数据库脚本与 API 代码的变更可追溯、可回滚。

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

  • 团队协作能力:与前端、后端、产品同学密切配合,理解接口契约与数据流设计的重要性。
  • 问题解决能力:在 Flask 与 DBUtils 集成过程中,解决了连接池配置不当导致的“数据库连接耗尽”问题;通过分析 SQL 慢查询优化了聚会记录列表加载速度。
  • 文档编写能力:编写数据库设计文档、API 数据字典,让团队其他成员能快速理解数据结构与调用方式。
  • 时间管理能力:在多轮迭代中合理分配数据库优化与接口联调时间,保证项目进度。
  • 性能与安全意识:学会通过索引优化、连接池调参、SQL 注入防护等手段提升系统安全性与性能。

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

这学期最大的收获是掌握了 Flask + DBUtils 在真实项目中的数据服务能力,也理解了数据库设计不只是建表,还要考虑查询性能、并发支持和数据安全。
最有成就感的瞬间是看到小程序端在微信开发者工具里流畅展示我设计的聚会记录与相册数据,并且高并发测试时接口依然稳定。
最遗憾的是时间有限,没能实现历史聚会数据的自动归档与清理功能,希望以后能进一步完善。
给未来 Z 班的学弟学妹:数据库是系统的基石,打好 SQL 与连接池管理的功底,会让你的后端服务又快又稳。加油!

三、致谢

一个学期过去了,我特别想要感谢的人有很多,包括我的团队成员、TA 和老师。

首先,感谢我的团队成员。项目中我负责数据库与 Flask 接口,大家在我调试连接池和 SQL 优化时给予了很多配合与建议,尤其是前端同学在微信开发者工具中快速反馈数据渲染问题,让我们的联调效率大大提高。

其次,感谢我们的 TA。在数据库设计评审和接口规范制定上给了很多建设性意见,帮我们避免了后期大规模改动。

最后,感谢我们的老师。课堂上讲解的软件工程流程与数据库设计原则,让我能系统性地完成从需求到落地的全过程。

这学期的软工实践之旅让我收获满满,我会带着学到的数据库优化与 Flask 开发经验,继续在技术的道路上前进!

posted on 2025-12-24 22:56  102301539陈佳铭  阅读(0)  评论(0)    收藏  举报

导航