Leave JSP: 一套求稳的前后端分离改造方案
2022年了, 还在维护JSP吗?
20年历史,百万行代码,新需求不断,老业务没人讲得清, 你要重写吗?
JSP太大,exceeding the 65535 bytes limit 子页面套子页面,无限套娃 JSP中一堆Java代码 全局变量满天飞 form表单,window.open(),opener.window,ajax……
改变从这里开始: 一步步从JSP演进到现代前端开发。
项目说明
对一个使用JSP技术的遗留应用做前后端分离的改造。
模拟一个业务场景, 体现出在使用JSP技术时的常见问题, 并给出解决方案和改造的步骤。
现状
一个遗留项目,使用了JSP技术。
目标
前后端分离
为什么要改
前后端关注点不同,有独立的变化方向与变更速度。
问题与方案
- 前端JSP部分问题与方案
- 页面庞大
- 行数多
- include 方式嵌入多个子页面
- 混杂 java 变量
- 模块不清晰
- 混杂业务逻辑与展示逻辑
- windows
- 页面庞大
- 后端部分
- 页面展示元素与数据一同返回
- 接口部分
- 部分校验逻辑散落在Javascript函数中,而后端API并无相关校验。
- 部分数据请求之前有条件限制,而这些条件包含的业务只体现在了前端。
- 多个API修改同一个聚合的不同部分,无法保证聚合内部的业务一致性。
- 维护团队没有完整的业务知识
- 没有测试保护
改造实施路线图
- 前端改造
- 大页面拆分,模块化
- Javascript 部分去JAVA
- 接耦页面展示逻辑与数据,引入前端框架VueJs
- 请求异步化,完成前后端分离
- 前端工程化改造
- 服务端接口治理
- 业务知识梳理留存
- 测试保护