前言大家好。经过这段时间的实训我们的校园报修管理系统项目终于完成了。这篇博客是我的第三篇实训博客也是最后一篇。我想从整体上总结一下这次实训的收获包括项目中遇到的难点、解决问题的思路以及我个人的学习成长。一、项目整体回顾1.1 项目简介我们的项目是一个校园报修管理系统旨在解决校园内设施设备报修流程繁琐、效率低下的问题。系统实现了从报修申请、工单分配、维修处理到完成验收的全流程管理。1.2 团队分工我们小组共有5名成员具体分工如下1.3 我的工作内容作为后端/联调工程师我主要完成了以下工作1. 项目管理方面参与制定团队分工排期表协助组长进行项目进度跟踪组织前后端联调讨论2. 技术开发方面开发报修工单管理模块增删改查接口开发校园物资管理模块含权限控制开发物资申请管理模块含审批流程系统集成测试与BUG修复3. 联调协作方面与前端同学对接接口解决跨域、数据格式等联调问题二、项目难点与挑战在项目开发过程中我们遇到了不少难点这里挑几个有代表性的和大家分享。2.1 难点一前后端联调问题问题描述项目初期前后端各自开发到联调阶段才发现很多问题接口字段名不统一数据格式不一致跨域问题日期格式不匹配解决思路第一步制定接口规范统一使用RESTful风格统一返回格式code、msg、data统一命名规范驼峰命名统一日期格式yyyy-MM-dd HH:mm:ss第二步配置跨域心得体会联调问题一定要提前预防不要等到最后才发现。沟通也很重要有问题及时和前端同学交流不要自己憋着。2.2 难点二权限控制设计问题描述系统有三种角色管理员、学生、维修人员不同角色有不同的操作权限。如何设计一个简单但有效的权限控制机制解决思路方案一基于请求头的简单权限控制我们采用的方案前端在请求头中携带用户角色X-User-Role: admin后端在Controller层进行权限校验方案二Spring Security更专业但更复杂功能强大支持细粒度权限控制学习成本高对于小项目有点杀鸡用牛刀时间充裕的话可以考虑使用方案对比方案优点缺点适用场景请求头方式简单易懂上手快安全性一般不够灵活小型项目、实训项目Spring Security功能强大安全性高学习成本高配置复杂中大型项目、生产环境JWT 拦截器无状态支持分布式需要自己实现很多逻辑前后端分离项目心得体会技术选型没有最好只有最合适。对于实训项目来说简单易用是第一位的能快速实现功能最重要。当然如果时间充裕学习一下Spring Security也是很好的。2.3 难点三数据一致性问题问题描述在物资申请审批通过后需要同时更新申请状态。如果只更新了一个就会出现数据不一致的问题。解决思路方法一事务控制使用Transactional注解保证操作的原子性ServicepublicclassApplicationServiceImpl{Transactional(rollbackForException.class)publicbooleanapproveApplication(IntegerappId,IntegergoodsId,Integerquantity){// 1. 更新申请状态intresult1updateApplicationStatus(appId,审批通过);// 2. 扣减库存intresult2decreaseStock(goodsId,quantity);returnresult10result20;}}方法二数据库事务在SQL层面使用事务BEGIN;UPDATEgoods_applicationSETstatus审批通过WHEREid?;UPDATEcampus_goodsSETstock_numstock_num-?WHEREid?;COMMIT;心得体会数据一致性是后端开发必须考虑的问题。涉及多个表的修改操作一定要用事务保证原子性要么都成功要么都失败。不然出现数据不一致的问题排查起来会很麻烦。2.4 难点四团队协作与代码合并问题描述多人同时开发代码如何合并如何避免冲突解决思路1. 使用Git进行版本控制每个人在自己的分支上开发定期合并到主分支提交前先pull最新代码2. 制定代码规范统一命名规范统一代码格式提交时写清楚注释3. 定期代码review每天站会同步进度每周进行一次代码review发现问题及时修正踩坑记录Git冲突有一次我和另一个同学同时修改了同一个文件的同一个地方合并的时候出现了冲突。后来我们约定尽量不要同时修改同一个文件如果必须修改提前沟通好。冲突后不要慌仔细看清楚哪些是自己的代码哪些是别人的再决定如何合并。三、问题解决思路总结通过这次项目我总结了一套解决问题的方法论3.1 遇到问题怎么办第一步读懂错误信息仔细看错误提示找到关键的错误信息定位出错的代码位置第二步分析问题原因是配置问题还是代码逻辑问题是环境问题还是数据问题是自己的问题还是别人的问题第三步搜索解决方案百度/Google搜索错误信息利用AI工具解决问题在技术社区提问Stack Overflow、CSDN等第四步尝试解决按照找到的方案尝试每次只改一个地方改完及时测试验证第五步总结记录问题解决后记录下来分析根本原因思考如何避免下次再犯3.2 常用调试技巧1. 打印日志System.out.println(debug: variable);// 或者使用日志框架log.info(订单信息{},order);2. 断点调试在IDEA中设置断点一步步执行代码观察变量值的变化3. 接口测试查看请求和响应数据验证参数是否正确4. 数据库查询直接查询数据库验证数据是否正确检查SQL语句是否有问题四、个人学习收获4.1 技术能力提升1. Spring Boot框架深入理解了Spring Boot的自动配置原理熟练掌握了Controller、Service、Mapper分层开发学会了各种注解的使用RestController、RequestMapping等2. MyBatis / MyBatis Plus掌握了基本的CRUD操作学会了动态SQL的编写理解了结果映射的原理3. 数据库设计学会了如何设计表结构理解了主键、外键、索引的概念掌握了基本的SQL优化技巧4. 接口设计理解了RESTful风格学会了如何设计规范的API4.2 软技能提升1. 团队协作能力学会了如何与不同角色的同学配合掌握了沟通表达的技巧理解了团队协作的重要性2. 项目管理能力学会了制定开发计划掌握了进度跟踪的方法理解了需求变更的处理方式3. 问题解决能力学会了独立思考和解决问题掌握了搜索和学习的方法培养了耐心和毅力4.3 心态上的成长1. 从我不会到我可以学刚开始很多东西都不会心里很慌。后来发现不会没关系只要愿意学总能学会的。技术更新换代很快学习能力比知识本身更重要。2. 从怕出错到不怕错以前写代码总怕写错不敢动手。现在明白出错是正常的bug是程序员的好朋友。每解决一个bug就多一分成长。3. 从单打独斗到团队协作以前写代码都是自己一个人写想怎么写怎么写。现在才发现团队协作才是常态。好的代码不是写给自己看的是写给团队看的。五、不足之处与改进方向5.1 技术上的不足1. 前端知识薄弱对前端技术了解不多联调时有时候理解不了前端的问题以后要多学习前端知识做一个全栈开发者2. 数据库优化能力不足只会写基本的SQL对索引优化、查询优化了解不深要深入学习数据库原理和优化技巧3. 缺乏单元测试项目中没有写单元测试都是手动测试效率低以后要养成写单元测试的习惯5.2 项目管理上的不足1. 需求分析不够充分有些需求没有想清楚就开始做导致后期返工以后要在需求阶段多花时间2. 时间管理不够好前期进度慢后期赶工质量难以保证以后要合理安排时间留有余量六、建议如果你也即将参加实训或者正在做类似的项目我有几点建议6.1 技术学习方面打好基础Java基础、数据库基础一定要扎实多动手实践光看不练假把式多写代码才是王道善用搜索引擎遇到问题先自己搜培养独立解决问题的能力做好笔记好记性不如烂笔头学到的东西要记录下来6.2 团队协作方面多沟通有问题及时说不要憋着负责任分配给自己的任务要按时完成互相帮助别人有困难时伸出援手你也会需要别人的帮助尊重他人每个人都有自己的想法学会倾听和包容6.3 心态方面不要怕犯错犯错是学习的一部分不要怕问问题不懂就问没什么丢人的保持耐心解决问题需要时间不要急享受过程项目做完了会很有成就感的七、心得体会这段时间的实训说长不长说短不短。从最开始的环境搭建到中间的业务开发再到最后的联调测试一路走来收获满满。感谢我的组员们大家一起努力才能完成这个项目。特别感谢组长同学的带领以及前端同学的配合。也感谢数据库同学和架构同学在技术上的帮助。通过这次实训我不仅学到了技术更重要的是学会了如何学习、如何协作、如何解决问题。这些能力比具体的技术知识更有价值。路漫漫其修远兮吾将上下而求索。技术的道路还很长我会继续努力不断学习不断进步。最后希望我的这三篇博客能对大家有所帮助。如果有什么问题欢迎在评论区交流讨论。–系列博客第一篇【校园报修系统】Spring Boot MyBatis Plus 项目环境搭建全记录与踩坑总结第二篇【校园报修系统】后端业务接口开发实战报修工单与物资管理模块详解第三篇【校园报修系统】实训项目总结从0到1的成长之路本文
【校园报修系统】实训项目总结:从0到1的成长之路
发布时间:2026/6/26 19:59:18
前言大家好。经过这段时间的实训我们的校园报修管理系统项目终于完成了。这篇博客是我的第三篇实训博客也是最后一篇。我想从整体上总结一下这次实训的收获包括项目中遇到的难点、解决问题的思路以及我个人的学习成长。一、项目整体回顾1.1 项目简介我们的项目是一个校园报修管理系统旨在解决校园内设施设备报修流程繁琐、效率低下的问题。系统实现了从报修申请、工单分配、维修处理到完成验收的全流程管理。1.2 团队分工我们小组共有5名成员具体分工如下1.3 我的工作内容作为后端/联调工程师我主要完成了以下工作1. 项目管理方面参与制定团队分工排期表协助组长进行项目进度跟踪组织前后端联调讨论2. 技术开发方面开发报修工单管理模块增删改查接口开发校园物资管理模块含权限控制开发物资申请管理模块含审批流程系统集成测试与BUG修复3. 联调协作方面与前端同学对接接口解决跨域、数据格式等联调问题二、项目难点与挑战在项目开发过程中我们遇到了不少难点这里挑几个有代表性的和大家分享。2.1 难点一前后端联调问题问题描述项目初期前后端各自开发到联调阶段才发现很多问题接口字段名不统一数据格式不一致跨域问题日期格式不匹配解决思路第一步制定接口规范统一使用RESTful风格统一返回格式code、msg、data统一命名规范驼峰命名统一日期格式yyyy-MM-dd HH:mm:ss第二步配置跨域心得体会联调问题一定要提前预防不要等到最后才发现。沟通也很重要有问题及时和前端同学交流不要自己憋着。2.2 难点二权限控制设计问题描述系统有三种角色管理员、学生、维修人员不同角色有不同的操作权限。如何设计一个简单但有效的权限控制机制解决思路方案一基于请求头的简单权限控制我们采用的方案前端在请求头中携带用户角色X-User-Role: admin后端在Controller层进行权限校验方案二Spring Security更专业但更复杂功能强大支持细粒度权限控制学习成本高对于小项目有点杀鸡用牛刀时间充裕的话可以考虑使用方案对比方案优点缺点适用场景请求头方式简单易懂上手快安全性一般不够灵活小型项目、实训项目Spring Security功能强大安全性高学习成本高配置复杂中大型项目、生产环境JWT 拦截器无状态支持分布式需要自己实现很多逻辑前后端分离项目心得体会技术选型没有最好只有最合适。对于实训项目来说简单易用是第一位的能快速实现功能最重要。当然如果时间充裕学习一下Spring Security也是很好的。2.3 难点三数据一致性问题问题描述在物资申请审批通过后需要同时更新申请状态。如果只更新了一个就会出现数据不一致的问题。解决思路方法一事务控制使用Transactional注解保证操作的原子性ServicepublicclassApplicationServiceImpl{Transactional(rollbackForException.class)publicbooleanapproveApplication(IntegerappId,IntegergoodsId,Integerquantity){// 1. 更新申请状态intresult1updateApplicationStatus(appId,审批通过);// 2. 扣减库存intresult2decreaseStock(goodsId,quantity);returnresult10result20;}}方法二数据库事务在SQL层面使用事务BEGIN;UPDATEgoods_applicationSETstatus审批通过WHEREid?;UPDATEcampus_goodsSETstock_numstock_num-?WHEREid?;COMMIT;心得体会数据一致性是后端开发必须考虑的问题。涉及多个表的修改操作一定要用事务保证原子性要么都成功要么都失败。不然出现数据不一致的问题排查起来会很麻烦。2.4 难点四团队协作与代码合并问题描述多人同时开发代码如何合并如何避免冲突解决思路1. 使用Git进行版本控制每个人在自己的分支上开发定期合并到主分支提交前先pull最新代码2. 制定代码规范统一命名规范统一代码格式提交时写清楚注释3. 定期代码review每天站会同步进度每周进行一次代码review发现问题及时修正踩坑记录Git冲突有一次我和另一个同学同时修改了同一个文件的同一个地方合并的时候出现了冲突。后来我们约定尽量不要同时修改同一个文件如果必须修改提前沟通好。冲突后不要慌仔细看清楚哪些是自己的代码哪些是别人的再决定如何合并。三、问题解决思路总结通过这次项目我总结了一套解决问题的方法论3.1 遇到问题怎么办第一步读懂错误信息仔细看错误提示找到关键的错误信息定位出错的代码位置第二步分析问题原因是配置问题还是代码逻辑问题是环境问题还是数据问题是自己的问题还是别人的问题第三步搜索解决方案百度/Google搜索错误信息利用AI工具解决问题在技术社区提问Stack Overflow、CSDN等第四步尝试解决按照找到的方案尝试每次只改一个地方改完及时测试验证第五步总结记录问题解决后记录下来分析根本原因思考如何避免下次再犯3.2 常用调试技巧1. 打印日志System.out.println(debug: variable);// 或者使用日志框架log.info(订单信息{},order);2. 断点调试在IDEA中设置断点一步步执行代码观察变量值的变化3. 接口测试查看请求和响应数据验证参数是否正确4. 数据库查询直接查询数据库验证数据是否正确检查SQL语句是否有问题四、个人学习收获4.1 技术能力提升1. Spring Boot框架深入理解了Spring Boot的自动配置原理熟练掌握了Controller、Service、Mapper分层开发学会了各种注解的使用RestController、RequestMapping等2. MyBatis / MyBatis Plus掌握了基本的CRUD操作学会了动态SQL的编写理解了结果映射的原理3. 数据库设计学会了如何设计表结构理解了主键、外键、索引的概念掌握了基本的SQL优化技巧4. 接口设计理解了RESTful风格学会了如何设计规范的API4.2 软技能提升1. 团队协作能力学会了如何与不同角色的同学配合掌握了沟通表达的技巧理解了团队协作的重要性2. 项目管理能力学会了制定开发计划掌握了进度跟踪的方法理解了需求变更的处理方式3. 问题解决能力学会了独立思考和解决问题掌握了搜索和学习的方法培养了耐心和毅力4.3 心态上的成长1. 从我不会到我可以学刚开始很多东西都不会心里很慌。后来发现不会没关系只要愿意学总能学会的。技术更新换代很快学习能力比知识本身更重要。2. 从怕出错到不怕错以前写代码总怕写错不敢动手。现在明白出错是正常的bug是程序员的好朋友。每解决一个bug就多一分成长。3. 从单打独斗到团队协作以前写代码都是自己一个人写想怎么写怎么写。现在才发现团队协作才是常态。好的代码不是写给自己看的是写给团队看的。五、不足之处与改进方向5.1 技术上的不足1. 前端知识薄弱对前端技术了解不多联调时有时候理解不了前端的问题以后要多学习前端知识做一个全栈开发者2. 数据库优化能力不足只会写基本的SQL对索引优化、查询优化了解不深要深入学习数据库原理和优化技巧3. 缺乏单元测试项目中没有写单元测试都是手动测试效率低以后要养成写单元测试的习惯5.2 项目管理上的不足1. 需求分析不够充分有些需求没有想清楚就开始做导致后期返工以后要在需求阶段多花时间2. 时间管理不够好前期进度慢后期赶工质量难以保证以后要合理安排时间留有余量六、建议如果你也即将参加实训或者正在做类似的项目我有几点建议6.1 技术学习方面打好基础Java基础、数据库基础一定要扎实多动手实践光看不练假把式多写代码才是王道善用搜索引擎遇到问题先自己搜培养独立解决问题的能力做好笔记好记性不如烂笔头学到的东西要记录下来6.2 团队协作方面多沟通有问题及时说不要憋着负责任分配给自己的任务要按时完成互相帮助别人有困难时伸出援手你也会需要别人的帮助尊重他人每个人都有自己的想法学会倾听和包容6.3 心态方面不要怕犯错犯错是学习的一部分不要怕问问题不懂就问没什么丢人的保持耐心解决问题需要时间不要急享受过程项目做完了会很有成就感的七、心得体会这段时间的实训说长不长说短不短。从最开始的环境搭建到中间的业务开发再到最后的联调测试一路走来收获满满。感谢我的组员们大家一起努力才能完成这个项目。特别感谢组长同学的带领以及前端同学的配合。也感谢数据库同学和架构同学在技术上的帮助。通过这次实训我不仅学到了技术更重要的是学会了如何学习、如何协作、如何解决问题。这些能力比具体的技术知识更有价值。路漫漫其修远兮吾将上下而求索。技术的道路还很长我会继续努力不断学习不断进步。最后希望我的这三篇博客能对大家有所帮助。如果有什么问题欢迎在评论区交流讨论。–系列博客第一篇【校园报修系统】Spring Boot MyBatis Plus 项目环境搭建全记录与踩坑总结第二篇【校园报修系统】后端业务接口开发实战报修工单与物资管理模块详解第三篇【校园报修系统】实训项目总结从0到1的成长之路本文