知乎全站热榜 2024年12月04日
如何看待微软工程师提出“应该禁止所有新项目使用 React!”?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

软件工程师Alex Russell在博客中直言不建议使用React构建新项目,引发了开发者对React的热烈讨论。文章指出,客户端Web开发面临着诸多不可控因素,例如延迟、资源不足等,开发人员难以掌控。因此,文章主张采用更轻量级的方式,例如优先使用HTML和CSS,减少JavaScript代码,以提高性能和可维护性。同时,文章也批评了React等框架带来的冗余和复杂性,呼吁技术负责人和管理者做出更有益于客户的决策,打破现有框架带来的束缚。

🤔 **客户端Web开发面临不可控因素:** 客户端代码的运行受限于设备性能和网络环境,开发者难以掌控延迟、资源不足等问题,这与服务器端开发有着本质区别。

💡 **强调轻量级开发:** 文章主张减少JavaScript代码,优先使用HTML和CSS,因为它们更易于降级和压缩,能够提高性能并降低成本。

💻 **批评React等框架的冗余性:** React、Angular等框架为了控制客户端垃圾,反而导致NPM包中充斥着冗余代码,例如core-js、lodash等,增加了项目的复杂性和维护成本。

⚠️ **呼吁技术负责人做出明智决策:** 文章建议技术负责人和管理者打破框架的束缚,以客户利益为导向,做出更合理的技术决策,避免陷入框架主义的陷阱。

🚀 **工程设计的重要性:** 文章的核心观点是,解决客户端Web开发问题,关键在于具备大胆进行工程设计的勇气,而不是一味地依赖新的工具或框架。

“框架主义终究无法实现。正确的答案不是再搞出新的工具,而在于具备大刀阔斧进行工程设计的勇气。”有着十多年经验的软件工程师 Alex Russell 在他最近《React 不行,那到底什么行》的博客中提到。他在文中直接了当地表示,“如今任何人都不该用 React 构建新项目。”这篇博客迅速引起了开发者们的关注,并展开了一场围绕 React 的激烈讨论。 在服务器上运行的代码有着明确的成本计算方式。服务器端系统的性能和可用性由配置部门进行控制,延迟则由开发人员和 DevOps 工程师们主动管理。 相比之下,在客户端上运行的代码则纯由计算机本身决定。期间出现的一切延迟、客户端资源不足甚至是 API 功能都不在开发者的控制之内。 客户端 Web 开发应该是最典型的面向影响编程。就是说一旦代码离开数据中心,Web 开发人员就只能祈祷一切平安无事、再无插手的余地。 于是乎,一种不合理但有效的策略就强调尽量减少发出的代码。实际上,这意味着优先使用 HTML 和 CSS 来替代 JavaScript,因为前两者可以更优雅地降级并具有更高压缩率。声明式表单每发送一个字节都能生成更多功能性 UI,由此带来的弹性改进与成本降低将在网站的整个生命周期内发挥积极作用。 基于 React、Angular 及其他面向遗留系统,而且以桌面为中心的 JavaScript 框架,其技术栈则往往采取截然相反的做法。这类生态系统嘴上总说,“种种控制措施是为了防止不必要的客户端垃圾大量扩散所设立,”但由此带来的后果就是 NPM 合并的包充满了冗余,例如 core-js、lodash、underscore、不再存在的浏览器 polyfill、用户空间 ECC 库、moment.js 以及其他更多让人头痛的杂项。 这种文化必然引发失控,以至于 2024 年的 React 开发人员似乎也无法在不招惹这些遗留内容的前提下构建聊天机器人, 甚至还在使用非常笨拙的 MathML 或者 TeX 格式库来显示公式——而这一切,都只在极少数的会话中才被用到。 技术负责人和管理者应当打破这种魔咒,强制推动有益于客户的决策。换言之,

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

React 客户端Web开发 JavaScript框架 HTML 工程设计
相关文章