重用JavaScript来提高效率

软件架构师 Cory House 和 JavaScript 顾问在 Okta Iterate 2018上提出"可重用的 JavaScript 革命"

在过去的十年里, JavaScript (JS)经历了三次革命。

"Any application that can be written in JS will eventually be written in JS." – Atwood’s Law, July 2007 "任何可以用 JS 编写的应用程序最终都会用 JS 编写 – Atwood’s Law

正如Atwood所说:Js无处不在:

1.web

2.Server – Node.js

3.Mobile – React Native

4.Desktop – Electron

允许开发者在任何地方开发任何东西。

第一次革命

第一次革命发生在2010年1月12日, 当npm,JavaScript的包管理器和世界上最大的软件注册开始了。

在npm之前, 使用JavaScript是很痛苦的。为了做到这一点, 你首先要做的是: 1)搜索网页; 2)阅读要安装的文档; 3)下载相关的JS/css; 4)编写JS来针对HTML元素; 5)意识到它不起作用,并想知道为什么; 6)意识到 DOM 查询是错误的... ; 7)重复所有这些步骤来更新jQuery。而且, 如果你想保持更新, 你必须重复所有的步骤。

现在: 1) npm 安装 lib; 2)从lib导入lib; 3)运行npm更新。JS没有基础类库,由npm填补这块空白。在npm中每天都有450个JS包上传, 而Java每天上传66个。

对于开发者,npm使我们能够重用它。更多的人使用 npm 软件包(70%)比发布 npm 软件包(30%)。

第二次革命

Cory在他的客户考克斯汽车公司(Cox Automotive)上使用了一个Fusion npm软件包,并提供了一个简单的例子,即只需一行就可以启动。他还使用和推荐了初学者工具包。

而今天,vanilla JS是一个错误的做法。Bundle.js不是微不足道的,它有明确的依赖关系:模块化,缩小,编译,测试,自动构建,更新。

很多人创建新项目都会从”文件“->“新项目”创建的,这是一种弊端。不要从空白开始,因为这样需要经历太多步骤(例如:选择编辑器,软件包管理器,开发Web服务器,自动化方法,转换器,打包程序,linter,测试决策,框架,assertion库等),并有超过40个决定要开始,失去一些东西的机会是常见的。

有了这么多决定开始一个新项目,你和你的团队确实需要对这些项目有一个明智的看法。但是,如果你从头开始,你会忘记一些需要返工的东西。通过在初学者工具箱或样板文件中编写意见,避免繁琐的设置和重复的错误。

随着社会的进步,我们可以把更多的事情视为理所当然。这是一件好事,为什么您应该使用最新的JS,自动运行测试,用linting捕捉问题,生成源映射,从一个命令开始,用一个命令构建,用一个命令部署。我们越认为理所当然,我们就越快行动。

初学者工具包将作为您的团队的自定义框架。开始安排会议讨论手头的问题。GitHub上有一个初学者工具包,它可以让你的项目与众不同。

第三次革命

第三次革命是可重复使用的组件,它提供:

1.一致性

2.代码较少

3.更快的发展

4.更少的bug

5.可以帮助数百名开发人员节省数小时编码的组件

6.降低成本

7.更快的发展

8.规模经济增加

现代开发商店正在成为成品组件的组装者。我们已经从对JS、CSS和HTML的关注点分离到按钮、日期选择器、模型、列表等等。

我们不共享原始HTML,我们用JS共享HTML。jQuery于2006年8月26日出现。第一次引入可重用组件。考虑web组件,如模板、自定义元素、阴影DOM。通过捆绑HTML、JS和CSS导入。

React现在有JSX,JS,声明React组件,使用CSS模块。不要等待Web标准的发展。使用现代组件有哪些好处:

1.稳定性

2.广泛采用

3.低样板

4.轻量级

选择一个能帮你解决问题的框架。使用较低的样板库,实现数据迁移是可行的。既然组件设计实现起来比较困难,那么组件编码呢,你可以选择现成的组件开始工作。今天,超过50个组件决策正在创建可重用组件,有20%拥有可重用的代码库。你选择一个组件库,开发你的新项目。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180317A1CWEU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券