Bendi新闻
>
为什么前端技术栈如此复杂?

为什么前端技术栈如此复杂?

9月前
前端生态系统的复杂性是出了名的。在每一层,似乎都存在着不兼容的,相互竞争的标准。
没有通用的导入系统。ES 模块、CommonJS、异步模块定义(AMD)和通用模块定义(UMD)都是你可以导入或分享代码的不同方式。打包器试图通过支持多种方法来解决这个问题。但是代码经历了多层的压缩、混淆和转译。TypeScript 被编译成 JavaScript。网络上的代码会被压缩(以减少网络带宽)或混淆(以防止复制)。源映射可以解决其中一些问题,但这又是另一项需要配置的事情。获取正确的堆栈跟踪可能会很棘手。这需要语言、工具和运行时之间的协调。
极其不同的环境。一个特性和一个错误。前端代码预期在任何地方运行 - 不仅仅是浏览器。在不同环境中可用的上下文和 API 各不相同,很难知道你有哪些可用的上下文(更不用说知道你正在导入的库假设了什么)。这段代码能在服务器上运行吗?这段代码能在客户端上运行吗?这对开发者来说很困难(我可以使用什么代码)对于库维护者来说也很困难(我应该为哪些环境优化我的代码?)。
过度强调文件结构。太多的前端工具依赖于项目结构来进行行为设定。配置必须在项目的根目录中(导致了一长串的 tailwind.config.js、postcss.config.js、eslint.config.js、next.config.js 等)。文件结构对于导入代码是必要的恶,但在前端中,它却做了更多的事情。它可能是一个 API,用于将特定文件路由为网页,或者作为 API,或者作为静态网页,或者作为动态重新生成的网页。这些都很方便,但有时候很难调试,也很难发现代码库的部分内容。
配置地狱。开箱即用的工具有很多。长期以来,我们有 create-react-app,这是一个被赞誉的工具包,它集成了许多这样的工具,从一开始就为开发者提供了一个可用的配置。但是,如果你偏离了这条黄金路径,你就会被 20 多个开发工具和复杂的交互所困扰。几乎每个工具都在与其他工具争斗。ESLint(代码检查工具)和 Prettier(代码格式化工具)经常发生冲突。
开发失衡。在代码和部署之间有如此多的步骤,意味着热重载开发往往复杂。这导致了像 webpack-dev-server 这样的工具的出现,它为你处理了大部分问题。但是要警惕魔法。这些开发服务器中有太多的假设,它们可能会迅速偏离生产行为。
原文:https://matt-rickard.com/why-is-the-frontend-stack-so-complicated
作者:Matt Rickard


本文还收录在《2023 中国开源开发者报告》中,并特邀评论员——杜天微,狮偶编程语言作者对此文进行评价:前端技术复杂吗?这应该是技术和供应链进步带来的结果。就跟城市化一 样,不可逆,不可阻挡
长按识别二维码查看报告完整内容

点击阅读原文,查看报告

微信扫码关注该文公众号作者

来源:OSC开源社区

相关新闻

律所分钱这事儿,为什么越来越复杂?豆包大模型家族发布、火山方舟升级,火山引擎如何打造全栈AI技术服务?昆明“猴子虐猫事件”持续发酵,为什么我们如此恐惧?挑战 Spark 和 Flink?大数据技术栈的突围和战争|盘点移民问题在美国为什么会如此有争议?年仅38岁!大学老师从确诊到去世仅9个月,为什么这种病如此凶险?为什么GPU对AI如此重要?为什么最近爆炸事故如此密集?背后的真相让人意外为什么搂搂抱抱对孩子如此重要?全墨热议:为什么如今的青少年如此反社会?这条评论一针见血!为什么裁员首先从技术人员开始?Web技术栈也能开发鸿蒙应用?Taro 给出了一个友好的方案为什么波音737 Max存在如此多问题?职场女性为什么如此关注社交媒体“人设”?厦门大学韩家淮院士团队:为什么新冠疫苗的保护时间如此之短?——有关 COVID-19 疫苗的现状及未来野心藏不住了!不满CPU统治,英伟达决定彻底重写软件开发栈!黄仁勋:为什么还要用Python?命令行都不需要!GPU开发时代将至企业数字化转型赋能 | 「请听讲」第5期:数字化技术为什么给我们的生活和工作带来冲击?为什么《黑天鹅》剧本第三幕如此牛b?技术变革浪潮里,为什么第一波赚钱的通常是游戏?如此低劣不堪的教辅为什么会在鸡娃圈这么流行?????奥运会开幕式上演《燃冬》,为什么?杭州18岁男孩割掉自己生殖器官,丢进马桶冲掉,问他为什么?回答让人意外带你看清“阴谋论”:什么是阴谋论? 为什么人们会相信阴谋论?73岁安妮公主脑震荡住院,英国王室被诅咒了?为什么她是查尔斯身边最重要的女人…
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。