写点什么

前端开发的“内卷”终结者:扔掉复杂的 JavaScript 框架,用 PHP 与 jQuery 构建应用

  • 2024-10-16
    北京
  • 本文字数:2785 字

    阅读完需:约 9 分钟

大小:1.32M时长:07:41
前端开发的“内卷”终结者:扔掉复杂的 JavaScript 框架,用PHP 与 jQuery构建应用

导读:在现代互联网时代,随着技术的迅猛发展,JavaScript 框架已成为 Web 开发领域的主流。然而,越来越多的开发者开始质疑这些框架的必要性,认为它们带来了不必要的复杂性和性能问题。本文深入探讨了这种复杂性的反作用力,从初创企业到公共服务网站,探究了为何“保持简单”正在重新获得青睐。通过多个开发者的声音,我们揭示了 JavaScript 框架对项目的潜在影响,以及如何通过渐进增强和避开过度依赖框架,构建更高效、更可靠的 Web 应用。无论你是开发者、技术管理者,还是对互联网技术感兴趣的读者,这篇文章都将为你带来新的思考角度,揭示一个或许即将到来的技术潮流转变。

 

反抗 JavaScript 框架的潮流正愈演愈烈。在 Lex Fridman 的近期访谈中,AI 应用领域的开发者 Pieter Levels 分享了他的独特开发哲学:他仅依赖基础的 HTML、PHP、少量 jQuery 增强的 JavaScript 以及 SQLite 数据库,坚决不采用复杂的 JavaScript 框架、现代编程语言或 Wasm 技术。

 

Levels 坦言:“我观察到 PHP 正在复兴。人们似乎对层出不穷的框架感到了厌倦。JavaScript 框架虽功能强大,却常显笨重,维护成本高昂,每次新版本发布都可能带来大规模的代码重构需求。相比之下,PHP 以其稳定性和可靠性著称,仍能胜任各种工作场景。”

 

在他的个人简介中,Levels 自豪地列出了自己参与创立的七个创业项目,并在其网站上积极倡导:“快速迭代,频繁发布产品。” 这充分彰显了他作为实践者的本色,倾向于高效快捷的开发路径,因此选择绕开那些复杂的 Web 框架。

 

众多知名开发者纷纷在社交媒体上附和了 Levels 的观点。

 

“那些鼓吹复杂性的推销员会让你深信,如今你已无法单凭一己之力完成任何事情,”Ruby on Rails 的缔造者 David Heinemeier Hansson(DHH)在其推文中写道。“他们会告诉你,你无法处理身份验证、无法实现扩展、无法运行数据库,甚至无法让计算机连上互联网。他们想让你觉得自己束手无策,只能依赖购买他们的产品。别上当,勇敢拒绝这种套路。”

 

更有甚者,一些开发者对自己曾经转向 JavaScript 的决定表示了深深的懊悔。

 

“2010 年,将我的主站从 PHP 迁移到其他平台,是我职业生涯中最糟糕的决定之一,” 网页开发培训界的领军人物、Frontend Masters 公司的创始人兼 CEO Marc Grabanski 在推文中坦言。“那时,我的原生 PHP 网站每月吸引超过一百万独立访客,但那次迁移到更新语言和框架的尝试却让网站彻底失去了原有的势头,最终导致了它的没落。” 在随后的详细解释中,他进一步澄清,自己的观点并非针对 PHP 本身。“我的意思是,如果你的项目能够凭借简洁的代码顺利运行,那就不要盲目追求潮流而进行过度设计。保持简单,并全力以赴地维持项目的良好发展势头。”

 

“简约至上” 的理念,在计算机科学的殿堂里早已根深蒂固。回溯至 1998 年,史蒂夫·乔布斯(Steve Jobs)在一次访谈中深刻阐述道:

 

“化繁为简,往往比构建复杂系统更为艰巨:它要求你倾注大量心力去梳理思绪,直至达到化境。但这份努力绝非徒劳,因为一旦实现,你将拥有移山倒海般的力量,轻松驾驭复杂。”

 

复杂度的另一端

有趣的是,这股简约之风不仅在由 Pieter Levels 引领的 “奋斗不息” 创业浪潮中重新焕发生机,还悄然渗透至专业的 Web 开发领域,成为一股不可忽视的力量。

 

在开发者群体中,很难找到像 Pieter Levels 与 Alex Russell 这样背景迥异的两位人物了。Levels 是 PHP 领域的积极倡导者与成功创业者,而 Russell 则身为微软浏览器工程师,同时也在 Web 开发界享有极高的声望,是引领潮流的关键人物之一。尽管两人在技术理念上大相径庭,但令人瞩目的是,他们如今都不约而同地对复杂的 Web 框架持批评态度。

 

在近期的一系列博客文章中,Russell 发起了一项个人研究,深入探讨了 “JavaScript 主导的前端文化如何对美国的公共服务体系造成不利影响”。他以 BenefitsCal 为例,详尽剖析了公共服务网站中 JavaScript 过度使用的弊端。

 

BenefitsCal,作为加利福尼亚州新近推出的在线服务平台,旨在为寻求 SNAP 福利(即食品券)援助的家庭提供便捷服务。然而,通过运用 WebPageTest.org 及 Google Core Web Vitals 等权威网页性能评估工具,Russell 揭示了该网站存在的一个严峻问题:JavaScript 文件体积庞大,严重拖慢了网站的加载速度。

 

他指出:“首要问题在于,BenefitsCal 网站依赖于总计达 25MB(未压缩状态,实际传输时压缩至 17.4MB)的 JavaScript 代码,且这些代码在展示任何实质性内容之前便需完全加载。即便在最佳网络环境下,这样的加载速度对多数用户而言也是难以接受的。对于那些网络条件不及 P75 基线模拟标准的用户而言,他们将面临更为漫长的等待。更为严重的是,如此庞大的脚本量还显著增加了在低性能设备上浏览器标签页崩溃的风险。”

 

系列文章的第四篇章中,Russell 针对上述问题提出了一系列应对策略。他特别推荐我们研读英国政府制定的 “渐进增强” 标准,该标准被收录在 gov.uk 网站的 “服务手册” 之中,作为一项重要的指导性内容。Russell 所引用的链接页面开篇即明确定义道:

 

“渐进增强,是一种精心规划的网站及应用程序构建策略。其核心思想在于,我们应从确保网页仅凭 HTML 就能实现基本功能为起点,随后再循序渐进地融入层叠样式表(CSS)及 JavaScript 等技术元素,以逐步提升用户体验。”

 

摒弃 JavaScript 框架的浪潮

 

在 Web 开发的广阔天地中,利用 PHP 与 jQuery 迅速搭建起一个简易的 Web 应用,与坚守渐进增强原则、致力于打造符合 Web 标准的应用,两者之间的鸿沟显而易见。前者倾向于迅速推出 “最简可行产品”(MVP),往往优先满足配备高端设备如 iPhone 用户的体验;而后者,则深谋远虑,旨在为未来的扩展奠定坚实基础,同时确保应用能够惠及最广泛的用户群体,包括那些并不使用 iPhone 的用户。

 

然而,在追求这些目标的过程中,JavaScript 框架却意外地成为了绊脚石。Pieter Levels 在开发众多应用时,明智地选择了绕开这些复杂的框架;而 Alex Russell,则更是不遗余力地推动公共服务网站采纳 更为优化 的开发实践。

 

这股反对过度依赖复杂 Web 框架的潮流,或许正预示着一种更加理性、务实的开发理念正在兴起。

 

作者简介:

 

理查德·麦克马纳斯(Richard MacManus),作为《The New Stack》的资深编辑,深耕于 Web 及应用开发趋势的报道领域。早在 2003 年,他便创立了 ReadWriteWeb,并将其发展成为享誉全球的科技新闻巨头,深刻影响了行业内外。从博客、社交媒体到 Ajax 等革命性互联网工具的萌芽初现,再到现今风靡的 AI、元宇宙及 JavaScript 框架等前沿技术,麦克马纳斯凭借敏锐的洞察力与深刻的解析力,多年来始终屹立于技术趋势预测与解读的前沿,被誉为该领域的领航者。

 

原文网址:

 

https://thenewstack.io/developers-rail-against-javascript-merchants-of-complexity/

 

声明:本文为 InfoQ 翻译整理,未经许可禁止转载。

2024-10-16 16:3110145

评论

发布
暂无评论
发现更多内容

SAP CRM, C4C和Hybris的后台作业

汪子熙

CRM SAP C4C Hybris

SAP Netweaver和Hybris的数据库层

汪子熙

abap Hybris

SAP CRM WebClient UI和Hybris backoffice UI开发的相同点

汪子熙

CRM SAP abap WebClient UI Hybris

Dubbo 路由规则之条件路由

青年IT男

dubbo

Hybris开发环境的license计算实现

汪子熙

Java SAP Hybris Commerce Cloud

CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑

汪子熙

CRM abap WebClient UI

使用Excel消费C4C的OData service

汪子熙

Excel SAP C4C OData

如何将Twitter的内容导入到SAP CRM和C4C

汪子熙

twitter CRM SAP C4C Cloud for Customer

ABAP Netweaver, Hybris Commerce和SAP 云平台的登录认证

汪子熙

abap Netweaver Hybris Commerce Cloud

动态控制SAP C4C UI元素的显示和隐藏

汪子熙

CRM SAP C4C Cloud for Customer

Java基础(一)——Java入门和IntelliJ IDEA使用

空城机

Java IDEA 5月日更

着力区块链技术等方向,上海这所高校成立研究院

CECBC

Java 基础(一)——Java 入门

空城机

Java 5月日更

科大讯飞语音转文字以及中文分词的Java测试代码

汪子熙

Java 人工智能

WLS2搭建Django部署环境

IT蜗壳-Tango

5月日更

PlatONE联盟链如何实现大规模生产级应用?

CECBC

UI5 Source code map机制的细节介绍

汪子熙

JavaScript SAP SAP UI5

ABAP Netweaver和Hybris里获得内存使用统计数据

汪子熙

Java CRM abap C4C Hybris

(VMware)ubuntu环境下搭建Swarm+Stack一站式部署容器集群

逸少

Docker Docker Swarm Docker-compose Ubuntu20.04

C4C和CRM里获取当前登录用户分配的Organization Unit

汪子熙

CRM SAP C4C Cloud for Customer

SAP CRM WebClient UI里的文件是如何上传到ABAP Netweaver后台的

汪子熙

chrome CRM SAP WebClient UI

SAP成都C4C小李探花:浅谈Fiori Design Guidelines

汪子熙

大前端 Fiori SAP UI5

人生算法:掌控大脑的两种模式

石云升

读书笔记 思维模型 5月日更

redis sentinel架构

王瑞强

使用Excel调用ABAP系统的函数

汪子熙

Excel Office SAP abap

UI5应用部署到Fiori On-Premise和On-Cloud的Launchpad

汪子熙

Fiori SAP UI5 Launchpad

throw与throws的区别学习笔记

风翱

异常 5月日更

CRM WebUI and Hybris的Product页面标题实现

汪子熙

CRM SAP WebClient UI Hybris

数据湖vs数据仓库vs数据集市

数据社

数据仓库 数据湖 5月日更

使用ABAP和JavaScript代码生成PDF文件的几种方式

汪子熙

JavaScript PDF abap Acrobat

利用Excel导入数据到SAP C4C

汪子熙

Excel SAP C4C Cloud for Customer

前端开发的“内卷”终结者:扔掉复杂的 JavaScript 框架,用PHP 与 jQuery构建应用_架构/框架_Richard MacManus_InfoQ精选文章