学习总结

软件工程实践周总结(2025年3月3日-3月7日)

一、本周学习与实践内容回顾

本周是软件工程课程学习的关键一周,我通过博客记录了完整的学习轨迹和实践心得,主要围绕以下几个核心内容展开:

1. 软件测试与质量保障(3月3日)

  • 系统学习了单元测试的核心概念与JUnit框架的实际应用
  • 实践了测试驱动开发(TDD)方法在项目中的运用
  • 探索了Mockito在模拟对象测试中的使用技巧
  • 分析了代码覆盖率工具JaCoCo的集成与应用场景

2. 敏捷开发方法实践(3月4日)

  • 深入研究了Scrum框架的核心要素与实施流程
  • 创建了个人看板管理开发任务,实践每日站会形式
  • 通过用户故事拆分技术优化了需求分析方法
  • 评估了敏捷度量指标(如燃尽图)对项目管控的价值

3. 软件设计原则应用(3月5日)

  • 实践SOLID原则在Android项目中的具体应用案例
  • 重构了地铁购票APP的部分代码结构
  • 分析了设计模式在解耦组件中的实际效果
  • 探讨了架构清晰度与维护成本的关系

4. 前后端协作开发(3月7日)

  • 实现了Spring Boot与Vue.js的完整交互流程
  • 解决了跨域请求和安全验证等实际问题
  • 优化了RESTful API设计规范
  • 完善了运维管理子系统的文件上传功能

二、技术突破与实践成果

1. 测试驱动开发能力的提升

通过3月3日的实践,我成功将JUnit单元测试覆盖率从最初的35%提升至68%,特别是在地铁购票APP的核心业务逻辑部分建立了完整的测试套件。其中最大的突破是掌握了边界条件测试方法,发现了3处潜在的业务逻辑缺陷。

2. 敏捷实践的真实体验

3月4日开始的敏捷实践让我首次体验了完整的Scrum流程。我们小组通过Trello看板管理任务,将运维管理系统开发拆分为12个用户故事,完成了3个冲刺周期。虽然初期估算不准确,但通过不断调整,最终冲刺速度提高了40%。

3. 设计模式的实际应用

在3月5日的设计原则实践中,我重构了课程管理系统的通知模块,采用观察者模式解耦了消息发送与接收逻辑,使扩展新通知渠道的时间从原来的2小时缩短至30分钟,同时使相关代码的可测试性显著提高。

4. 全栈协作问题解决

3月7日的技术博客记录了前后端联调过程中的关键问题解决方案,特别是文件上传进度显示和水印生成功能的实现。通过优化axios拦截器和Spring Multipart处理,上传成功率从85%提升至99%,同时解决了大文件上传的内存溢出问题。

三、遇到的典型问题与解决方案

  1. 测试隔离问题
    在编写单元测试时,发现测试用例之间存在依赖关系导致随机失败。通过学习使用@BeforeEach和@AfterEach注解,建立了独立的测试环境,使测试结果稳定性达到100%。

  2. 用户故事拆分争议
    团队对"工单管理"功能的粒度划分产生分歧。通过请教老师和重新梳理用户旅程,最终将其合理拆分为创建、分配、处理、反馈4个独立故事,每个可在1-2天内完成。

  3. 跨域认证难题
    开发运维管理系统时遇到Vue前端与Spring Boot后端的CORS和JWT验证问题。通过配置Spring Security的CORS过滤器和自定义axios请求拦截器,建立了安全可靠的前后端通信机制。

  4. 性能优化瓶颈
    政策搜索功能在数据量增大后响应变慢。通过添加数据库索引、引入缓存机制和优化查询语句三重手段,使查询性能提升8倍,10000条记录的搜索时间从1200ms降至150ms。

四、经验总结与反思

取得的进步

  1. 建立了完整的质量保障意识,从"只求功能实现"转变为"质量内建"的思维方式
  2. 掌握了现代前端框架与后端服务的协作开发模式
  3. 提升了代码设计能力,能够识别并应用适当的设计模式
  4. 初步具备了敏捷团队的协作经验

存在的不足

  1. 测试覆盖率仍不理想,特别是UI层和集成测试部分
  2. 对敏捷估算技术的掌握不够熟练,常出现乐观估计
  3. 技术决策有时过于理想化,忽略项目时间和资源约束
  4. 团队沟通效率仍有提升空间,部分会议缺乏有效产出

改进方向

  1. 学习行为驱动开发(BDD)方法,提升端到端测试能力
  2. 实践规划扑克等敏捷估算技术,提高任务评估准确性
  3. 建立技术方案评估矩阵,平衡理想方案与现实约束
  4. 采用结构化会议方法(如Google Design Sprint)提升团队协作效率

五、下周学习计划

  1. 深入研究持续集成
    计划搭建Jenkins自动化构建管道,实现代码提交触发测试、构建和部署的全流程自动化

  2. 性能优化专项
    针对现有项目的性能瓶颈,学习并应用缓存策略、数据库优化和懒加载技术

  3. 用户体验提升
    研究Material Design规范,优化移动端APP的交互设计和视觉呈现

  4. 团队流程改进
    在小组内试行代码评审制度,建立更规范的质量管控流程

本周的密集学习和实践使我深刻体会到软件工程不仅是技术活,更是需要系统思维和团队协作的系统工程。通过记录和反思,我不仅巩固了技术知识,更培养了工程化的思维方式,这将是未来职业发展中的宝贵财富。

posted @ 2025-03-10 21:08  haoyinuo  阅读(29)  评论(0)    收藏  举报