在 SPA 出现之前,Web 应用程序通常是多页的。这意味着每次用户与应用程序交互时,服务器都会发送一个完整的新页面,然后浏览器会再次加载它。每次用户在页面之间导航时,都需要完整的页面重新加载,这可能会减慢速度并带来不太流畅的用户体验。此类的应用程序通常使用服务器端技术构建,例如 PHP、Ruby on Rails、ASP.NET 等,这些技术在服务器端生成 HTML 代码并将其发送到浏览器。
PHP Web 应用程序的工作原理
Web 开发人员是全能型专家,他们同时负责前端和后端部分。随着 Web 技术的发展和用户的需求,需要新的解决方案,使他们能够使用交互式界面,而无需等待后端页面响应。
正是由于当时服务器资源有限,为了降低服务器负载并通过 JS 提供网页交互功能(无需等待服务器更新后再加载新页面),才出现了使用 Backbone.js 或 Angular.js 构建单页面应用 (SPA) 的初始解决方案。
纯前端开发人员的角色变得更加需要和多样化。他们开始专注于创建用户界面、使用HTML、CSS和JavaScript以及与 API 和服务器交互。另一方面,后端开发人员更加专注于数据处理、应用程序业务逻辑、使用数据库和创建服务器 API。
因此,我们迎来了 React、Angular2、Vue 等其他网页应用开发工具的新时代。现在,我们不再局限于创建简单的表单和列表,而是拥有了诸如 js 路由、状态管理、浏览器 API、将授权令牌绑定到请求、数据映射等功能。
然而带来的结果是:
浏览招聘网站,你会发现大量后端开发的职位空缺,例如:
这些都是基于服务器端的 Web 应用开发框架。得益于「服务端渲染 (Hydration)」和「可恢复性 (Resumability)」技术,服务器端只需要渲染界面更新的部分,无需整个页面重新加载。
后端开发方式的优势:
随着无代码解决方案、AI模板生成、强大服务器资源以及 SEO 需求的兴起,仅仅依赖现有数量的前端开发人员和工具来开发前端部分已经变得没有必要。
企业主会提出一个合理的问题:“为什么开发一个简单应用程序我需要同时雇佣一个纯前端开发人员和一个纯后端开发人员呢?”
全栈开发并非仅仅是为了节省人力成本而提出的管理概念,在当下它已经成为主流。你并不需要一个纯粹的前端开发人员,而需要的是能够构建整个应用程序的开发人员,他们可以直接执行简单的数据库操作或调用其他服务并展示结果。
毫无疑问,复杂的应用仍然需要分离的前端和后端,但大多数应用程序将逐渐远离 SPA,回归传统开发模式,只不过现在我们拥有了解决这些问题的方案。随着 HTMX 的出现,任何具有基础知识的后端开发人员都可以创建网络应用程序。现在,你甚至不需要懂 JS 就能创建简单的单页面应用。
你可能会问:“以前前端开发人员不仅负责 JS 逻辑,还负责 CSS 和选择器、HTML 及其语义化,现在后端开发人员也需要掌握这些了吗?” - 不用,现在可以利用 AI 或“HTML 布局设计器”根据设计工具生成的布局来生成模板。HTML 模板的逻辑和交互性现在都可以在服务器端定义。
现在是时候好好思考一下你是否真的需要所有这些复杂的前端开发工具,以及是否应该继续专注于纯前端开发了。
我认为未来的前端开发人员需要向全栈方向发展,具备 60% 的前端开发能力和 40% 的后端开发能力才能保持竞争力。HTMX 只是一个开端,朝着 Next.js 或 Nuxt.js 等工具发展的趋势将会愈演愈烈。如果不能适应新的实现方式,类似于 Angular 的框架最终可能会走向衰落,尽管 Angular 生态系统中已经出现了基于 Analog.js 的原型项目。