hi ARAM

老系统在不丧失服务端渲染特性的情况下进行渐进重构

2023/03/06

许多项目时间久了会存在难以维护的困境,特别是十年前的老项目那时候普遍是PHP、JSP、ASP这样,将服务端代码和前端代码同时存在于一个项目里的情况。

这个时候项目维护久了就会变得很乱,大部分这样的项目是没有模块规范的,导致各个文件的依赖非常混乱。

这也就意味着项目迭代维护的开发成本是会越来越高的,而且时间越久,越不利于重构,特别是SEO这一块,十年沉淀的SEO,改版后可能就要重新进行权重配比。

这样就陷入了一个困境,重构又不可能,想让现代的前端技术应用于项目也变得很困难,最主要的还是服务端渲染的能力不能丢失。

在这个背景下就出现了一个方案,就是利用现代前端框架的SSR能力。

其实背后的拓扑很简单,老项目的部分页面,或者页面的某些模块用Vue/React这样的框架去实现,但是这部分实现的代码需要去支持SSR,然后单独起一个HTTP服务。

然后假定旧的项目是PHP的,那当PHP程序知道,这个页面或者这个模块是由另一个HTTP服务提供的,那就在PHP程序中去请求相应的HTML内容,在直接echo到当前项目中。

背后的逻辑大概是这样:

浏览器
  ↓
PHP APP
  ↓
确定是否需要从另一个服务拿HTML
   ↓           ↓
如果不是       如果是
   ↓           ↓
   ↓         请求SSR服务,SSR服务响应HTML
   ↓           ↓
原有逻辑      拼入PHP服务要响应的HTML
         ↓
     响应浏览器

这个方案不确定业界是不是存在,个人把他命名为RHSSR,Remote HTTP Server Side Render。


上一篇:CSS实现正方形
下一篇:站点怎么去掉URL中.html资源后缀的