| 知乎专栏 |
2000 年入行,完整走完互联网渲染技术的全周期,从最早的 CGI 到如今遍地开花的前后端分离,最后在 AI 浪潮里反向折返,重新拥抱服务端渲染,这段经历藏着互联网技术的轮回与当下 AI 时代的新解法。
2000入职场,我经历了什么?
最早 Apache HTTPD C语音 / Perl语音开发CGI
IIS + JSP + Access + SQL Server / Apache/Nginx fastcgi PHP + MySQL
Tomcat Java JSP + JavaBean + PostgreSQL
EJB Jboss, Oracle Weblogic , IBM websphere
前后端分离 Nginx + Jquery / Angular / React /Vue.js /Next.js + Java Springboot
前端发展过程:HTML拼接,HTML模版,前后框架+后端分离
事实上前后端分离这些问题才出现的:
页面刷新,每次访问页面都需要重新渲染和刷新
加载性能,页面全量加载网络传输慢
HTML拼接繁复
等等问题,请帮我补充。
前后端分离并为解决所有问题,而为还带来新的问题:
前端越来越复杂,导致全栈能力要求越来越高,不得不前后端变成两个岗位。诞生了新的岗位,前端和后端开发开发工作需要贫富密切沟通,对齐接口。
数据安全,接口json数据安全带来全新挑战,以往数据在服务端处理,用户只能看到输出经过。现在不得不为前端提供很多明文接口。一旦权限疏忽,就存在泄漏数据风险。
随之AI时代的到来,加上 IPv6 + HTTP3 + Ajax + HTML模版 + 分级缓存等等技术。我决定重回服务器端渲染,甚至重拾PHP,我需要的是立即看到效果,不想每次启动服务。
我的做法是:
使用模版技术动态渲染HTML,同时给渲染结果做缓存。替代前端每次build dist 的过程。
Web 服务器做 etag, 修改时间,cache 头,缓存所有所有静态资源。
局部更新 ajax,json 也会做一层缓存(etag+修改时间+Cache-Control)
开启 HTTP3+Ipv6,实际每次加载都是走本地缓存。动态内容 ajax
最后,用户体验超好,AI写程序也不即完成前端还要写API接口。
目前我已经有多个项目用这种方式落地。
Springboot Webflux + Thymeleaf + Template
Python FastAPI + Jinja2 Template
下一个项目我打算回到 PHP 时代,因为 Springboot 和 FastAPI 每次都需要重启加载,真的太烦了。
架构这东西要复合时代,不同时代适合不同架构,现在是AI时代,给了打工人一次逆天改命的机会,需要考虑用AI加杠杆,放大自己的能力。
所以我不禁回到服务器端渲染,我还放弃了“微服务”返回到“单体服务”时代。