查看原文
其他

前端怎么这么多新轮子啊???

CUGGZ 前端充电宝
2024-08-31

在前端开发中,“轮子”一词是指各种工具、库和框架等。不知你是否注意到,程序员们特别热衷于造轮子,尤其是在前端领域,新的工具和技术层出不穷。那么,为什么前端程序员如此热衷于造轮子呢?本文就来简单探讨一下。

造轮子可以分为两种:重新造轮子重新发明轮子

  • 重新造轮子,是指尽管市面上已有类似工具,开发者仍出于练习目的去模仿实现。比如,许多前端新手入门时都梦想着打造自己的 UI 组件库或实现一个后台管理系统。这类项目通常以练手为主,旨在发现其中的难点并积累经验。

  • 重新发明轮子,则是由于现有工具不完全符合个性化需求,于是开发者决定从零开始打造新工具,或在现有工具基础上进行二次开发,以满足个性化需求,同时为其他开发者提供便利

无论是造轮子还是发明轮子,并无好坏之分。造轮子有助于提升个人经验,而重新发明轮子既满足个性化需求,又能惠及他人,实现双赢。我们经常看到前端领域涌现出各种新框架和工具,很多都是在重新发明轮子。作者发现了现有工具的不足之处,因此决定自己动手,打造全新的解决方案。

正是有人不断发明轮子,才有了越来越完美的轮子:

接下来,让我们通过分析几个近几年被重新发明的新轮子,来理解重新发明轮子的意义。

Bun

2022 年,JavaScript 运行时 Bun 一发布便迅速走红。Bun 之所以引人注目,主要归功于其卓越的速度和全面的功能。我们目前最常用的 JavaScript 运行时是 Node.js,然而它存在一个显著的问题——速度较慢。为了解决这一问题,Bun 应运而生。它针对 Node.js 的缓慢性能问题提供了显著的改进,并且作为一个一体化的解决方案,集成了打包器、测试运行器以及与Node.js兼容的包管理器。Bun不仅弥补了Node.js的不足,还通过提供完善的工具链,为JavaScript开发带来了革新。

Bun 的 Github Star 增长趋势
Bun 的诞生可以说是重新发明轮子的过程。其作者洞察到 Node.js 的局限性后,决定亲自打造一款新的运行时。在我看来,这个过程颇具意义。

Rspack

Rspack 是字节跳动去年推出的一款自主研发的构建工具。在此之前,开发团队广泛采用的构建工具是 Webpack,它也是目前市面上使用最广泛的构建工具。然而,Webpack 存在两个显著问题:一是配置不够灵活,二是性能有待提升。由于前端社区没有合适的解决方案,团队决定自行研发 Rspack。Rspack 实现了 Webpack 的大部分功能,能够对现有的 Webpack 项目实现无缝迁移,并带来了 5 到 10 倍的编译性能提升。

Rspack 每周 npm 下载量
如今,许多使用 Webpack 的项目纷纷选择迁移到 Rspack,从而获得了显著的性能提升。这一趋势不仅彰显了 Rspack 的强大优势,也从侧面证明了重新研发 Rspack 的意义。

shadcn/ui

去年开源的 shadcn/ui UI 组件库,自发布以来在 GitHub 上已迅速积累了 64k Star,吸引了众多国外项目的青睐。面对社区中琳琅满目的优秀 UI 组件库,为何还要再造一个新的呢?关键在于 shadcn/ui 的独特定位:它并非一个传统意义上的组件库,而是个组件的大熔炉,让用户能够直接取用单个 UI 组件的源代码,赋予开发者前所未有的灵活性和定制自由。开发者不必再费尽心思去覆盖组件库的默认样式,使用起来随心所欲,非常便捷。

shadcn/ui 的 Github Star 增长趋势
在众多优秀的 UI 组件库中,shadcn/ui 成功地脱颖而出,堪称是对“重新发明轮子”理念的一次精彩演绎。

小结


如果你是以学习为目标,那么投入时间造轮子无疑是一种非常有效的学习方法。

然而,在实际开发过程中,我们必须注重效率,避免不必要的努力。当有成熟且优质的工具可供使用时,直接采用这些经过时间检验、设计周全的工具是明智之举,无需浪费时间在重复性工作上。

但是,当现有工具无法满足个人需求,或者存在许多可以通用化的方法时,重新发明轮子就显得非常有价值。

对此你怎么看?欢迎在评论区留言讨论~

个人观点,仅供参考
继续滑动看下一个
前端充电宝
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存