这次实训我全程参与了从需求分析、方案设计到编码实现、测试部署的完整项目流程。整个项目做下来,感觉跟光在课堂上学理论完全不一样,手里有东西了,脑子里原本零散的知识点也被串起来了。下面我就把整个过程捋一捋,把干了啥、遇到啥问题、怎么解决的、最后有啥收获和不足,都实实在在地总结一下。
我们小组接到的任务是开发一个简易的图书借阅管理系统。一开始,大家对着需求文档有点懵,觉得功能不就“借书还书查书”那几个嘛。但真开始动手画流程图和设计数据库表结构时,才发现细节多得吓人。比如,一本书被同一个人重复借阅怎么处理?逾期归还的规则怎么在系统里体现?我们为了这些细节吵了好几回,最后是拉着指导老师一起,才把最初的需求说明书给细化落地了。这个过程让我明白,需求不是纸上谈兵,得抠细节,得考虑实际操作的每一个可能。
技术选型上,我们用了主流的Spring Boot框架搭后端,Vue.js写前端界面,MySQL存数据。我之前自学过一点Spring Boot,但真用起来完全是两码事。比如在实现借阅事务时,一开始没处理好并发,测试时发现两个人同时借同一本书,系统居然都成功了,库存对不上。后来是通过加锁和优化事务注解才解决了这个问题。前端那边也挺折腾,组件之间的数据传递老出问题,页面渲染经常卡壳。我们是一边查文档一边在技术论坛里找类似案例,慢慢调试过来的。最大的教训就是,光知道技术名词没用,不亲手掉进几个坑里爬出来,永远学不会。
团队协作这块,我们用了Git来管理代码,但刚开始合并代码经常冲突,气得不行。后来大家定了规矩,每天下班前必须提交一次,并且写清楚这次改了啥。沟通主要靠每日站会和微信群,有时候谁卡住了,在群里喊一声,经常能有队友提供新思路。我觉得这种随时沟通的氛围比开会还有用。我也发现自己有个毛病,不太敢拍板,有时候有个想法,怕说错了就憋着,后来发现有个队友提的想法比我的还不成熟,但大家讨论后反而完善了,这让我以后更敢开口了。
项目最终是磕磕绊绊地搞出来了,基本功能都能跑通,界面也算整齐。但我知道问题还很多,比如代码有些地方写得特别啰嗦,重复的不少;异常处理做得比较糙,有些边缘情况程序会直接崩掉;性能更是没专门优化过,数据多了肯定慢。这些都没来得及好好打磨。
回头看这一个月,累是累,但值。最大的收获不是做了一个多牛的系统,而是真正经历了一遍“做项目”是怎么回事。我知道了怎么把大问题拆成小任务,怎么在团队里既表达自己又听别人的,怎么把一个课本上的技术愣是给用起来。不足也很明显,我发现自己基础还是不够扎实,遇到复杂点的bug排查效率很低,还有前面说的代码质量和团队协作上的一些坏习惯。以后学习,我得盯着一个技术深钻下去,不能只满足于“能用”,还得琢磨“为啥这样用”和“怎么用得更好”。这次实训就像一次实战演习,暴露了问题,但也让我对接下来要走的路,心里更有谱了。