为了账号安全,请及时绑定邮箱和手机立即绑定

全面解析js库的可用性

从 12 个角度全面分析 JS 库的可用性,分别是:

1.特性。

2.稳定性。

3.性能。

4.包生态。

5.社区。

6.学习曲线。

7.文档。

8.工具。

9.发展历史。

10.团队。

11.兼容性。

12.趋势。

解析观点

1.特性

当你调研一个 JS 库,功能当然是最重要的,就好比 React 的用于开发 UI 界面非常方便,这是流行起来的一部分因素。

但同时 React 解决的问题很聚焦,于是把例如 Router 和 Store 部分交给社区给解决方案,这就让 Vue 的官方维护生态模式发展了起来。但这更多取决于你的偏好,像 lodash 这种精简的库也会长盛不衰,重要的是这个库提供的能力是否解决了你的业务问题。

2.稳定性

这个库如果经常出 BUG,那显然无法在生产环境使用。最好经过严格的测试,保证这个库一定不会出错,这样我们就可以专心排查业务的问题了。

3.性能

如果让用户 15 秒才能打开网页,那一切都是徒劳。

拿 PReact 为例子,为什么 API 相同的轮子可以活下来?因为体积小,而且 PReact 把宣传重点放在性能上。

4。包生态

用过 mnaco-editor 吗?大家都在用 webpack 但它却走 amd 路线,我不知道你用什么方法让它支持 commonjs 的,但这一定耽误了你不少时间。

包生态包括第三方包的成熟度,包的使用难易度,支持多少种模块化方案,是否支持 TS,有没有管理好自己的依赖等等。

开箱即用是最好的,有长期维护组织的更佳。

同时不要有太多相互竞争的社区方案为佳。比如工具库用 lodash 这很容易,但 React 数据流方案选择哪个?太多的竞争对手不断写软文抢夺用户(程序员)的注意力,试图说服他们加班重构。

5.社区

能否快速在 Stack Overflow 搜到问题的答案能反映出社区的活跃度,不论是官方文档还是第三方进行的问答。

社区越活跃,帮你提前踩的坑就越多,如果你遇到一个大家都没有遇到过的问题,并不代表你用得有多深度,而可能你根本就用错库了。

6.学习曲线

不要以为把库功能做的强大,就算难用点也会有用户跪舔,这是幻觉。

Vue 之所以那么火爆,是因为原生 HTML 的门槛比 JSX 低,而使用 React 的用户往往都觉得 JSX 比 HTML 门槛低。我也不知道该怎么描述,从 JS 可以产生一切的角度,学习 HTML 反而被认为是高门槛的体现。

所以认清现实,JSX Star 多并不是其理论有多先进(理论确实先进),而是很多人觉得整体学习维护成本比 HTML 低。

7.文档

写文档的人一般都是库的作者,这种人一般经验会比较丰富,写起文档一般不会考虑初学者的感受,所以找到一份对初学者友好的文档还是挺不容易的。

对于库的维护者,要站在初学者角度去写文档,站在使用者角度,如果文档开头就看不懂的话,最好尽早换个文档或者换个库。

8.工具

工具可以从多个维度体现出这个库的优势,首先是确实带来了使用方便,其次展示了团队维护实力的雄厚(精力溢出到可以做周边工具了)。

Redux 之所以这么火,Redux dev tools 功不可没,笔者读过一些心理学书籍,也经历过一些技术选型,看到 Redux dev tools 的图形化界面后,大脑因为受到视觉冲击比理性的逻辑思考大太多,潜意识里给 Redux 加了不少分,导致讨论结果都变得不太理性了。

如果你的库能图形化表达,或者做一个 PPT 或者辅助工具,那一定会大大加分。(React chrome 插件在打开 react 做的网页时亮起来真的很酷,这个勋章很有仪式感,以至于我不想换一个框架)

9.发展历史

一个 Star 10K 的库,如果最早提交是十天前,就算不是刷的也最好也不要用,因为不知道哪天作者就不再维护了。

历史越悠久的库使用风险越小,除非它所在的面被淘汰(技术栈、生态、编程语言等等)。

10.团队

看谁是这个库背后的男人。大公司广泛使用的开源库,并且有一定国际影响力,而且大厂也有成功开源历史经验的话,就会增加说服力。

但 Vue 就是个例外,几乎凭尤大一人之力打造,对这种情况,笔者想说的是,一个真心热爱技术并践行全职维护的人,也许比一个背着 KPI 的团队维护副产品更靠谱。

11。兼容性

除了浏览器兼容性,库 API 的兼容性也非常重要。当你很容易联系到作者,并且改动 API 的建议被很快采纳时,你就要小心了。

React Router 3 -> 4 升级带来的阵痛大家都有体会过,babel7 放弃 stage 0-4 也带来不少吐槽,Angular1 和 Angular2 的区分直接让很多人粉转黑了。虽然许多时候频繁的更新是为了增添新功能,但如果带来 API 兼容问题,反而会招来反感。

假如你们团队维护的 10 年间,因为某个库作者非常勤奋的更新导致以时间为维度,均匀分布了数十种不同的版本,你会发誓下一个项目不再使用这个库了。

12。趋势

炒作也好,讨论也好,保持大家对这个库的新鲜关注非常重要,因为这能连带的让这个库做好上面说的很多点。

但注意过分的炒作,可能会降低这个库的稳定性,毕竟在用户爆发式增长之前,最好有一部分当小白鼠。

搬家成本

如果哪天不用这个库了,换成别的成本有多大?

这方面测试库做的很好,很多主流测试库比如 Jest、Ava、Mocha、Jasmine 等之间都有互转的脚本,业界基本达成了一些共识和规范。

比较坑的是 React、Vue、Angluar,使用之后你基本就被绑定了,至今没有谁可以无缝做各大框架的迁移。当然 JS 的年龄还很短,而且说不好未来还会被新语言、技术、容器颠覆而成为历史,标准化不是做不到而是需要时间,也许就在十几年之后,但是今天就是做不到。



作者:一墨编程学习
链接:https://www.jianshu.com/p/65d81e0da536


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消