目录
- 第一部分:课程回顾与总结
- 1.问题的重新思考
- 2.每个阶段收获最大的知识或能力
- 需求阶段
- 设计阶段
- 实现阶段
- 测试阶段
- 发布阶段
- 自我评分与目标达成
- 课程目标评分
- 第二部分:个人技术总结
- 第三部分:软件开发模式
- 项目开发过程
- 项目目标
- 主要技术栈
- 开发过程中的关键决策
- 遇到的挑战与解决方案
- 软件开发模式分析
- 开发模式:敏捷开发
- 优缺点
- 对项目的影响
- 不同场景下的开发模式建议
第一部分:课程回顾与总结
1.问题的重新思考
我都是大学生了,上课还要认真听老师讲课么?
大学的课程为实践提供了理论基础,尤其在软件工程中,老师的经验分享和对关键概念的深入解读帮助我在项目中快速避坑。上课不仅仅是获取知识,更是培养问题意识的过程。实践证明,听课与自学结合才是高效学习的最佳路径。
花费时间越多,代表工作量越高吗?
时间的投入仅是工作的表象,衡量产出质量才是关键。我在项目中体会到,明确任务分解和合理分工能有效缩短开发时间并提高效率。真正的高工作量,是在有限时间内高质量完成任务,而非简单延长开发时间。
代码量与个人的编码能力有直接关系吗?
项目经验让我更深刻地认识到代码质量比代码量重要。通过设计模式和模块化开发,我学会了用更少的代码实现更高效的功能。写“少而精”的代码,才能体现一个开发者的能力。
如何让自己能够跟上软件工程发展,做一个永不落伍的开发者呢?
技术更新快,唯有保持学习的敏感性。参加开源项目、阅读最新技术文档和跟踪行业动态是必不可少的。我还通过总结技术博客,强化了学习输出,让知识积累更系统化。
如果你是病人,你希望你的医生是哪一种?
在软件开发中,我努力成为既有经验又懂得应变的“医生”。通过学习经典案例和复盘自己的项目经验,我逐步建立了适应复杂需求和快速迭代的能力。这种思维模式对软件开发至关重要。
2.每个阶段收获最大的知识或能力
需求阶段
- 收获:学会使用用户画像和故事板描述用户需求。
- 工具:Axure 进行需求原型设计。
设计阶段
- 收获:掌握领域驱动设计(DDD)的基本思想,明确模块边界和实体关系。
- 工具:使用 Visual Paradigm 绘制类图和时序图。
实现阶段
- 收获:熟悉 Spring Boot 的开发流程,学会分层架构设计。
- 工具:IntelliJ IDEA、高效代码调试技巧。
测试阶段
- 收获:学会编写单元测试和集成测试,并使用 Postman 进行接口测试。
- 工具:JUnit、Mockito。
发布阶段
- 收获:掌握 Docker 容器化部署流程,提升应用的可移植性。
- 工具:Jenkins、Docker。
自我评分与目标达成
课程目标评分
职业道德与实践要求:90分。
- 理解了软件对社会的影响,并在开发中注重用户隐私保护。
需求分析能力:85分。
- 能够准确表达需求,但对于复杂需求的拆解能力仍需加强。
设计能力:80分。
技术评测能力:75分。
文档撰写能力:85分。
团队协作能力:95分。
项目管理能力:80分。
- 掌握了基本的任务分配和进度管理技巧,但对复杂项目的管理经验不足。
第二部分:个人技术总结
个人技术博客——Spring Data JPA
概述:Spring Data JPA 提供了高效、简洁的数据库操作方式,尤其适合处理复杂数据查询与事务管理。它通过定义接口自动实现常见的数据库操作,能够大幅减少样板代码的编写。
第三部分:软件开发模式
项目开发过程
项目目标
本次参与的项目是健康报告管理系统,目标是为用户生成、管理和查看健康报告数据,帮助用户了解健康状况并提供改善建议。
主要技术栈
- 后端:Spring Boot、Spring Data JPA
- 数据库:MySQL
- 前端:Vue.js
- 工具:Maven、Postman、HikariCP 数据源
开发过程中的关键决策
- 采用微服务架构:将健康数据管理和报告管理模块分离,便于模块化开发和后期扩展。
- 统一异常处理:在后端通过
@ControllerAdvice 实现全局异常捕获,提高代码可读性和维护性。 - 数据库优化:通过索引和连接池优化提高查询性能。
遇到的挑战与解决方案
健康报告生成逻辑复杂:
- 问题:需要根据多种健康数据计算报告内容和建议。
- 解决方案:设计一个规则引擎模块,将数据解析和建议生成逻辑解耦,便于维护和扩展。
数据库并发问题:
- 问题:高并发场景下,数据库连接数不足。
- 解决方案:优化 HikariCP 数据源配置,提高最大连接数并减少空闲超时时间。
前后端联调:
- 问题:接口返回的数据格式与前端需求不符。
- 解决方案:通过 Swagger 文档规范接口设计,并增加数据转换层统一返回结构。
软件开发模式分析
开发模式:敏捷开发
在本次项目中,我们采用了敏捷开发模式,每两周为一个迭代周期,分阶段完成需求分析、开发、测试和部署。
优缺点
优点:
- 快速响应需求变更。
- 持续交付可用版本,便于用户反馈。
- 强调团队协作和沟通。
缺点:
- 文档较少,可能导致后期维护成本增加。
- 对团队成员自律性要求较高。
对项目的影响
敏捷开发使我们能够快速迭代和交付产品,但也暴露了团队在需求变更管理和文档规范化方面的不足。在未来的开发中,需要结合敏捷和部分瀑布模型的优点,提高文档规范性。
不同场景下的开发模式建议
- 快速原型开发:适合采用敏捷开发,快速验证需求。
- 大型系统开发:推荐瀑布模型或螺旋模型,确保各阶段有清晰的文档和评审。
- 持续交付项目:采用 DevOps 开发模式,强化自动化部署和监控。