需求分析->设计->编码->测试->上线运维
项目经理:对整个项目负责,任务分配,把控进度
产品经理:进行需求调研,输出需求调研文档,产品原型
UI设计师:根据产品原型输出界面效果图
架构师:项目整体架构设计、技术选型
开发工程师:代码实现
测试工程师:编码测试用例,输出测试报告
运维工程师:软件环境搭建、项目上线
开发环境(development)
测试环境(testing)
生产环境(production)
定位:专门的餐饮企业(餐厅、饭店)定制的一款软件产品
功能架构:
产品原型:用于展示项目的业务功能,一般有产品经理设计
技术选型:技术框架及中间件
前后端结构
项目主要是做后端开发,前端直接给的,启动nginx前端即可运行。
后端整体结构
1 | sky-take-out | maven父工程,统一管理依赖版本,聚合其他子模块 |
2 | sky-common | 子模块,存放公共类,例如:工具类、常量类、异常类等 |
3 | sky-pojo | 子模块,存放实体类、VO、DTO等 |
4 | sky-server | 子模块,后端服务,存放配置文件、Controller、Service、Mapper等 |
sky-server 子模块中存放的是 配置文件、配置类、拦截器、controller、service、mapper、启动类等
将项目荡到本地,装好Git,通过Git远程仓库对项目进行管理,Git的基础使用--->Git基础使用-CSDN博客
数据库直接运行sql脚本,数据库的设计我也还在学习中,暂且跟着视频来。
后端的初始工程中已经实现了登录功能,直接进行前后端联调测试即可,调试可以打断点dbug。真实工作开发中都是打断点做调试
前后端地址不一致,前端怎么访问后端的?
是通过nginx服务器做反向代理, nginx是一个高性能http和反向代理web服务器。前端将请求发送到nginx,nginx再将请求发给后端。这样做有三大好处:
1、高性能,nginx可以缓存后端数据,如果单位时间内同一个访问请求,nginx可以通过缓存直接响应给前端。
2、负载均衡,nginx可以配置多个服务器,通过轮询使得响应可以从多个服务获得。
3、保证后端安全,前端不可以直接访问后端,别人就不知道后端的真实路径,相对情况下就不会被恶意攻击,后端的数据就能够得以保护。
数据库中的用户密码是明文存储,如果数据库受到攻击,用户的密码就会暴露,所以用md5对用户密码进行加密处理。md5加密只是单向的,不可逆,将初始化的代码加代码。