软件工程第9组大作业个人报告

大作业需求链接:https://www.cnblogs.com/31701085yc/p/11778257.html

大作业设计流图:https://www.cnblogs.com/31701085yc/p/11778257.html

前端源代码:https://github.com/hzhq1255/clubsystem

后端源代码:https://github.com/dozoroy/-

一、我做了什么: 数据库设计修改与需求修改、大部分增删改查接口实现、接口测试、简单聊天设计

          项目一开始的时候,我对springboot+vue的前后端分离结构基本没有什么概念。浩琦查阅了很多资料发给我,粗略地浏览完很多资料后,明白了核心思想是前端html页面通过axios调用后端的api接口并使用json数据进行交互。我先是跟着视频部署网上开源的同样结构的人事管理系统,在反复出错的过程中学习了简单的nodejs的npm命令,一步一步跟着教程去实现登录功能来引入数据库,明白了前端技术栈有vue.js,ElementUI,axios,后端技术栈有springboot,mysql,jpa。搭起来管理系统后端的bean,controller,dao,service这四层后慢慢地开始对前后端分离有了初步的认识,同时感受到了在开发需求简单,表结构不复杂时操作数据库使用jpa的方便快捷。需求开始设计得很丰满很理想,实际开发操作起来还是发现很多地方一开始没有深究,比如页面的拦截和用户能否注销,图片的处理等等。一些表的外码没有处理好导致表结构中存在多对多关系时不好操作,和处理前端的同学不断讨论修改完善后才有了相对比较合理的表结构,简化了一些需求和功能模块后写起接口来也更加得心应手。一边写接口一边讨论实际功能需求,和前端有了共同的方向算是很好的合作吧。这些都是数据库设计修改与需求修改的经历,接下来说说接口的实现和测试。hibernate属于遵循jpa规范的一种实现,但jpa是hibernate遵循的规范之一。这次作业的bean层entity是操作注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。DAO层即用来操作数据库的对象,这里我通过继承 JpaRepository的方式构建 DAO层,由于使用了 JPA,基本无需手动构建 SQL 语句,而只需要按照规范提供方法的名字即可实现对数据库的增删改查。service层实际上是对DAO层进行了二次封装,在DAO层中只定义基础的增删改查操作,具体的操作需要由service层来完成,而controller 是对响应进行处理的部分,所以掌握一些简单的注解尤为重要。接口测试则是使用postman重复性劳动,记录下没报错格式正确的get请求post请求的接口以及输入参数,方便写前端的同学调用。当与开发前端同学所需求的接口不一致时,回过头来修改和完善。聊天大厅设计是参考网上的webSocket官方文档学习修改完成,算是一个十分有趣的额外功能。

二、项目总结

        第一次尝试分工明确的团队合作开发,我觉得还是受益匪浅的。万事开头难,一开始找资料摸索简单的新技术栈时确实是茫然一片,上起手来后才能逐渐清晰起来。以后的团队开发过程中,一定要提前找好学习资料比如教学博客,官方文档,开源代码等等。小组讨论基本是多多益善,首先是统筹小组各个成员开发的进度,制度明确清晰的开发计划,使每个人都各司其职。其次,每个人的想法总会有不同之处,与组员要更加积极沟通自己的想法,优化完善正确的开发设计,纠正不合理的开发设计,使自己的想法大致上符合逻辑。最后是后端写接口要考虑更加周全,照顾前端的需求设计,代码尽自己的能力化繁就简,增加可读性,使其他组员修改或者检验时有更好的体验。

三、课程建议

        毫无疑问软件工程这门课是我目前大学生涯最难忘的一门课,朱老师上课深入浅出,从自己的读书经历娓娓道来,授予我们科学高效的学习方法,告诉我们要向比自己厉害的人学习,多问多做。从自己带的优秀毕业生设计告诉我们要学真本领,好的技术永远不会过时。又从自己的儿子女儿讲英文的故事讲述要紧跟时代步伐学习新技术。即使是学同样的东西,经过时间的提炼,学习方法可能已经发生很大的变化。我觉得可以增加大作业中期的抽查小组成员分工,临时抽查几个小组其中一个成员的开发进度,使每个组的成员都能有更好的参与度与沟通性。

猜你喜欢

转载自www.cnblogs.com/31701070dzr/p/12016902.html