前 Mozilla 浏览器工程师:Web 开发的七大奇怪观念,你中招了吗?

前 Mozilla 浏览器工程师:Web 开发的七大奇怪观念,你中招了吗?

💡 原文中文,约8100字,阅读约需20分钟。
📝

内容提要

前Mozilla工程师指出,浏览器工程师与Web开发者处于不同世界,前者未必了解真实开发挑战。Web开发远比想象复杂多元,开发者应认识自身约束,不必盲从教条,对实践保持信心。

🔎

延伸解读

浏览器工程师与Web开发者的认知鸿沟

文章指出,浏览器工程师专注于特定领域,使用C++和Rust,很少接触真实Web开发中的工具链问题,如webpack、TypeScript错误、跨浏览器兼容性等。因此,他们对Web开发挑战的了解可能不如开发者预期。这提醒我们,专业背景不同会导致视角差异,不应盲目认为平台专家就完全理解应用开发者的日常困境。

标准制定过程并非纯粹理性

作者以亲身经历揭示,Web标准制定工作组的决策可能受个人魅力、疲劳甚至晋升需求影响,并非完全基于技术优点。虽然成员们善良且意识到局限,但收集开发者反馈的效果有限。这有助于读者理解标准背后的现实因素,避免将标准制定者神化,同时认识到参与反馈的重要性。

SPA与MPA之争:没有银弹

针对“浏览器不适合SPA”或“MPA将取代SPA”的观点,作者以Firefox开发者工具等为例反驳,并指出Figma、Photoshop等应用难以用MPA实现。同时,作者肯定MPA和视图转换规范的价值,但强调架构选择应基于具体应用需求,而非教条。这提醒开发者根据自身约束做决策,而非盲目跟风。

构建步骤与JavaScript的合理使用

作者对“无需构建步骤”的教条表示惊讶,认为编译器优化能提升性能,且构建时完成计算优于运行时。同时,他指出并非所有站点都需无JavaScript运行,如Figma等应用离不开JS,适当使用JS还能提升无障碍性。这鼓励开发者理性看待工具和JS,以用户体验为核心,而非固守极端原则。

❓

Q&A

浏览器工程师真的比Web开发者更懂Web开发吗?

不一定。浏览器工程师通常专注于特定领域,使用C++和Rust,很少直接面对webpack、TypeScript错误、跨浏览器兼容等实际开发问题,因此他们对真实Web开发挑战的了解可能不如Web开发者深入。

为什么Web标准制定过程并不像想象中那么理性?

标准制定会议中,决策可能受个人魅力、疲劳程度甚至晋升需求影响,并非完全基于技术优点。虽然参与者都是善良且意识到局限的人,但反馈机制如Twitter投票往往只吸引前沿开发者,难以全面反映Web开发者的实际需求。

浏览器真的不适合运行单页面应用(SPA)吗?

这种观点并不准确。Firefox的前端和开发者工具本身就是用React和Redux编写的SPA,说明浏览器能够处理复杂的长寿命DOM树和频繁动态更改。移动端浏览器未针对SPA优化,并不代表存在根本缺陷。

MPA会取代SPA成为未来趋势吗?

不一定。虽然MPA和视图转换规范带来更好体验,但像Figma、Photoshop Web、Slack、Discord、Google Maps等应用很难用MPA实现。对于离线优先的移动Web应用,采用MPA可能增加复杂性,导致更多错误和延迟。

所有网站都应该在没有JavaScript的情况下工作吗?

并非如此。虽然无JavaScript站点能提供降级体验,但像Figma、Photoshop Web、浏览器开发者工具等应用很难在没有JavaScript的情况下运行。关键在于确保站点在失去JavaScript时仍能提供良好体验,而非教条化地要求所有站点都无JavaScript。

Web开发中构建步骤是否必要?

构建步骤有其价值。编译器优化能提升性能,优化代码资产、预生成静态HTML都是合理做法。将计算和I/O推迟到运行时并非总是最佳选择,客户端Rust/WASM框架的兴起可能让构建步骤更加普遍。

🏷️

标签

➡️

继续阅读