停止限制开源库的潜力

2025-06-07

停止限制开源库的潜力

今天早上我偶然发现了Griffith——一个基于 React 的网页视频播放器。它很酷,但你知道什么更酷吗?一个我们每个人都能用上的网页视频播放器。


开源中有一个反复出现的主题,其中TECHNOLOGY_X变得流行,然后一堆专门为(或移植到)的库和工具被创建TECHNOLOGY_X,但它们不能与TECHNOLOGY_Y或一起使用TECHNOLOGY_Z

这在前端 JavaScript 领域尤其常见,因为多年来,有很多框架层出不穷。举个例子!

  1. 你想要一个搜索框,但你找到一个Angular 搜索框
  2. 您想要一个地理编码库,但您找到一个jQuery 地理编码库
  3. 您想要一个日期选择器,但您找到了Ember 日期选择器

不必如此!

只需稍加考虑,您就可以构建一个通用的库,然后提供小型包装库,使通用库适应特定的框架用例。这被称为适配器模式,我发誓它并不像我们在这条推文中所说的那么糟糕。

多年来,尼古拉斯·贝瓦夸一直运用这一原则,并取得了巨大的成功。如果你需要帮助来弄清楚细节,他是一个很好的榜样!

举个例子:他创建了Dragula——一个可以直接与原生 JS 一起使用的通用拖放库。之后,他又开发了适配器(他称之为桥接器——区别同样如此):

  1. 官方Angular 桥
  2. 官方Angular 2 桥接器
  3. 官方React 桥

这种方法更酷的是,Nicolás 为其他人铺平了道路,让他们能够为 Dragula构建Ember 适配器、为 Dragula 构建Aurelia 适配器等。

明年什么时候TECHNOLOGY_X++推出?你可以猜猜要为《Dragula》制作一个适配器需要什么……


当你将你的库与特定的技术或框架强行绑定时,它的潜在影响就会受到限制。通过提前思考并多付出一些努力,你的图书馆可以让更多人受益。甚至可能是未来的你,一旦你继续前进TECHNOLOGY_X++……

注:请阅读changelog.com 上的原文

文章来源:https://dev.to/jerodsanto/stop-limiting-your-open-source-library-s-pottial-9bn
PREV
为什么我们选择 Turbolinks 而不是构建 SPA
NEXT
在静态网站服务工作者示例中实现渐进式 Web 应用程序 (PWA)