文章目录
近期报名参加了一个酒旅类型的实战项目,其中包括的功能与市面上酒店预订的软件功能相差无几。在这期间也学习到了不少东西,所以在这记录总结一下。
一.项目介绍
本项目参考了携程、同程等热门软件,通过团队协作的开发模式,采用前后端分离的设计思路,将开发周期控制在一月左右,实现了基本的功能模块,例如界面首页酒店模糊查询、根据经纬度定位附近酒店、首页跳转后酒店列表的展示、酒店详情的介绍、酒店相关图片的展示、优惠券、折扣价、个人评论等。
二.架构及技术介绍
2.1 架构图
如下图所示是系统的整体架构,从前端页面请求,到后端持久层数据库;通过采用微服务部署的思路,以及结合日志收集,运维报警等模块,使得项目整体更加完善。
2.2 后端技术
2.3 前端技术
2.4 开发工具
2.5 开发环境
三.角色与职责
本次项目采用分队模式,分别是架构组,助手组,后端开发组,前端开发组。后端开发组又分为四个小队,采用技术队长+管理队长分工合作的方式,而我是其中一个开发小队的技术队长。日常工作就是替队员们提供编码思路,解决在项目中遇到的疑惑及难题,以及阶段性的项目汇报,传达指导老师的任务安排,了解队员们的工作进展。
四.流程介绍
项目采用以周为迭代周期的开发方式,通过每周完成一个小任务,最终使得整个项目得以完成,由于一开始只考虑了后端模块的实现,前端小程序的开发是中途添加的想法,所以项目实际完成是在五一期间,比计划时间延迟了一周左右。
4.1 数据库设计
我们团队主要设计界面首页的搜索模块,所以负责管理价格、星级、地点等枚举设计,从最开始的分表设计多个枚举,到后期采用单表设计,将多种类型枚举整合在了一起。
4.2 接口设计
主要设计了三大接口,前端关键词搜索接口;获取所有枚举列表接口;后端对枚举接口进行增加、删除、修改、查询。链接如下
4.3 代码实现
下面介绍两个接口的简单使用:获取全部枚举、es关键词搜索。
- 获取全部枚举
@ApiOperation(value = "获取全部枚举")
@GetMapping(value = "/enum-list")
public CommonResult<List<EnumType>> allEnum() {
List<EnumType> enumTypeList = enumService.getDictItem();