114
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | https://bbs.csdn.net/forums/FZU_university_2025 |
|---|---|
| 这个作业要求在哪里 | https://bbs.csdn.net/topics/620074912 |
| 这个作业的目标 | 完成软件工程实践总结,回顾课程学习过程,总结技术成长,分析软件开发模式 |
| 其他参考文献 | 见文末 |
回顾这一学期的软件工程实践课程,我深刻体会到了"做中学"的重要性。虽然我在项目开始前为自己制定了C++后端开发的学习路线,但在实际团队项目中,我担任的是测试和连接的工作,这让我从另一个角度深入理解了软件开发的完整流程。
从计划到现实的转变
项目开始前,我为自己制定了详细的C++后端开发学习路线,包括网络编程、并发编程、框架学习等。然而,在实际团队项目中,我们选择了Spring Boot作为后端技术栈,而我被分配到了测试和连接的工作。这个转变让我意识到:
原问题:在项目初期,我经常遇到前端调用后端API失败的问题,不清楚是网络问题、配置问题还是代码问题。
新理解:通过实践,我逐步厘清了这个问题:
网络层面的检查:
配置层面的检查:
代码层面的检查:
测试方法:
具体实践:我创建了专门的测试接口(/api/test/health、/api/test/ai),用于快速验证后端服务状态和AI服务连接。这些测试接口帮助团队快速定位问题,提高了开发效率。
原问题:在项目初期,我对测试的理解停留在"运行一下看看有没有报错"的层面,不清楚如何系统地进行测试。
新理解:
测试的层次性:
测试的时机:
测试的工具和方法:
具体实践:我负责编写和维护项目的测试接口,并建立了测试检查清单,确保每个功能模块都有对应的测试方法。这帮助团队在开发过程中及时发现问题,减少了后期修复的成本。
性能测试的深度:虽然我了解了基本的性能测试方法,但对于如何设计压力测试场景、如何分析性能瓶颈,还需要进一步学习。
自动化测试的实践:目前我们的测试主要是手动的,如何建立自动化测试流程,提高测试效率,是我需要继续探索的方向。
微服务架构下的测试策略:如果项目采用微服务架构,如何设计跨服务的测试策略?如何模拟服务间的依赖?
测试数据的治理:如何管理测试数据,确保测试环境的数据既真实又可控?如何避免测试数据污染生产环境?
收获最大的知识/能力:需求分析的方法和工具
在需求阶段,我学会了如何从用户的描述中提取真正的需求。我们团队使用了用户故事(User Story)的方式来描述需求,例如"作为用户,我希望能够记录我的支出,以便了解我的消费情况"。
具体收获:
收获最大的知识/能力:数据库设计和API设计
在设计阶段,我深入参与了数据库表结构的设计和API接口的设计。虽然我原本计划学习C++,但通过参与Spring Boot项目的设计,我理解了:
具体收获:
收获最大的知识/能力:测试驱动开发和接口测试
在实现阶段,我主要负责测试和连接工作,这让我深入理解了:
具体收获:
收获最大的知识/能力:系统化测试方法和测试文档编写
在测试阶段,我负责建立测试流程和编写测试文档:
具体收获:
收获最大的知识/能力:部署流程和上线检查
在发布阶段,我参与了上线前检查清单的编写,学习了:
具体收获:
在个人项目中,我主要专注于学习C++后端开发的基础知识。虽然最终没有在团队项目中使用C++,但这个过程让我:
在团队项目中,我担任测试和连接的工作,这让我:
理解了团队协作的重要性:
体验了真实的开发流程:
学会了适应和调整:
通过课程学习,我理解了软件产品对社会的影响,特别是在我们开发的记账小程序中,涉及到用户的财务数据,这让我深刻认识到数据安全和隐私保护的重要性。在项目过程中,我们严格遵守了数据安全规范,妥善保管API密钥,配置了HTTPS等安全措施。
扣分原因:对于软件工程伦理的深入思考还不够,需要更多实践来加深理解。
通过参与需求分析,我学会了使用用户故事、原型图等工具来表达需求,理解了如何从用户的描述中提取真正的需求。在团队项目中,我参与了需求讨论,学会了如何辨别和表达客户需求。
扣分原因:对于复杂需求的分析能力还需要提升,特别是在处理冲突需求时的经验不足。
通过完整的项目实践,我体验了从需求到发布的完整流程,理解了体系结构设计、数据设计、构件设计等概念。虽然我主要负责测试工作,但通过参与设计和代码审查,我对整个开发过程有了全面的了解。
扣分原因:由于主要负责测试,在设计和实现方面的直接经验相对较少,需要更多实践来加深理解。
这是我重点负责的部分。通过测试工作,我深入理解了如何设计测试用例、如何进行接口测试、如何编写测试文档。我建立了测试检查清单,编写了测试接口,参与了系统测试。
扣分原因:对于性能测试和压力测试的实践还不够深入。
我参与了项目文档的编写,包括测试文档、上线检查清单等。我理解了文档在团队协作中的重要性,学会了如何编写清晰、规范的文档。
扣分原因:对于正式的需求规格说明书、系统设计说明书等标准文档的编写经验还需要积累。
在团队项目中,我积极与团队成员沟通协作,参与了代码审查、问题讨论等。我学会了如何在团队中找到自己的位置,如何有效地与他人协作。
扣分原因:在团队冲突处理和领导力方面还需要提升。
通过项目实践,我理解了项目管理的基本要素,包括任务分配、进度跟踪、版本控制等。我参与了项目会议,了解了项目管理的流程。
扣分原因:对于工作量估算、进度规划等项目管理技能还需要更多学习和实践。
在第一次作业"准备篇"中,我为自己制定了C++后端开发的学习路线,包括:
实际情况:
虽然在项目开始前制定了C++学习路线,但在实际团队项目中,我们选择了Spring Boot作为后端技术栈。虽然我没有按照原计划深入学习C++,但通过参与Spring Boot项目,我:
在团队开发中,我担任了测试和连接的工作,主要解决了以下技术问题:
问题描述:在项目初期,前端调用后端API经常失败,不清楚是网络问题、配置问题还是代码问题。
解决方案:
/api/test/health),用于快速验证后端服务状态技术收获:
问题描述:项目中集成了多个AI服务提供商(Groq、OpenRouter、智谱AI等),需要测试各个服务的连接和响应。
解决方案:
/api/test/ai、/api/debug/simple-test等)技术收获:
问题描述:微信小程序需要在公众平台配置合法域名,且需要使用HTTPS协议,配置过程复杂。
解决方案:
技术收获:
在微信小程序开发中,前后端API连接是项目成功的关键。本文详细介绍了如何建立稳定的前后端连接,包括API设计、微信小程序域名配置、接口测试方法等。通过实际项目经验,总结了常见问题和解决方案,帮助开发者快速定位和解决连接问题。
技术难点:
我们团队开发了一个微信小程序记账应用,主要功能包括:
技术栈选择:
架构设计:
AI服务集成:
前后端连接问题:
多环境配置:
AI服务稳定性:
我们团队主要采用了敏捷开发模式,具体表现为:
迭代开发:
持续集成:
快速反馈:
文档驱动:
优点:
快速响应变化:
提高团队协作:
持续交付价值:
缺点:
文档可能不够完善:
对团队要求较高:
可能缺乏整体规划:
| 开发模式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 瀑布模型 | 需求明确、变化少的项目 | 文档完善、流程清晰 | 难以应对变化、反馈慢 |
| 敏捷开发 | 需求变化快、需要快速交付的项目 | 快速响应变化、持续交付 | 文档可能不够完善、对团队要求高 |
| DevOps | 需要频繁部署、持续集成的项目 | 自动化程度高、部署快速 | 需要完善的工具链、学习成本高 |
| 螺旋模型 | 高风险、大型项目 | 风险控制好、迭代改进 | 成本高、周期长 |
小型项目、需求明确:
中型项目、需求可能变化:
大型项目、需要频繁部署:
高风险项目、需要严格管控:
通过这次项目实践,我对软件开发模式有了更深入的理解:
没有完美的开发模式:
灵活运用:
持续改进:
团队协作是关键:
建议:
通过这一学期的软件工程实践课程,我不仅学习了软件开发的技术知识,更重要的是体验了真实的项目开发流程,理解了团队协作的重要性。虽然我没有按照原计划深入学习C++,但通过参与Spring Boot项目,我获得了同样宝贵的经验。
主要收获:
未来规划:
感谢老师和助教的指导,感谢团队成员的协作,让我在这一学期中获得了宝贵的成长!
博客完成时间:2025年12月23日