澳门新葡萄京娱乐场 6

澳门新葡萄京娱乐场JAVASCRIPT 开发者的 10 款必备工具

本文由码农网 –
小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

我们程序员为什么要关注 JavaScript ?

受这周我在企业中看到的JS现状的启发,我写了这篇文章。10年之前,我从来没有想过现在的JavaScript竟然会变得几乎无处不在。下面是几个你之所以要关注JavaScript的原因。

首先,我认为JavaScript能够得到普及的主要原因之一是,JavaScript非常易于接近。学习JavaScript,对于初学者而言,相对比较容易,对于高级用户而言,又非常强大,可以用它来构建复杂又可靠的系统。

其次,之所以要关注JavaScript是因为现今的JavaScript已经无处不在。

你可以使用JavaScript在几乎所有平台上开发:客户端应用程序,服务器端业务逻辑,嵌入式芯片/物联网设备,管理构建脚本和依赖关系,等等。

不过,这并不意味着你可以在任意情况下使用完全相同的代码,但你可以使用相同的技能——JavaScript开发——提供跨越多个范式的解决方案。

客户端

JavaScript可被用于支持客户端应用程序/用户界面,以及众多平台和设备的用户交互。

web

当然,JavaScript支持web,这是肯定的。
JavaScript是所有web浏览器基本的脚本语言。

移动

JavaScript也可用于支持安装到本地设备上的移动应用程序。

  • Apache Cordovn/ PhoneGap——
    你可以使用PhoneGap或Cordovn建立本地安装的web技术app。
    PhoneGap是Adobe的Cordovn品牌分支,但是从开发者的角度来看,它们基本上是相同的。运行在移动设备上的应用程序会带有一个web视
    图,用构建动态web应用程序相同的方式建立用户界面。用户界面虽然是用HTML以及CSS样式实现的,但是所有的交互都是用JavaScript创建
    的。

  • React Native
    ——得到JavaScript支持的web应用程序不仅可以内置web视图。React
    Native框架还允许开发人员使用JavaScript和声明式的UI元素编写他们的应用程序,并生成一个可以在移动设备上运行的本地应用程序。在运行
    时,逻辑被解释为JavaScript,但是所有所有UI元素)与用户交互的东西,100%是本地的,这就提供了一个非常高品质的用户体验,而且现在还
    可用于iOS和Android应用程序。

  • Unity 3D——使用Unity
    3D引擎,哪怕全部由JavaScript支持,你也可以开发出丰富多彩又身临其境的移动3D模拟或游戏体验。

  • NativeScript——使用JavaScript的框架,可用于构建跨平台的本地iOS,Android和Windows移动应用程序。

桌面

桌面应用程序也没有被JavaScript排除在外。大多数桌面解决方案陷入了类似于Apache
Cordovn的分类中,最终导致的结果是,web视图拥有的API层次较低,其内容开发基于web技术。

  • Electron——来自于GitHub的Node.js+Chromium桌面应用程序容器

  • app.js——Node+Chromium桌面应用程序容器

  • nw.js——另一个Node+Chromium桌面应用程序容器的框架

  • CEF——The Chromium Embedded
    Framework——嵌入Chrome浏览器内置于桌面应用程序的框架。

…等等。对了,我记得,微软对于如何纯粹地用HTML /
JS构建Windows应用程序,已经有了一个解决方案,而且还有更多的解决方案,但现在我一下子记不起来了。

事实上,一些我最喜欢的桌面工具,如Slack、Atom和 VS
Code实际上就是在web技术和HTML / JS的基础上实现的。

服务器端

最明显的是Node.js——封装了Chrome的V8
JavaScript引擎的JavaScript运行时——在服务器端开发和企业上已经取得了巨大的进步。
Node.js,受到express.js和loopback.io等框架的支持,使得用JavaScript开发服务器端和复杂的企业应用程序中变得可
能。

物联网

你可以完全使用JavaScript来开发可运行在Arduino、树莓派或其它小平板上的无头app,你可以使用JavaScript管理基础设
施和物联网传感器信息流,你也可以使用JavaScript为嵌入式系统编写芯片程序,可以用它控制机器人,你甚至还可以使用JavaScript支持媒
体中心连接电视体验。

就像我说的……JavaScript无处不在。

生态系统

你不仅可以到处构建和运行JavaScript应用程序。
JavaScript还有一个庞大而繁荣的开发者生态系统。

JavaScript是GitHub上最活跃的语言,它不仅是所有代码仓库中最活跃的,也是所有push/commit中最活跃的。

澳门新葡萄京娱乐场 1

来自于 的可视化数据

这里有一些统计数据显示了Node.js / npm.js的增长幅度。

澳门新葡萄京娱乐场 2

NPM统计

Node.js还在不断增长中。

图表说明了IBM重视Node.js和Strongloop。
30天时间里就有2.42亿个@npmjs包!http://t.co/snDt88HQC5    
pic.twitter.com/nRMwYyKmdo
——Rod
[email protected]
rod11)2015年9月10日

但是,种种这一切这并不意味着JavaScript就是适用于一切的最好语言。也不意味着你取出一段源代码就能照你想的那样运行在每一种设备和上下文中。

但是,你可以使用JavaScript技术,去开发几乎任意类型的设备/下上文。当然,它不能一次编写,就到处运行,用React.js团队的话就是:
learn once, write everywhere。

译文链接:
英文原文:Why You Should Pay Attention To JavaScript


澳门新葡萄京娱乐场 3


JavaScript ?
受这周我在企业中看到的JS现状的启发,我写了这篇文章。10年之前,我从来没有想过现在的JavaScript竟…

JavaScript,一种所有主流浏览器都支持的语言,是开发基于浏览器的 Web
应用程序的主力,几乎每年都会受到来自众多开发人员的关注。自然地,框架和库的生态系统自然而然地围绕着
JavaScript 而努力,以简化和增强 JavaScript 应用程序的开发。

受这周我在企业中看到的JS现状的启发,我写了这篇文章。10年之前,我从来没有想过现在的JavaScript竟然会变得几乎无处不在。下面是几个你之所以要关注JavaScript的原因。

这些工具提供从事件处理到代码缩减和数据渲染的功能。以下是开发基于浏览器的
Web 应用程序的 JavaScript 开发人员工具包中最必要的技术汇总。

首先,我认为JavaScript能够得到普及的主要原因之一是,JavaScript非常易于接近。学习JavaScript,对于初学者而言,相对比较容易,对于高级用户而言,又非常强大,可以用它来构建复杂又可靠的系统。

澳门新葡萄京娱乐场 4

其次,之所以要关注JavaScript是因为现今的JavaScript已经无处不在。

Angular

你可以使用JavaScript在几乎所有平台上开发:客户端应用程序,服务器端业务逻辑,嵌入式芯片/物联网设备,管理构建脚本和依赖关系,等等。

Angular,之前是由Google开发的被称为AngularJS,是用于移动和桌面Web开发的单框架。为了创建类原生渐进式web应用程序,Angular提供用于汇编应用程序的数据服务的依赖注入,以及用于复合组件的HTML模板。

不过,这并不意味着你可以在任意情况下使用完全相同的代码,但你可以使用相同的技能——JavaScript开发——提供跨越多个范式的解决方案。

何处下载Angular?

客户端

JavaScript可被用于支持客户端应用程序/用户界面,以及众多平台和设备的用户交互。

Angular项目快速入门页面使得开发者可以轻松开始使用Angular。

web

当然,JavaScript支持web,这是肯定的。
JavaScript是所有web浏览器基本的脚本语言。

Angular的功能

移动

JavaScript也可用于支持安装到本地设备上的移动应用程序。

  • Apache Cordovn/
    PhoneGap——你可以使用PhoneGap或Cordovn建立本地安装的web技术app。
    PhoneGap是Adobe的Cordovn品牌分支,但是从开发者的角度来看,它们基本上是相同的。运行在移动设备上的应用程序会带有一个web视图,用构建动态web应用程序相同的方式建立用户界面。用户界面虽然是用HTML以及CSS样式实现的,但是所有的交互都是用JavaScript创建的。
  • React Native
    ——得到JavaScript支持的web应用程序不仅可以内置web视图。React
    Native框架还允许开发人员使用JavaScript和声明式的UI元素编写他们的应用程序,并生成一个可以在移动设备上运行的本地应用程序。在运行时,逻辑被解释为JavaScript,但是所有(所有UI元素)与用户交互的东西,100%是本地的,这就提供了一个非常高品质的用户体验,而且现在还可用于iOS和Android应用程序。
  • Unity 3D——使用Unity
    3D引擎,哪怕全部由JavaScript支持,你也可以开发出丰富多彩又身临其境的移动3D模拟或游戏体验。
  • NativeScript——使用JavaScript的框架,可用于构建跨平台的本地iOS,Android和Windows移动应用程序。

2016年9月的Angular第2版的特色是基于TypeScript(Microsoft的JavaScript类型化超集)的重写,以处理在Angular初始版本中架构上存在的性能限制。

桌面

桌面应用程序也没有被JavaScript排除在外。大多数桌面解决方案陷入了类似于Apache
Cordovn的分类中,最终导致的结果是,web视图拥有的API层次较低,其内容开发基于web技术。

  • Electron——来自于GitHub的Node.js+Chromium桌面应用程序容器
  • app.js——Node+Chromium桌面应用程序容器
  • nw.js——另一个Node+Chromium桌面应用程序容器的框架
  • CEF——The Chromium
    Embedded Framework——嵌入Chrome浏览器内置于桌面应用程序的框架。

…等等。对了,我记得,微软对于如何纯粹地用HTML /
JS构建Windows应用程序,已经有了一个解决方案,而且还有更多的解决方案,但现在我一下子记不起来了。

事实上,一些我最喜欢的桌面工具,如Slack、Atom和
VS Code实际上就是在web技术和HTML /
JS的基础上实现的。

现在,开发者都在等待Angular
5,预计到到十月二十三日发布(没有第3版或第4版)。它预期的功能包括:

服务器端

最明显的是Node.js——封装了Chrome的V8
JavaScript引擎的JavaScript运行时——在服务器端开发和企业上已经取得了巨大的进步。
Node.js,受到express.js和loopback.io等框架的支持,使得用JavaScript开发服务器端和复杂的企业应用程序中变得可能。

用于在浏览器中缓存应用程序,以加强构建渐进的Web应用程序的便利性。

物联网

你可以完全使用JavaScript来开发可运行在Arduino、树莓派或其它小平板上的无头app,你可以使用JavaScript管理基础设施和物联网传感器信息流,你也可以使用JavaScript为嵌入式系统编写芯片程序,可以用它控制机器人,你甚至还可以使用JavaScript支持媒体中心连接电视体验。

就像我说的……JavaScript无处不在。

构建优化器,通过删除不必要的代码使应用程序更小。

生态系统

你不仅可以到处构建和运行JavaScript应用程序。
JavaScript还有一个庞大而繁荣的开发者生态系统。

JavaScript是GitHub上最活跃的语言,它不仅是所有代码仓库中最活跃的,也是所有push/commit中最活跃的。

澳门新葡萄京娱乐场 5

来自于 的可视化数据

这里有一些统计数据显示了Node.js / npm.js的增长幅度。

澳门新葡萄京娱乐场 6

NPM统计

Node.js还在不断增长中。

图表说明了IBM重视Node.js和Strongloop。
30天时间里就有2.42亿个@npmjs包!http://t.co/snDt88HQC5    
pic.twitter.com/nRMwYyKmdo
——Rod Boothby(@ rod11)2015年9月10日

但是,种种这一切这并不意味着JavaScript就是适用于一切的最好语言。也不意味着你取出一段源代码就能照你想的那样运行在每一种设备和上下文中。

但是,你可以使用JavaScript技术,去开发几乎任意类型的设备/下上文。当然,它不能一次编写,就到处运行,用React.js团队的话就是:
learn once, write everywhere。

使Material Design组件与服务器端渲染兼容。

Angular 6,预计发布时间比Angualr 5玩晚发布五到六个月,将聚焦于与Angular
5相同的主题:易用性,更小尺寸和性能。Angular本身具有强大的生态系统,在IDE中有四个数据库和支持,如JetBrains
IntelliJ Idea。

Aurelia

由聚焦的模块组成的Aurelia是由Blue
Spire开发的用于移动、桌面和Web应用程序的客户端框架。它实现了快速渲染和“高效”的内存使用率。

何处下载Aurelia?

你可以从GitHub上下载Aurelia。

Aurelia的功能

Aurelia有处理元数据、依赖注入、绑定、模板和路由的模块。Aurelia集成了Web组件,并提供与对象的双向数据绑定。多数Aurelia代码都是以纯JavaScript编写的。其他功能包括:

一个用于构建自定义元素和给元素添加属性的HTML编译器。

支持动态加载。

用于单元测试的可构建耦合代码的依赖注入容器。

提供创建新项目选项的Aurelia CLI,需要安装Node 4或更高版本、NPM 3和Git。

与Polymer库的集成,用于构建可重复使用的web组件。

在模板引擎中,用于组件继承时支持bindable的继承。

web前端/H5/javascript学习群:250777811

欢迎关注此公众号→【web前端EDU】跟大佬一起学前端!欢迎大家留言讨论一起转发

Backbone.js

Backbone.js ,也就是 Backbone ,为重度 JavaScript
应用程序提供了结构体。它具有带有键值绑定和自定义事件的模型,它们是一个支持可枚举函数和声明性事件处理视图的
API 的集合。

何处下载 Backbone.js ?

你可以从 Backbone 项目网站下载开发版本和产品发布版本。

Backbone.js 的功能

Backbone.js
中的数据是使用可以创建、校验、销毁并保存到服务器的模型表示的。这些模型通过
RESTful JSON 接口连接到应用程序。使用 Backbone.js 时,当 UI
操作提示要更改模型的属性时,该模型会触发更改事件。显示模型状态的视图会收到此更改的通知并重新渲染他们。

Ember.js

Ember.js 是一个强调开箱即用的高效率的框架。它具有集成的模板,被称为句柄条,旨在减少代码编写量;
在数据改变时,这些模板会自动更新。

从哪里获取 Ember.js

可以在 NPM 中输入 npm install -g ember-cli@2.15 来安装 Ember.js 。

Ember.js 的功能

Ember.js 的功能包括:

专注于简化开发的 API 。

专注于让开发者使应用程序特例化的通用风格。

Ember.js 3.0 稳定版会在2018年1月1日发布测试版之后的2月12日发布。在 2.x
版本中不推荐使用的 API ,依然是支持的,这些 API 将在 Ember.js 3.x
中被清除。 一个 add-on 应将支持在 3.x 代码行中的 Ember.js 2x API 。

Ext JS

与其他知名的 JavaScript 框架不同,Sencha 的 Ext JS 并不是开源的;
它是一种商业产品。它用于构建面向企业的数据密集型跨平台 Web
应用程序,需要多种形式的因素。

何处下载 Ext JS ?

The Ext JS 软件可以从 Sencha 的 Ext JS 页面下载到。

Ext JS 的功能

Ext JS 框架提供了许多组件,例如数据网格和日历。Ext JS 可与 Sencha
Architect 等工具一起使用,用于拖放 HTML5 应用程序开发,以及 Sencha
Themer ,用于应用程序的样式设置。

Ext JS 的构建器正在考虑如何使用 Ext JS 的架构执行长期的任务。Sencha
计划在今年年底或明年初发布 Ext JS 7 ,但是由于 Sencha 收购了 Idera
,这些计划现在被搁置了。关于提供符合最新的 ECMAScript 标准和使用 NPM
包管理器和 Webpack 模块绑定器的可行性讨论已经举行过了。

jQuery

JavaScript 的 jQuery 库的 API 提供了操作 HTML
文档、事件处理和动画等功能。jQuery 库由 JS 基金会管理,于 2006 年 8
月首次发布。

哪里下载 jQuery?

jQuery 可以从jQuery 项目网站下载。

jQuery 的特性

jQuery 并不是用来构建应用程序的框架,但它提供基本的
API,很容易在浏览器中操作 DOM。jQuery
也可以和应用程序构建工具一起使用,比如 Angular 和 React/Redux。

jQuery 团队现在差不多每年发布两个版本,从现在到 2018
年中只会发布一些小版本。除此之外,jQuery 4.0
和后续版本要求使用“下一代”JavaScript完全重写,这需要对构建系统进行更新。在
jQuery 4 和后续版本中还有如下计划:

重写 jQuery 的速度框架,跟踪性能回归

新设计的事件模型,会丢弃特殊事件钩子,避免使用 jquery.Event 类的包装

支付新的原生选项,比如被动事件监听器

Meteor

Meteor(又名 Meteor.js )是一个 JavaScript
框架,可以使用较少的代码更快地开发
Web、移动和桌面应用程序。开发人员可以在所有环境中使用 JavaScript
,包括在应用服务器、Web 浏览器和移动设备上。

何处下载 Meteor

Meteor 软件可以从 Meteor 项目网站下载。

Meteor 的功能

Meteor 平台,也被称为 Meteor.js
,包括用于构建已连接客户端的响应式应用程序的技术,构建工具以及一系列来自
Node.js 和 JavaScript 社区的软件包。使用 Meteor
后,服务器会通过设备发送数据而不是HTML,然后在客户端渲染它。

Meteor 1.6 是下一个发行版本号,其重点是升级到 Node.js 8,这将让 Meteor
更好地利用服务器上的 ECMAScript 功能,从而提高构建性能。

Polymer

Google的Polymer
JavaScript库旨在使开发人员能够充分利用Web组件,为可重用的自定义元素提供与浏览器内置元素的交互提供可能。

何处下载Polymer?

你可以从Bower包管理器上安装Polymer。

Polymer的功能

5月份发布的Polymer
2.0版通过去掉DOM操作时使用的Polymer.dom改善了互操作性。这使得使用其他库和框架时再使用Polymer组件更容易。

Polymer 2.0中的其他功能包括:

数据系统的改进,以提升数据通过和元素之间的调试和传递。

ECMASript
2015类和标准的自定义元素。Polymer第1版中的方法用于定义元素,而不是使用Plymer的工厂方法。但是工厂方法仍然通过兼容性层来支持。

更简单的数组处理。

即将发布是Polymer 3.0,它目前是预览版本,功能包括Bower和HTML
import、NPM和ECMAScript 15模块。Bower和HTML
imports功能适用于基于HTML基于导入的工作流程。但是,他们把Polymer置于网络开发的主流之外,并且使人们难以使用其他框架或构建工具。

React

Facebook用来构建用户界面的 React
库 ,提供基于组件的声明性的视图(view),使用JavaScript来编写组件逻辑。React库,也就是React.js,并不支持模型(model)和控制器(controller),但是可以通过其他一些相关的项目完善这些功能。

哪里下载 React

React 可以从 React 项目网站 下载。

React 特性

你可以使用React的 JSX
语法 来描述用户界面。JSX允许在一个组件中混合使用JavaScript和HTML。在构建的过程中会转换成纯JavaScript。

为了提高性能,React 在最近的发行版React
16 中对架构进行了重写,称为Fiber。这次更新的主要特点是着重于为了处理大型组件的异步渲染。但是React本身还并不支持异步渲染,这将会在React
16.x的版本线中实现。

React 16的其他改进包括:

提供组件堆栈追踪,使得调试更加简单。

可以在组件的渲染方法(render)中直接返回字符串或者数组。

新的更快的,基于流的服务器端渲染。

更接近原生应用的性能。

在一些组织如Apache软件基金会反对其许可条款后,React
重新修改了其基于BSD+MIT Patents的新的许可证。Apache 担忧基于BSD +
Patents 的许可使得软件对于下游项目来说,不再是一个“万能捐赠者” 。

Vue.js

Vue.js是React的竞争对手之一,声称更快的渲染速度。其核心库聚焦于视图层,并且框架主要是为了增量实现。

何处下载Vue.js?

Vue.js软件可以从Vue.js项目网站下载。

Vue.js的功能

声明式渲染是Vue.js中的关键,使用模板语法将数据渲染到DOM中。Vue.js组件系统是一种抽象,支持由可自包含开发和可重用的模块组成的大型应用程序。Vue.js中的组件本质上是一个具有预定义选项的Vue实例。

Vue.js
2.5将于2017年10月到来,具有更好集成了TypeScript功能。稍后版本的Vue.js的计划包括:

使TypeScript用户更容易在Vue.js中启动新项目

使用代理重写框架的响应式系统

支持WebAssembly可移植代码格式

吸收Web组件更多功能的能力

web前端/H5/javascript学习群:250777811

欢迎关注此公众号→【web前端EDU】跟大佬一起学前端!欢迎大家留言讨论一起转发

觉得本文对你有帮助?请分享给更多人

发表评论

电子邮件地址不会被公开。 必填项已用*标注