停止限制开源库的潜力
今天早上我偶然发现了Griffith——一个基于 React 的网页视频播放器。它很酷,但你知道什么更酷吗?一个我们每个人都能用上的网页视频播放器。
开源中有一个反复出现的主题,其中TECHNOLOGY_X
变得流行,然后一堆专门为(或移植到)的库和工具被创建TECHNOLOGY_X
,但它们不能与TECHNOLOGY_Y
或一起使用TECHNOLOGY_Z
。
这在前端 JavaScript 领域尤其常见,因为多年来,有很多框架层出不穷。举个例子!
- 你想要一个搜索框,但你找到一个Angular 搜索框
- 您想要一个地理编码库,但您找到一个jQuery 地理编码库
- 您想要一个日期选择器,但您找到了Ember 日期选择器
不必如此!
只需稍加考虑,您就可以构建一个通用的库,然后提供小型包装库,使通用库适应特定的框架用例。这被称为适配器模式,我发誓它并不像我们在这条推文中所说的那么糟糕。
多年来,尼古拉斯·贝瓦夸一直运用这一原则,并取得了巨大的成功。如果你需要帮助来弄清楚细节,他是一个很好的榜样!
举个例子:他创建了Dragula——一个可以直接与原生 JS 一起使用的通用拖放库。之后,他又开发了适配器(他称之为桥接器——区别同样如此):
- 官方Angular 桥
- 官方Angular 2 桥接器
- 官方React 桥
这种方法更酷的是,Nicolás 为其他人铺平了道路,让他们能够为 Dragula构建Ember 适配器、为 Dragula 构建Aurelia 适配器等。
明年什么时候TECHNOLOGY_X++
推出?你可以猜猜要为《Dragula》制作一个适配器需要什么……
当你将你的库与特定的技术或框架强行绑定时,它的潜在影响就会受到限制。通过提前思考并多付出一些努力,你的图书馆可以让更多人受益。甚至可能是未来的你,一旦你继续前进TECHNOLOGY_X++
……
文章来源:https://dev.to/jerodsanto/stop-limiting-your-open-source-library-s-pottial-9bn注:请阅读changelog.com 上的原文