在运用新的JavaScript库时须要斟酌的12件事

您怎样晓得一项新手艺是不是值得投入时候?

《在运用新的JavaScript库时须要斟酌的12件事》

关于本年的JavaScript状况观察,我想深切发掘一下,不仅晓得人们正在运用哪些东西和库,还要为何他们遴选运用它们。

这意味着我必需找到一种要领将个人偏好转化为冷峭的数据。经由一些研讨,我提出了12分制,涵盖了遴选和运用任何手艺的主要方面。

在此约请你列入测试 ➡️ Take the 12-Factor Quiz
假如您不肯定要评价什么,只需在您熟习的库(React,Vue,jQuery ……)上举行评!
也可以在http://stateofjs.com/ 上面检察一下往年的结果
假如您想孝敬并协助肯定JavaScript生态体系的最新趋向,列入观察!

如今回到12分制。

要素

这里有一张列表:

  • 🕹️ 特性
  • 🐞 稳定性
  • ⚡ 机能
  • 🎁 Package 生态体系
  • 🌎 社区
  • 👶 进修曲线
  • 📖 文档
  • 🔧 外部辅助东西
  • 🏛️ 跟踪纪录
  • 👫 团队
  • ⚖️ 兼容性
  • 📈议论度

我将诠释每一个要素的主要性,并为您供应一个评分网格,向您展现怎样评价它。我们来看看清单吧!

🕹️ 特性

你遴选任何手艺的第一个缘由多是它的作用。

但这里的症结题目是你终究是须要这个库的什么。React多是现在最盛行的前端库,但照样有人以为它做的不够好,因为它将路由和状况治理等内容留给第三方方库,如React-Router和Redux。

事实上,这是React最大协作对手Vue的吸收力的一个主要部分。经由过程为这些稀有用例供应官方软件包,它可以供应更周全的处置惩罚计划并取得大批支撑。

所以偶然候,最简朴的要领就是弄清楚我们终究须要什么。像Lodash或Ramda如许的库让你可以用简约的函数表达式替换乱糟糟的嵌套for轮回,这足以使它们成为无价的东西。

一样,这一切都是为了寻觅适宜的!

评分体系

  • A: 是不是能做到之前做不到的事。
  • B: 让你做与之前雷同的事变,但以更好的体式格局。
  • C:是不是优于当前的处置惩罚计划。

🐞 稳定性

您可以具有最文雅,功用周全的框架,但假如开辟人员每两分钟发作一次毛病,却也一样让人觉得崩溃。

因而,当前JavaScript生态体系中的许多东西都专注于为客栈增加稳定性和安全性。看TypeScript和Flow的胜利,以至是Reason等言语。

在数据层方面,GraphQL的范例体系也有助于确保一切顺利运转。

评分体系

  • A: 更少的毛病,题目变得更轻易调试和处置惩罚。
  • B: 采纳该手艺不会对您的软件稳定性产生影响。
  • C: 作为采纳该手艺的直接结果,涌现了新的毛病和题目。

⚡ 机能

假如你曾训练过技击,你就会晓得你可以具有的最好的属性之一是speed,而不是气力。

一样,假如您的运用须要15秒才加载,那末世界上的一切功用都杯水车薪。到那个时候,用户已封闭了标签,你以至在它最先之前就已失去了战役!

在JavaScript生态体系中,只需看看Preact就可以看到关注速率的一个例子:它的API与React完整雷同,所以它并不试图在功用强度上睁开协作。然则,与React比拟,它分量更轻,加载速率更快,可以节约珍贵的毫秒数并进步webapp的机能。

评分体系

  • A: 更小的体积,更快的加载时候或其他机能革新。
  • B: 采纳该手艺不会对您的软件机能产生影响。
  • C: 采纳该手艺可以明显下降您的运用程序速率。

🎁 Package 生态体系

在投资任何新手艺之前,主要的是要看看缭绕它开辟的生态体系。

一个充溢活力的软件包生态体系不仅可以节约大批时候,这也表明该手艺已达到了肯定的成熟度水平。出于这个缘由,保护优越的第三方软件包是开辟人员历久采纳手艺的最好标志之一。

评分体系

  • A: 生态体系对配合关注的题目有明白的处置惩罚计划;第三方软件包保护优越且文档完整。
  • B: 具有许多协作新遴选的抽芽package生态体系。
  • C: 没有package生态体系可言,须要大批的手工事情。

🌎 社区

另一个要斟酌的要素是全部社区。遇到题目时,专用论坛或Slack渠道可以供应庞大的协助。

查找Stack Overflow现有的存储库也很有协助。固然,保护优越的GitHub题目页面是必需的!

评分体系

  • A: 论坛和/或聊天室(Slack / Discord / etc。)一样平常运动,GitHub题目在一天内得到处置惩罚。许多人回复了Stack Overflow题目。
  • B: 论坛和/或聊天室,不常常运动。
  • C: 除了GitHub以外没有社区。

👶 进修曲线

简朴的进修曲线使开辟人员更有可以为您的框架或库供应一个时机。人们很轻易以为,假如一项手艺真正具有破坏性,人们就会战胜任何停滞,但这一般都不是真的。

一个密切相关(但偶然相反)的观点是“采纳”曲线。初次推出时,[Meteor](http://meteor.com/)异常易于运用(最少与现有替换计划比拟),但它请求您马上采纳全部客栈,因而很难完成现有项目。

React也以其大略的进修曲线而著名:关于用于星散HTML和JavaScript的开辟人员来讲,不能不运用JSX可以很难。另一方面,Vue变得更轻易,而没必要从新思索您对前端编码的思索体式格局。

评分体系

  • A: 可以在一天内最先。
  • B: 在进步事情效率之前须要约莫一周
  • C: 凌驾一周须要进修基础知识。

📖 文档

简朴进修曲线的一个主要部分就是具有精彩的文档。这比听起来更难完成,因为撰写文档的人一般是履历最雄厚的人。

因而,编写好的文档须要遗忘你原有的手艺知识,并让本身置身于发明你的手艺当中。

它还须要展望稀有题目,相识用户的心思模子,最主要的是在代码库发作变化时坚持最新状况!一切这些都须要珍贵的时候……

鉴于一切这些要素,您可以明白为何好的文档是一种稀有且有代价的东西!

评分体系

  • A: 专用文档站点,截屏视频,示例项目,教程,API文档和批评优越的代码。
  • B: 基础自述文件和API文档。
  • C: 异常简约自述,相识怎样运用库的唯一要领是检察其代码。

🔧 外部辅助东西

就像文档一样,东西是这些事变中的一个,关于某些保护者来讲可以看起来像是次要的,但实际上关于任何手艺的提高和胜利都至关主要。

我置信Redux胜利背地的一个主要缘由是其令人惊叹的Devtools浏览器扩大,它许可您以异常用户友爱的体式格局可视化Redux存储和操纵。一样,VS Code的壮大TypeScript支撑也为它的采纳制造了奇观。

评分体系

  • A: 两个或多个:浏览器扩大,文本编辑器扩大,CLI实用程序,专用的第三方SaaS效劳。
  • B: 个中之一:浏览器扩大,文本编辑器扩大,CLI实用程序,专用的第三方SaaS效劳。
  • C: 没有外部东西。

🏛️ 跟踪纪录

因为假如一个库只存在了六个月,那就不过是稍纵即逝了。

我们都可以报告采纳“下一件大事”的故事,只是回到好老的Rails / PHP / 在这里插进去尝试实在的手艺 当事变最先恶化时。

出于这个缘由,没有什么可以突破坚固的纪录。Express是个中一个例子:它最初是在2010年宣布的,但仍然被以为是默许的Node.js效劳器框架,只管JavaScript生态体系的生长速率很快。

评分体系

  • A: 已有4年多的时候,经由过程了主要公司和着名的手艺征询公司。
  • B: 已存在了1 – 4年,被初期采纳者和较小范围的征询公司运用。
  • C: 已存在不到一年,还没有真正的采纳。

👫 团队

并不是一切项目都有可跟踪的纪录。当package是全新的,你怎样推断它的潜力?一种牢靠的体式格局来看看它背地的人。

当React第一次涌现时,因为其背地的团队是Facebook,所以给人一种最少要尝试一下的觉得。然后Facebook继承宣布Relay和GraphQL,表明React的胜利不是幸运!

更大的公司也有更多的投资资本:纵然宣布了更新的,不兼容的版本,谷歌也可以继承坚持原有的Angular.js。

固然,这并不意味着零丁的保护者就没法制造严重立异。毕竟有Vue.js如许的例子存在,更不用说99%的开源软件了。

评分体系

  • A: 由一家具有特地的开源团队的大公司保护。
  • B: 由中型工程师团队保护,具有坚固的个人纪录。
  • C: 伶仃的保护者自力事情。

⚖️ 兼容性

采纳尖端库的优点在于它们一般生长得异常快。可悲的是,这也多是一个严重的瑕玷!

疾速革新率也意味着频仍的突破性变化,因为新的最好实践庖代了旧的形式,使初期采纳者付出了重构本钱。

React Router当他们决定在版本3和版本4之间完整转变他们的API时,产生了许多埋怨。Angular当他们从Angular.js切换到新的“只是Angular”时,也是云云。

当你刚最先一个新项目时,常常更新会很令人兴奋,然则一旦你的运用程序启动并在生产中运转,你并不会想要每次都因为库的更新而其修改线上的代码。

评分体系

  • A: 更新大多是向后兼容的,弃用是经由过程正告处置惩罚的,不兼容的旧版本保护两年或更长时候。
  • B: 确切发作了严重革新,但有很好的文件纪录,并逐渐推出。
  • C: 没有恰当的指点,常常须要举行严重更新。

📈 议论度

末了但一样主要的是,势头。换句话说,炒作。

炒作一般被以为是一件坏事(“不要成为炒作的牺牲品”),作为作风凌驾本质的目标。但并不是老是云云。

有了充足的动力,一个新的软件项目可以吸收更多的用户和更多的孝敬者,这意味着可以更快地找到和修复毛病,一个包生态体系可以开辟,每一个人终究都邑变得更好。

然则,是的,另有硬币的另一面:过早炒作太多可以会让潜伏用户面对一个充溢题目的未完成版本,并将其彻底处置惩罚。就像他们说的那样,你只要一次时机给人留下第一印象。

评分体系

  • A: 炒作凌驾9000:黑客消息的顶部,不计其数的GitHub star,在主要集会上举行谈判。
  • B: 最初推出的一些兴致,数百名GitHub明星。
  • C: 伶仃的开辟和辛苦事情。

更新:更多要素

你们中的一些人提出了一些更主要的要素。要斟酌潜伏版本2.0的范围!

  • 可扩大性:该手艺对大型项目的结果怎样?
  • 采纳:现在另有谁在运用该手艺?
  • 兼容性:该手艺与其他现有手艺的协作水平怎样?
  • 解耦:假如你想停止运用它,从手艺迁徙出来有多轻易?
    原文作者:_小生_
    原文地址: https://segmentfault.com/a/1190000018006262
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞