社团管理系统-第一组-个人总结

前端源代码:前端地址github

后端源代码:后端地址github

个人工作

完成所有数据库相关接口查询,修改工作,并提供service类,供controller调用

社团管理系统需求分析

作为组长,初步完成分工,为了云计算大作业考虑,考虑使用mongodb。并完成mongodb初步学习。同时也部署了mongodb服务端,以及为可能存在redis服务,同时也部署了redis。选定使用springboot作为后端。数据库连接使用mongorepository作为基本操作的接口。在部署中,最为麻烦的是遇到了maven的各个jar包冲突,浪费了很久,最后使用了别人项目配置。

第二次报告

基本学会了类似jpa格式的mongorepository,了解了基本语法,初步了解了java注解和python装饰器的异同,测试并实现了最基本类的实现。体验了mongodb的好处,除了主键字段外,基本可以随便修改表结构,可以适应各种修改需求。同时也开始踩坑,发现了mongorepository的局限性,基本只能实现单表修改查询工作。

社团管理系统设计图阶段

完成时序图功能,开始思考后端如何具体更好实现表结构,也完成用例图。完成几个基本不会修改类的数据库接口。开始使用mongotemplate实现一些基本的连接工作,与mysql不一样,mongodb的表连接更加麻烦,需要用到更多东西,其字段灵活性也给我添了很多麻烦。尤其是一些字段是数组,写好了原始查询语句。发现mongotemplate无法像jdbc一样使用原始查询语句,而是使用他提供的封装接口,各种操作需转换为对应字段。遇到问题比较多,但也体会了java式的方法,体会到面对对象的方便之处。但是也发现应为所有对象会导致代码变长很多,提高了阅读难度。

原型阶段

开始冲刺阶段。由许多功能没有实现。前端也完成自己基本页面的实现。开始了各种接口对接。前端修改了部分页面元素,导致数据库字段修改。感谢mongorepository和mongodb,添加字段非常方便,也方便修改各种东西。应为service中实现较好,基本都直接返回了需要的java对象。与实现controller同学,接口的问题较少。

最后阶段

前端添加了功能,复杂的表连接以及部分搜索功能实现比较麻烦。而且最后应为将社团成员直接存储为对象。遇到了不少问题,只好采取直接使用java对象存储,保存对象的方法。搜索功能只使用了基本的正则表达式去实现基本的功能,但对应这样的需求。基本以经能满足需求。应为功能相近的缘故,类似接口只测试了一个。导致后期对前端也造成了不少麻烦。还遇到了Critera的一个坑,OrOperator的写法不正确,导致无法返回正确结果。

项目总结

个人使用技术

使用技术 用途
mongodb 数据库
mongorepository 实现简单查询以及count
mongotemplate 实现复杂查询
Service 为controller提供接口

反思与总结

遇上了前端与后端接口定义不一致等等问题,导致部分数据库表的修改。也添加了很多工作量。前端接口没有定下来,导致后端进度较慢。等待中就在学习更复杂接口,总体而言也没由拖累太多进度。数据库应为采用mongorepository,且一般只添加了不需查询的字段,其实也没有太多变化。但自己设计,与前端后期添加字段区别较大。最为拖进度的是,前端实现了页面,却没有对应文档,导致整个后端无法行动,只能先实现部分简单查询,以及列表接口。文档拖延,基本靠qq交流,但也导致一些分歧与问题,也重新实现了一些接口,增加重复劳动量。数据库接口,一般比较简单,同类接口只测试了一次,导致了一些接口出现了问题。也增加前端工作量。
开发时,需先协调好前后端,尽量使得前端接口先做好,也尽量让前端接口领先后端。这样方便前端开发,也给后端流出了时间,也能更好测试。

建议

  1. 遇到不少技术储备不足问题,以及选择技术失误,可以在开始前推荐一些技术和框架。
  2. 个人项目起到锻炼意义较少,比较类似与熟悉一些基本ui。如果直接使用命令行,那就更加少了,推荐去掉个人项目,或者强制使用ui界面,来提前适应如何提供对应界面。

猜你喜欢

转载自www.cnblogs.com/klchen/p/12014888.html
今日推荐