写点什么

前端开发的“内卷”终结者:扔掉复杂的 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:317

评论

发布
暂无评论

18.理智分析--人类离威胁还相当遥远

Databri_AI

人工智能

Go 编码习惯

baiyutang

Go 语言 9月日更

学生管理系统架构设计

一叶知秋

#架构实战营

玩转TypeScript工具类型(中)

有道技术团队

typescript 大前端 网易有道

什么是数据驱动

奔向架构师

数据治理 9月日更

在线JSON转typescript工具

入门小站

工具

架构实战营 外包学生管理系统的架构文档

💤 ZZzz💤

架构实战营

图数据库在社交方向上的应用

6979阿强

社交网络 GraphScope 图数据 图关系

共助数据自主创新生态|DataPipeline实时数据融合平台与华为云GaussDB数据库完成兼容互认证

DataPipeline数见科技

设定Docker容器日志的大小和轮询规则

耳东@Erdong

Docker log 9月日更

面试官让手写队列,差点挂了

bigsai

Vue进阶(幺幺叁):element ui 表单验证 this.$refs[formName].validate()问题解决

No Silver Bullet

Vue 9月日更

数据中台建设的9大误区,你中了几条?

博文视点Broadview

企业级数据融合平台上线,DataPipeline助力中国最大保险公司海外业务再创佳绩!

DataPipeline数见科技

选择低代码应用程序开发框架的5个关键标准

低代码小观

程序员 低代码 企业开发 低代码开发 开发框架

OpenMetric与时序数据库模型之主流TSDB分析

华为云开发者联盟

Prometheus Influxdb 时序数据库 tsdb OpenMetric

架构训练营模块三作业

TIEDPAG

架构训练营 模块三

10行代码集2000张美女图,Python爬虫120例,再上征途

梦想橡皮擦

9月日更

国足历届世界杯对战记录整理

6979阿强

图算法 GraphScope 2022年卡塔尔世界杯 中国国足

密码学系列之:bcrypt加密算法详解

程序那些事

算法 加密解密 密码学 程序那些事

眼界大开 声临其境丨胡宜峰:视频深度伪造检测技术在内容安全领域的探索与实践

网易云信

人工智能 深度学习 音视频

深入了解现代web浏览器(第四部分)

GKNick

IP地理定位之数据驱动广告矩阵

郑州埃文科技

linux之read命令

入门小站

工具

谈 C++17 里的 Observer 模式

hedzr

c++ 设计模式 Design Patterns c++17 observer pattern

人工智能计算中心,助力数字经济发展的算力“虫洞”

脑极体

【Flutter 专题】45 图解矩阵变换 Transform 类 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

【LeetCode】从根到叶的二进制数之和Java题解

Albert

算法 LeetCode 9月日更

企业数字化转型选用“低代码平台”的8条建议!

优秀

低代码

固定QPS压测初试

FunTester

性能测试 测试框架 压力测试 QPS FunTester

腾讯看点CTO徐羽: QQ浏览器背后的推荐AI中台 | AICon

博文视点Broadview

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