前言
当一个已经五年甚至更久没有人维护的php项目,因众多客服问题且难以维护,突然重新启动,需要进行前后端分离重构时,我们需要思考些什么?
思考1
第一个问题,全量重构 or 分模块重构?
全量重构
优点:可以完全抛开老项目,不用考虑与老项目的逻辑、交互耦合问题,负担最小
缺点:对于一个功能丰富的系统来说,全量重构开发周期太长,不利于产品迭代开发。
分模块重构
优点:可根据功能和优先级安排重构模块的先后顺序;重构效果可更快上线以得到用户反馈
缺点:需考虑与当前数据、交互、逻辑的兼容性问题;登录态问题
最终,经过综合考虑,决定使用分模块重构
思考2
先从哪个模块入手?
想要把两个项目打通,首先要考虑的是登录态和用户信息的问题。
为保证重构后,用户可在两个项目内正常跳转、使用,则需要保持token,userinfo等信息同步。那么涉及到用户登录等信息获取的,就是登录模块,这也是我们要重构的第一个模块。
Tips: 这里的登录模块仅指前端重构,因为要保持同一个token被新老项目都认可。(对于新项目来说,登录模块是第一个重构的,但是对于去php是最后再做的
思考3
新老项目运行在不同的站点上,在跳转页面时一会是b.xxx.com,一会又是b1.xxx.com,那么如何让用户在使用时无感知域名的变化呢?
方案:利用ngnix location配置代理
举例:
server {
listen 80;
server_name b.xxx.com b102.xxx.com b104.xxx.com;
location = /payment/price {
proxy_pass = http://b1.xxx.com;
}
}