2016年需要了解的前端框架和语言,年的所见所得

Web 开发 17 年的所见所得

2017/07/10 · 基本功技术 ·
WEB,
付出指出

原稿出处: Daniel
Khan   译文出处:众成翻译/myvin   

英文原文:Skills JavaScript Developers Should Learn in
2016
译者:xxholly32
译文地址:http://t.cn/R5HIDVI

By @jonathanzwhite

语言/平台

澳门葡京 1

 

Node.js第一,PHT第二,JavaScript第三。因为Node.js的社区广大,所以这一个结果你也不用太奇怪。如若您领悟JavaScript,你曾经一只脚踏进了用Node.js来构建Web
APP的也许。

关于 NodeConfBP

2016年需要了解的前端框架和语言,年的所见所得。NodeConfBP 会议于 2017 年 1月在胡志明市举办,这次会议为期一天,只有一个讲演室,由 RisingStack –
the Node.js Consulting & Development Company
协会并提供援救。

下边你将会从第一人称视角感受到一个近乎完美的风格化的会议记录:

JavaScript –
由于它是web开发中最基本的语言,无论你怎么看待它,大家都要去考虑它的”以后”。毕竟,浏览器可能是PC和活动装备都在拔取的最广泛的软件应用程序了。

版权表明:
此作品首发于群众号程序员在深圳,搜索 studycode 即可关注
本文无需授权即可转载,转载时请务必申明作者

 框架

澳门葡京 2

 

AngularJS处于框架的领导者地位。大量的商号和店铺早就应用Angular,这就要求开发者更多的拥有使用这些框架的技能。重要依然因为有Google里最好的工程师援助。

认识下 Daniel Khan

DynaTrace 做过的其他和 Node
沾点儿边儿的类型基本上自己都过了个遍。此外,我还在给 Lynda
做指导课程。我在本土大学讲课,有几个闺女和一个幼子。

这一次讲话基本上都是本身的故事,涉及到了自家 17 年学到的有关 Node 的一对事物。

在我看来,世间万物都是循环的,它们会反复出现,由此大家可以以史为镜,避免重复。

澳门葡京 3

这张相片拍摄于 1997
年,是自我第一张使用网络摄像头拍摄的相片,照片上右边的那多少个东西就是我。

俺们购买这台 silicon graphics O2
差不多花了一辆小汽车的价位,然后这一个东西跑过的话“现在我们正在使用网络视频头一起拍照”。然后
哇哦 照片就出现在互联网上了,在这么些时候这诚然是一件特别炫酷的工作。

1998 年自己就已经起来玩 HTML 了。

澳门葡京 4

当即的网站看起来和图片上突显的差不多,而且非常时候那本书还没写呢。

丰裕时候还木有 Google,木有 非死不可,木有 GitHub,木有
Wikipedia,也木有 StackOverflow。

十分时候我们只有信息组,我们得以在上头提问,其他人也足以答应问题。有点儿像
email,但和 email 仍然有分此外。

澳门葡京 5

时间走到了 1999 年,也就是 17 年前,我在 Square 音信组里写下了自身的问题:

  • “我正在写 web 数据库,不过大家早就有桌面数据库了啊。”

是的,Microsoft Access!

  • “我的主机襄助 MySQL,不过自己并不知道这是怎么样意思…”

自家确实不精晓。

  • “我理解 query 语句是怎么运行了。”

实际上,我完全不知底。

特别时候,我真正学到的某些是:网络永远不会忘记。其时我实在是永不头绪。

开发人士都知情,JavaScript世界看上去动荡不安甚至有点混乱(e.g. the
left-pad
incident),但这也是印证了这门语言正在持续的圆满。它试着去完善一些老的题目(日常是不无关系扩张或者复杂的问题)以跟上现在的发展趋势。

这篇作品是”前端开发,从草根到英雄系列”的第二片段,在率先有些,你学到了何等使用HTML和CSS成立布局的最佳实践。在第二有些,我们会把JavaScript作为单身的言语来学习,我们将学习如何添加交互式的界面,JavaScript设计以及设计形式,最终大家会学习怎样创建web应用。

 2015你应有学学的

成千上万的库和框架暴发和消逝,对于把有限的生机投入到最有价值的业务上是有挑衅的。下面是我们的片段有关语言和框架的指出,这一个都是我们觉得很有意义去上学的。它们都很盛行,有活泼的社区,并且有大量的就业机会。

进入 2000 年

在 2000 年自己成为了一名 web 开发者,当时自我在给 Austrian Job 瑟维斯(Service)(Service) 教
Perl,因为在那一个时候,找不到工作的人大都都能变成一名 web
开发者,在当下这是种趋势。

充裕时候 Perl 语言相当难,可是既然自己早已准备教 Perl 了,这就是表明…

自身很是相当了然,是吗?

唯独,真相永远是残忍的:其实自己有限都不聪明。

当我尝试在数据库中改进数据集时,因为自身不明白什么落实才算毫无意外,所以一起先我的做法是先删除然后再插入。

澳门葡京 6

这就是说问题来了:就自身这种程度,我又怎么会觉得我自己还是可以教学呢?答案就是:达克效应。

简单的说,达克效应就是:因为你无知,所以您不了解你协调有多无知。

澳门葡京 7

这条绿线是您以为你了解的事物,这条黑线才是你真正通晓的。那一个时候,我觉着自己无所不知,直到自己完成了大学学业–应该是在
2011 年–我才精晓 “好吧,其实自己了然的也就这点儿东西”。

接下来,你就起来变得多少谦虚一些了,因为您从头学习那多少个你不晓得的事物,接着你就起来有些绝望了。现在,我觉得我在特别绿点的职务。

乘机需求的变型,特别是在这技术日新月异的时日。你也许不知晓以下这些技术,但想要提升或者健全你的技巧,无论是掌握Javascript的向上走向,依旧让您更好的进入这么些领域,它们都是你需要关注的(尤其是那个初学者)。

和HTML、CSS一致,网上有雅量的JavaScript指南,对于新手来说,很难识别那一个指南分其余用处,也不领会以什么样的逐一去读书这么些指南。这篇作品的目标是给您提供一个线路图,作为你成为一个前端工程师的导航。

  1. 四处的JavaScript

 

澳门葡京 8

 

要是您做web的开销,Javascript是您必须精通的,不管你写后台用的何种语言。现在您能够用JS在浏览器、服务器、手机接纳甚至是可编程的硬件。ES6
将会增高并让那么些语言越来越强有力。学习Bower
和npm工具是很有必不可少的,也席卷jshint 和 jscs这种代码样式和代码检测。

俺们去了银行…

而是不管怎样,我灵机一动找到了一家商店,然后买了一台服务器。那台服务器仍然我们去银行贷了
15,000 美金买的。

和前边相相比,现近日变化真的很大:我们有 serverless
架构,你可以一台服务器都不用就把方方面面公司创办起来。

分外时候,我们不得不把服务器位于新德里的一个数量主导的机架上。

每当服务器宕机的时候,我就得开着车到都柏林(Berlin)去重启服务器。

澳门葡京 9

那次我学到的事物就是:你要全力领会什么是全栈。自身说的就是地点的这么些全栈。

全栈,意味着你至少应当清楚一点儿 web 协议、知道路由的劳作规律、知道 HTTP
基本的劳作机理、知道 SMTP 的干活体制。

当出现问题的时候,知道这个包是什么样打包进浏览器的,知道这么些事物是怎么样协调的是很有必不可少的。

那么,到底2016年javascript开发方向是何等(或者二零一七年又会有什么新的来头)?

固然你还尚未读书第一篇,在读这篇此前,可以点击下边的链接阅读

  2. AngularJS

 

澳门葡京 10

 

AngularJS是一个谷歌发明的JavaScript框架,它能快速的构建集团级的web应用。急迅的需要增长要求程序员有其一框架的运用经验,很多时候,你会看出招聘工作的时候会提到这么些框架的采纳。可是别太着急。它将会有一个大的重写,在它的2.0本子宣布后再攻读是个更好的主意。可以查阅学习指南angularjs
examples.

接下来夜幕降临,迎来 2002 年

现行大家是在 2002
年,我创造了一家集团。那多少个时候,除了澳大圣佩特罗苏拉,互联网在大地爆炸式疯长。

咱俩冷静地等候着互联网的欣欣向荣将来肯定有那么一天可以降临到大家身上,然后所有都终止了。

澳门葡京 11

我觉着这一切都是从 boo.com 起首的,这是一家营业时髦服装的初创公司。

在这儿,每个人都花大把大把的时日去投资和新经济、新媒体相关的花色,所以整个行业开首沸腾增长。

在三个月内,公司从 10 个人涨到了 100 个人。然后,boo.com 破产了。

我以为这年的互联网危机和她俩关于。所有的投资者大多都退出了,因为她们发现到新经济合作社必然会破产。

澳门葡京 12

这是纳斯达克的数额。我们登时在这一个繁荣阶段,紧接着一切都奔溃了。这里是
9/11,一切都随风而逝…

自我在 Google 上探寻了一晃,这是特别时候硅谷人的想法,你们感受下。

澳门葡京 13

本身找到了一个弟兄这样写到:

“噢,我的天呐,这简直是沉重的打击。作为一个后生的初创公司,我了然的各类人都受到了震慑。我了然的多数人都失去了工作。不久后头,我精晓的绝大多数人都搬走了。”

在此地他写到:

“泡沫时代的相比较是史诗级的。开放式的小吃摊活动和神话般的发布会都早已一去不复返了。工作和合作社也都不曾了。不久后头,绝大多数集团家没有了安全保持–很三个人回到家里重新组团。”

听着有些精晓,是吗?

即使前天你去硅谷,看到的也是这些样子。一切都是新兴的。工作在这边的人都是这样的:

“什么?他们集团并未自助早餐?

他俩尚无这种桌式足球?

噢,我不想在当场工作了–我想买架飞机。”

澳门葡京 14

这种事情时刻都会复出。可是那些时候,我们见到的更多一些。

尽管假若现在自己说即使这种业务发生了也不会有怎样问题,不过真正当那种业务时有暴发了的时候,就真有题目了。

javascript 趋势

  3. React

 

澳门葡京 15

 

React是新的竞争者,但它是可提供复用的web组件。那个库是非死不可开发并实现了老大快的杜撰DOM,并能很简单的联网到现有项目中去。它也有非凡活跃的社区来提供开发组件all
kinds of
components.在大家看来,Reacts是特别有潜力的并值得在2015年关爱的。查看我们的学习指南react
tutorial.

乘势,抓紧机会!

本身从中学到的一件事是:一定要一挥而就,抓紧机会!我现在并从未高谈阔论地去谈钱。

自我正在谈论的是通过投资于您的技能和学识来每一日应对不好的一世。

不容平庸,对啊?!

编程语言太多了,我以为编程并不是说肯定要变为一名 JavaScript 开发者或者
Node 开发者。编程是一种概念、一种沉思。就比如,当您在用 JavaScript
写实例的时候,可以品尝一下 Scala 函数式编程的一部分事物。

最先导自己在 林德(Lynd)a 和 Coursera 工作,那让自家确实的精通了
JavaScript,精通了自我使用 underscorejs
的缘故,明白了怎么着才能让急需的东西更好的融合起来。

之所以自己想鼓励你们的是:不要把您协调正是一个 JavaScript 开发者或者 Node
开发者,要把你协调正是一个工程师。

要读书思考、学习怎么着行使不同的语言去化解问题。你的视野决定你的社会风气,通晓知识面越广我们对题目标探究就会越灵活。

澳门葡京 16

这是本人本次学习的教程。这实在很难,但是这是表明 Scala 的 马丁(Martin) Odersky
做的,所以她知道他在做咋样,这诚然很有意思。

不无的这个资源在互联网上都是免费的,所以即便您有时光来说,可以投入一些时日和生机作育一下你的技术。

node.js已经明确了,前边的情节大家也不会提它,因为它太知名声了…..

JavaScript基础

JavaScript是一个跨平台的程序语言,它几乎可以做有所事情。在您明白了开发者咋样接纳JavaScript的基本功之后,我们再详尽的探索这门语言。

  4. Node.js

 

澳门葡京 17

 

用Node.js你可以用JavaScript来促成服务端的施用。它可以很简单的贯彻后台,像这多少个框架Express,API
endpoints, websocket甚至torrent clients.
Node有令人怀疑的活跃的社区跨越其他其他一种语言在这一年实现的模块。假如您是个初学者,我们推荐您品味下NodeSchool.

为前途的您写代码

下一场,在 2002 年到 2012 年之间自我做了广大序列,大部分都是 web
项目,许多是遵照 PHP
的,不管您相不倚重,其中的片段门类到现行照例在线上运行着,比如下边这个:

澳门葡京 18

它们前几日还在困扰着自身。因为这个使用是自身在 2002 年或 2004
年或另外的哪些年份完成的,本身根本没有想过,在
2015年、2016年、前年,我仍能重复寓目他们。

可是随后一通电话打过来了:”这么些网站挂了,你能不可能帮我们搞搞?”–即便我早已经不是以此店铺的员工了。

下一场一万只草泥马在跑马:

“哎呦,我去,这代码是哪些傻逼写的,写得太烂了。”

…恩,我通晓这些傻逼就是自身。

在我看来,写出将来的你可知知道并引以为豪的代码是很首要的!当您做一件事情的时候,要么不做,要做就把它做好。

React & Redux

2015年是React拿到一定的一年,越来越多的开发者在2014年尾声初步抱怨Angularjs的一些题目,也有信息说道,Angular2
将会和 Angular1 不匹配。

方今的现状是,Angular1
如故在Github上惨遭关注。同时它的增进也伊始暂缓,而React正快捷的填补那个缺口。

github star 增长图

图中的数据依照互联网。

或许更能印证问题的目标是:reactangularangular2
三者的包在NPM的下载量:

angularjs vs react

出自 NPM
走势

只是,那一个数量并不可以实际的表示这多少个框架的行使状态。有少数要考虑的是自从Angular1被Angular2替代之后,它并从未此外升级。更无需说,React不是一个框架,不可知和AngularJS一起用。所以说,这二者其实是可望而不可及放在一起比较的。

尽管,大概在上年一年里,JavaScript社区对React的协理比Angularjs要多一些。

看图片,你也许会问:在1月后爆发了什么样?React在npm的下载数量突然以指数倍的艺术暴涨,Github的关注数量快要接近AngularJS的多少。

同时,Redux出现,由它的编著人Dan
Abramov揭橥在
ReactEurope2015
十一月的议会上。Redux是一个看似flux的落实,让许多开发者确信这更切合并可以推进React的前进。

在Redux出现前,React已走过了一段坎坷,大家总计找出什么最好地贯彻”Flux”的架构。许多更好的贯彻情势涌现出来,但对此Javascript开发者来说仍旧短缺一个圆满全体的化解方案。因而,固然React在DOM表现层处理有多出色,开发者还是对应用这么些技能到品种中保留自己的见识。

如今,随着愈来愈多的开发者开始关注和使用Redux,并且认识到测试和debug
JavaScript是这么方便。Redux开头替代Flux成为了新的得主。

鉴于2016年Javascript在前者领域的地点,同样的,React 和
Redux也变的炙手可热了。出名商家如:Netflix,Dropbox,
雅虎都早就起先利用React,并给予其很大的信心。

固然这样,非死不可的Relay框架将在二零一七年改成Redux的最大对手。

您或许会阅读这篇著作:Getting Started With React & Redux: An
Intro

语言

在念书JavaScript是何许行使于web从前,首先了然那门语言本身。我们来读一下Mozilla开发者网络的Language
basics crash
course,这么些指南会描述基本的言语结构,包括变量,条件和函数。

在此之后,再读一读MDN的JavaScript指南的以下几个部分:

  • 语法和品种
  • 控制流和错误处理
  • 巡回和遍历
  • 函数

无须过于担心记不住特定的语法,你随时可以回过头来查阅。相反,你要留意于像变量实例化、循环和函数等概念上。即便一时消化不了是正规的,可以适度的略过,学完后边内容再时不时回顾一下前方的始末。因为当您磨炼这一个概念时,你才会对这多少个更加深厚。

为了打破单调的纯文字内容的学习,可以看一下Codecademy提供的JavaScript课程,它很容易上手,并且丰富有意思。同样的,假设你有时光,对于每一个我下面列出的定义,读一下Eloquent
JavaScript对应的章节,相信能够强化你的知晓。Eloquent
JavaScript是一个那些棒的在线图书,几乎拥有的有追求的JavaScript前端工程师都会阅读它。

  5. NoSQL databases

 

澳门葡京 19

 

既不是关系型也不是SQL查询型的数据库是对前几天的web开发者更有价值的,我们深信如此的数据库将会在将来尤为的盛行。有两个值得关注的是Mongodb
and
Redis.很容易拔取它们中得任性一个比起MySQL和Postgres.不过别傻傻的认为NoSQL数据库就是完善的替代—有的场地,那些经典的关系型数据库依然会让你的开发更简便。

代码的破窗效应

自家最欢喜的一个反驳是破窗效应–那么些理论也可以应用到代码上。

想象一下,你放在一座都市,站在一座高楼面前,周围的全套都很美好。然后猛地一个哥们跑过来打破了一扇窗户。

假如您等上多少个礼拜再回到看,你会意识整座高楼最先糜烂,摇摇欲坠,到处都是乱七八糟的写道,人们也不再
care 它了。

一律这也适用于代码,这多少个临时的化解方案就是高楼大厦上的破窗,是啊?

“恩,是的,我们改天再改吧。”

接下来那一个临时的代码片段还保存在那里,然后等到下一个开发人士(有可能仍旧你哦)过来看了看这代码,然后说:

“好呢,这一个曾经很欠好了,大家很快修复下,然后代码又变得不佳了。”

持有那多少个丑陋的代码片段都浸透在您的代码里。即使十年过去了,你要么得处理这么些代码,所以您为何不提前和你的同伙探讨一下?你应有如此想:

“这是一个旧项目了,让大家把这个类型重写三回呢。”–因为这就是我们欣赏的工作的法子,对吗?

澳门葡京 20

自我不时听到开发者这样说
“看,这多少个系列是大家两年前写的,整个技术栈都已经落后了,我们把拥有的东西都重写五遍呢,很简短的,两周就能搞定!我们已经开搞了是啊?”

澳门葡京 21

我们知道软件都有一个饱和曲线。有时候给代码添加新的特色确实很不便,所以这时候重写代码更换技术栈是一点一滴没有问题的,然而你得注意这里的这一个缺口。

当你切到一个新的技艺栈时,项目就变得复杂了,从一起头就不会有相同的效率特色。

因为在全体系统中整合了不少原来的东西,所以你不可以随意重做。所以您不可能不意识到,假如您从头初始做某事,那么至少会有一个风味差异。

其他感兴趣的框架

那么还有哪些另外框架?还有一些针锋相对关注低一些的,但被炒作的部分框架。

Angular2

Google和微软合作支出的框架Angular2,或者说是用微软的
TypeScript
开发的更易管理的Angularjs2。这是怎么意思啊?大型集团(一些非技术性的店堂)可能会关心Angularjs2,特别是应用了微软的.NET框架的。从2018年起头,微软也起首推动.NET的开源工作,使开发者可以更好的运用。

趁着Angular2的重写,整个过程意在可以修改Angular1
app开发存留的一层层问题,目前截止效果明摆着。Angular2
也会援助 web
组件开发,使其有力量支撑更好的展现。而Google也认为它是Web开发的前景。

而是,不管Angular团队怎么样努力的引路开发者从Angular 1 辅导向Angular2,
Angular社区对Angular的挑三拣四仍然分成两大阵营。重写导致Angular的僵化和React逐步火热,而以此势头正在加剧。

Angular2 能否和 Angular1
当初同等成功,并不可以一心自然,在Javascript社区也众说纷纭。Angular2
还是在Javascript和web开发的”将来”中有成功的可能,但2016显然不是Angular2,特别是它如故在beta版本。对于这先不喜欢复杂
react app 需要配置很多东东的开发者来说,Angular2 依旧得以采用的。

Meteor

Meteor在Github的关心和下载始终是稳步上升中,和React,Angular
的迈入一般。这是一款轻量级、全栈式,并有举世瞩目特性的Javascript框架。很多开发者用它从框架中发现众多流行有趣的地点。meteor被认为是一款原型式框架,而且对初级开发者分外友善,并且上手较快。

唯独,当使用Meteor时又是另一种状态。那个学过 Angular1
或者是一对Rails的开发者都控制了大气藏身的魔法技巧,而这也会是阻挠Meteor成为主流的一个原因。

Meteor 不像 React 和 AngularJS, 集团中或者会有一对正经的开发人士,而
Meteor 没有,这也是不被考虑的元素之一。虽然 AngularJS
有成千上万题材,但有Google的技术团队撑腰。而使用 Meteor 不等同,
无论是前后端支出,都会存在诸多的技巧风险。Meteor要更广阔的被广大开发者使用,还亟需解决许多问题。

更别提这多少个数据库问题,由于 Mongodb 是 Meteor
的默认数据库,而有些开发者对MongoDB的付出情势不是很感兴趣(阅后即焚的小型数据库)。

Meteor运行必须要凭借 SQL,而那点也尚无博得很好的支撑。

绝不说,Meteor
在2016竟是二〇一七年可以占到的份额都会相比少。对于构建大型载重的使用,大部分标准开发者对这一个技能,依旧持保留意见的。

交互

One use for JavaScript is for animating your layouts

JavaScript作为一门语言,你曾经对它抱有理解,下一步要询问它什么行使于web,要了然JavaScript是什么样与网站交互,你需要知道文档对象模型(Document
Object
Model)

DOM是HTML文档中实际的结构,它是对应于HTML节点的、由JavaScript对象结缘的树型结构,更进一步,你可以读一下CSSTricks发布的什么是DOM这篇作品。它对DOM提供了简约直接的叙述

Inspecting the dom

JavaScript可以修改DOM元素,这里有一个选项HTML元素并修改它的始末的事例:

var container = document.getElementById(“container”); 
container.innerHTML = 'New Content!';

不用担心,这无非是一个简便的例子,你可以经过JavaScript
“DOM操作”做更多的政工。想深造更多关于JavaScript怎么着与DOM交互的情节,你要通过以下MDN部分的点拨,The
Document Object
Model

  • 事件
  • 使用DOM开发web和XML的例子
  • 怎么着创建一个DOM树
  • DOM简介
  • 运用采取器定位DOM

重复强调,把注意力集中到概念而不是语法上。试着回答以下问题:

  • 什么是DOM?
  • 如何查询元素?
  • 咋样添加事件监听者?
  • 何以方便的改观DOM节点属性?

要博得一个通用的JavaScript
DOM操作列表,可以看一下PlainJS提供的JavaScript函数和拉扯,这一个网站提诸如咋样设置HTML元素样式和接连键盘事件监听者等例子,假诺您以为还不够想更透彻,你都足以翻阅Eloquent
JavaScript中的DOM部分。

  6. Less/Sass/Stylus

 

澳门葡京 22

 

有为数不少人不希罕CSS.它很容易就达到了1000行的css文件同时不便于被一定和改动。为通晓决这多少个题材,有些语言像Less,
Sass and
Stylus可以编译成CSS文件,并得以选择变量、宏和任何的不二法门来增长你的编码。你可以一早晨就搞定它们中的一种。

网站确实需要 React、需要同构 JavaScript 吗?

可以吗,这我们就重构代码,不过网站确实需要 React、需要同构 JavaScript
吗?我领会,这多少个技术都很酷,我们也想用。可是,我们真的愿意每五个星期就重写整个前后端代码吗?

新技巧日新月异,尤其是 JavaScript
方面的。新技巧每月都会油然则生,而且也有店铺在促进着那个新技巧。

即使某项技术是 谷歌 出品或 非死不可 出品,那么它肯定很酷是吧?因为
谷歌、Facebook 的那帮家伙们了然她们协调在做什么。

澳门葡京 23

从而立即就去打听了下 React,还看了看她们介绍 React 和 Flux
的那次演讲,会上他俩基本上就说了这多少个:

“大家在 Facebook上遭受了音讯通告上边的题目,当信息被阅读了未来,状态并从未更新。”

“我们的这个 MVC 项目很欠好,因为 MVC
本身就很不佳,所以这些类型并不曾很好地运行,所以我们阐明了 Flux。”

及时,我的反馈是这么的:“我勒个去,这都能够!?”

澳门葡京 24

从哪些时候箭头可以从 View 层画到 Model 层了?我以为这是荒谬的。

尔后有一个问答环节,可是并不曾人提问。在座的每个人想必都是如此想的,“恩恩,MVC
太逊了,大家确实需要 Flux。”

可能他是要抒发一个看法,不过这多少个视角她并不曾发布清楚。

下一场自己往下滚动页面,评论区有雅量这么的评介,“这不对呀,这有题目啊,这根本就不是
MVC 啊!”

澳门葡京 25

真搞不清楚宣布会上他们都在说怎样。演讲完了,每个人都感到 “恩,MVC
是挺逊的,我们确实需要 Flux,因为 Flux 解决了大家所有的题目…”

唯独,说实话,我也没有身份谴责他们。我在会上的问答环节也未尝站起来说“这多少个不对”,因为我根本就相比谦虚,我连续认为别人说的都是对的。~^.^~

ES6 终于要推广了

2016年,固然您是个Javascript开发人士,而你的采用还一直不采纳ES2015支付规范,你要赏心悦目问问自己,你究竟在干什么?

但怎么用 Babel 和 TypeScript 处理 ES6 app
项目呢?Babel大部分是转换ES6的ES5,TypeScript
是可选的静态类型和简易类型的Javascript的超集。

非死不可制造了Babel,Babel只匡助静态类型检查的Javascript,
并做转换,所以这两边都是以不同目的的法子被创制出来,没有可比性。因而双方一般不会同时采纳。

Babel是的率先个连接ES5和ES6类型的言语,而TypeScript在ES6的帮忙也即将赶超ES6了。在github上Babel关注度更高,更毫不说还有React开发者会利用Babel

  • Webpack的组合。

你也许会阅读那篇著作:Setting Up a React Environment Using Npm, Babel,
and
Webpack

唯独,在日前,假设你看有些Javascript的化解方案,那么些代码库都是用TypeScript做的,TypeScript也变得更加火,挑选它的人也愈发多。Javascript曾给人的记忆是相比较难懂,难调试的。不仅归因于它是一门动态语言,而且紧缺类型检查的体制。TypeScript却很好的支撑了一点,而且TypeScript还有一个比Flow更大的社区帮助。

除此之外,我们看下在Google倾向上对TypeScript的爱惜走势图:

唯恐TypeScript在受关注程度上低于Angular2,但随着Javascript的接纳越来越大,它很有可能就此而被关注。同时,Redux使得Javascript应用测试变得尤其简便易行,
在TypeScript的帮忙下,其代码已更具可维护性(它也能和React的JSX兼容)。除此之外,微软、Google、非死不可一齐从事在Javascript上添加静态类型,最终生成ECMAScript协议。Google放任了AtScript而用TypeScript在AngularJS上,而非死不可的Flow的社区范围并没有TypeScript那么大。

于是,很可靠地说,不仅静态类型的Javascript是一种趋势,而且这个不喜欢Javascript的开发者也因为TypeScript先导接触JavaScript了。TypeScript极有可能是前景的方向。

检查

要调试JavaScript,我们利用内嵌在浏览器中的开发工具,几乎所有的浏览器中都会有检查面板,通过它你可以查看页面的源码,你可以查看JavaScript的实践,在巅峰上打印调试意况,仍能够查阅网络请求和还原。

此地是Chrome开发工具指南,假诺您利用的是Firefox,你能够查阅这一个指南

Chrome开发者工具

  7. 令人兴奋的框架

 

澳门葡京 26

 

Meteor是一个全新的web应用开发形式,它模糊了前者和后端的边际。它同意你书写实施的行使,并且有高速成长的社区来提供各样包模块。胡德.ie
是一个小得竞争者,不过提供最新的艺术。它能为你处理后台,所以您可以集中精力来做你使用的前台。

保障冷静,勿信炒作

指出质疑,勿信炒作–我们已经该如此做了。

说到底,不管是 非死不可 依旧 Google,它们也只是商店。如若 Facebook 将
React 交给社区,他们就会有诸如此类的议程。Angular 和 React
正在交付给新的开发者,或许并不是因为她俩想给社区部分东西。

俺们相应时刻保持清醒,在大部的时代都不会无故地天上掉馅饼,所有的事物都是梦想可以赚钱的。

于是只要有这种炒作的话,你真的应该指出质问。

澳门葡京 27

究竟,所有的这个事物都只有是框架,是别人的代码!

在 JavaScript
的社会风气里,大家喜欢谈论不必要的依靠,因为这么些由互联网上的某部陌生人撸出来的代码总是完美的,对啊?

利用第三方组件真的有些 low,使用任何框架同样也很 low。

问题是如此的,你依靠旁人的代码,当您想修改部分事物的时候,你就必须去修改他们的源码。

据此此时此刻,你并从未读书运用编程语言本身来处理问题–你读书的是旁人的代码,你调试的也是别人的代码。

千古有太多这样的案例,比如 PHP 的 Symphony
框架。你有一个生成器,然后直接运行就足以了,框架已经为你生成了你所需要的满贯。可是,假如在某个时刻框架底层报错了,这你就实在不亮堂到底是何地出题目了。

这就是说问题来了:

对照于高效形成项目,不借助其他框架自己来做不是更好啊?

在这种境况下,当出现了问题时,你就得查看代码,学习怎样让它们互相配合。

举个栗子,在 JavaScript 编程语言中有模块化这一概念–这一个定义在 React
中展现的更加优良–代码被分为一个一个的模块,然后以某种格局将它们构成起来。

自身尝试着搞了一个 React 项目,可是自己事后就实施 npm uninstall
卸载了所有的看重性,因为唯有为了构建一个同构 React
应用竟然被安装了这么多的看重。

澳门葡京 28

上图中突显有 13 个依靠!13
个依靠打包出来的代码都上兆了。这种气象自然要谨慎处理啊。

函数式编程要变成主流

确切的说,大量函数式编程已经以她们的方法缓缓的霸占主流的编程领域。但在现行错综复杂的web
apps中,”函数式编程”又再次被关注了。

好像Scala的后端开发者,正日趋的拥抱函数式编程。Fackbook的React前端开发者也指出了UI的函数式看法。随着越来越多的称扬,函数式开发将会变成主流。

当今,前端开发紧如果响应式编程和函数式编程。React+Redux的支付情势,平时对于新手开发者来说,面向对象的编程是选用最多的缓解方案。另一个角度来说,React需要开发者用一个函数来拍卖UI,而Redux用一个函数处理多少。所以基本仍旧OOP的情势。

不顾,这几个用函数式编程的开发者,你照样要百折不挠使用Javascript,并且学一些RxJS的技能。RxJS是Javascript的响应式扩大,用于代替Flux框架,可能在小型项目中会有一对负功能,但在局部特大型web项目中却可以抒发很大效能。Netflix采纳RxJS,因为Angular2帮忙并很好的运用RxJS。由于RxJS是微软研发的,它也很好的合一了TypeScript,并且在不停的统筹兼顾中。

可是,RxJS学起来相比难,不少开发者屏弃了做FRP,而在类型中用函数式开发。

值得注意的是另外的部分臆想,比如ClojureScript和Elm,
但和React+Redux的函数式编程比起来仍旧有些没有。(不过,Redux是受了Elm启发的,所以有些开发者仍然想去关注一下Elm的)

考虑到Javascript庞大的生态,很难说会广阔迁移到Elm的或许(当初有很几个人坚信Scala会替代Java,但是最后并从未)。RxJS,
另一方面,依然是学习窍门较高的框架,暂时无法变成主流。

乘势函数式编程很好的适应了现行web开发的狂潮,有几许内需强调,函数式编程已经改为当时Javascript开发人士必不可少的技术之一了。

基本训练

近来结束,我们还有为数不少JavaScript知识要上学,上一章我们决定学了不少新知识,现在我们休息一下,然后做几个小尝试,他们会赞助巩固你刚学的一部分概念。

  8. 令人兴奋的言语

 

澳门葡京 29

 

对此部分编程语言迷来说,这又有的事物。Golang, Rust and
Elixir增长的来头很强,被用在一些对性能要求很高的情景下。我们不推荐转移你的编程方向到那一个语言中,但是你也许会在讲求与另外的网站交互时会用到。

无须轻信旁人的代码!

对于 npm 同样有这么的题目。

澳门葡京 30

从上图中可以看来,编程世界里有 40 万个难题,是啊?所以就对应着现身了 40
万个缓解方案。

这周自我需要转移一些 UTF-8 HTML 字符实体–来给我们看一下自我找找出来的结果:

澳门葡京 31

本着于同一个问题,有众多模块给出掌握决方案,所以采用正确的化解方案真的有点不方便。

你必须查看并做决定:

  • 那一个包还有人在维护么?
  • 以此包有多少个 bug?

在你用 npm 或者 yarn 来安装包的时候应该三思而后行。

一律,在你从 StackOverflow 上复制粘贴的时候也要三思而后行。

澳门葡京 32

此间是一个转换 HTML 字符实体的包。

在文档中有一处显明的谬误:首先定义了 var Entities ,然后实施了
entities = new Entities(),他们在无意中生成了一个尾巴。

在 StackOverflow
上有一个问题,回答该问题的一个同桌直接从文档里面复制粘贴到了
StackOverflow。

我坚信下一个同学会直接将这段代码复制粘贴到她的代码里。只是是因为:StackOverflow
出品,必属精品。

从不人站出来说这段代码有题目。所以无论你是从 Stackoverflow
如故此外的咋样地点复制粘贴代码都要三思而后行。

总归是旁人的代码,所以你应当精通整个代码,并逐行确认代码确实如你所想的这样运行。

桌面应用的对决:Nw.js vs Electron

现在,大量的软件需要一起数据到不同的阳台(即,手机和桌面)。大部分都是起源于web
app,之后再成立桌面应用, 而为了更好的用户体验,web
app升级会更快,并且更易于。更何况,用户在什么都不装的气象下,都可能会卸载你的产品。由于经验糟糕,所以这是个相比大的考验。

在过去,人们为了这些web技术开发前端UI的桌面app产品,收到了CEF技术的评释。这并不便于,而且那个应用还不曾当真的跨平台兼容。自从2014年,Node.js的产出,桌面应用框架可以很好的施用web技术开发,并拍卖跨平台的题材。但随后便没有出现新的东东。

现行,在该领域任有五个关键的技巧:Nw.js(node-webkit原身)和Electron。就算两者都是正确的精选,有自己的优势,这篇著作是有关发展趋势。

故此,让我们来看看多少个档次在Github上的关心事态:

nwjs vs electron

出自 Star
History

尽管Nw.js出道较早,而且比较成熟,但Electron却以指数格局加强,而nw.js的滋长看上去是政通人和的线性的。

等等!由于Electron是在GitHub诞生的,考虑到GitHub上关注的公正性,我们去看下谷歌趋势,但好像或多或少反映了一样的情状:

nw.js vs electron

Electron相比较新,但早已用在了一部分出名公司比如Slack、微软、WordPress和Sencha.(Codementor
也用了Electron做了它的桌面应用)。Electron的简单易用,使得它的生态系统和社区平台也逐渐增添。它的酷暑程度恐怕会继续到2017,使用Electron框架开发桌面应用,应该是开发者现在最好的挑选。

实验1

跻身实验1,大家打开AirBnb,同时开辟浏览器页面检查,点击顶点标签,在终点里你可以实施JavaScript语句。我们就要做的事是从操作一些页面中的元素而收获部分乐趣。试试看,你是不是可以展开下面将要描述的持有DOM的操作。

Airbnb.com

自我选取AirBnb的页面是因为它们的CSS类名相当直白,不会被有些编译器处理的歪曲不清,所以你能够采用性的在其他页面做这一个操作:

  • 挑选一个具备唯一类名的header标签,改变其中的文字
  • 采取任何页面上的因素,然后删除它
  • 选料任何一个元素,改变它的某一个CSS属性
  • 接纳一个指定的段落标签,将它下移250个像素
  • 慎选另外组件,例如一个面板,调整它的可视性
  • 概念一个函数名doSomething: 可以弹出”Hello
    world”警告,然后想方法执行它
  • 慎选一个一定的段子标签,让它监听一个click事件,一旦该事件触发,则运行doSomething

如若您卡住了,可以在JavaScript Functions and
Helpers中找寻有关知识,这多少个职责基本上都是按照这一个指南的,下边是率先个问题的的例证:

var header = document.querySelector(‘.text-branding’)
header.innerText = ‘Boop'

以此试验的重点目标是磨练你所学的JavaScript和DOM之间的操作,并观察他们的作为。

  9. 经文的全栈式框架

 

澳门葡京 33

 

虽然那么些单页面应用增长迅猛,但仍旧有恢宏的采取服务端的web应用。on Rails,
Django, Laravel,Play,
ASP.NET是这排行靠前的多少个框架。花点时间学习其他的MVC框架都会让你收益良多。

Daniel Khan 的顶点 web 开发指出

恩,最终自己加以几句。对于自己来说,有几条标准紧要。

率先条首要条件(注:Don’t repeat yourself):DRY!

那条规则表示-在 Node
中代码复用很容易-
毫无因为某些逻辑相同就四处复制粘贴代码。

你应有将 config 文件 require 到使用中,而不是在用到 config
的地点都复制粘贴。require 以后,修改 config
文件,所有应用的地点就都一头修改了。

尝试两回加载,减轻代码,然后在需要的地点将它传递过去。因为回调函数的留存,所以在
Node 里工作就显示略微复杂。

接下来,我们说说回调函数。创立可以处理函数重回值的函数是个好的取舍,回调函数就是如此的存在。

是不是多少说不通?你创立了一个函数来读取数据库中的某些数据,然后调用回调函数,处理回来的数据库结果,这里最好创立一个可知处理不同再次回到值的回调,而毫无四次一回的制造。

Yagni 原则(注:You ain’t gonna need it):“你不会需要它”

故此当您做事情的时候,问自己多少个问题:

  • 其一类型有 非死不可 那么大呢?
  • 自我真正需要像这样设置吗?
  • 我实在需要像那么创造吗,依然说自己只有是预见它之后会现出?

请一定要务实!

KISS 原则(注:Keep it simple stupid)

终极一条规则:尽心尽力简单

设想到将来的祥和,你的代码应该写的尽量简单、易通晓。假使您喜爱我讲的这多少个编程思想,可以读读这本书:

澳门葡京 34

假诺您要读书的话,请一定要读读这本–《程序员修炼之道》。书中讲到的许多平整在自家讲的这么些编程思想中都怀有提及。

谢谢!

1 赞 1 收藏
评论

澳门葡京 35

手机端框架相比较:React Native vs Ionic

从今 React Native 横空出世以来,人们预测2016年将是React
Native之年,考虑到跨平台的开支格局,将来将是手机开发和web技术的一世。假设你谷歌时而React
Native app性能 ,你会发现众多歌唱。特别是在相比了HTML5 hybrid
app,因为它跑起来更平整。是否2016属于React
Native之年?在宣扬和关注上,看来它是达标了预想的:

react native vs ionic

但事实上是否是这样吗?当写这篇作品时,React
Native依旧没有到达1.0本子(现在是0.26)。所以,假诺你现在想用React
Native需要勇气和耐性去处理局部app问题,可能需要重构代码,还会有一对不为人知的题材(Codementor也只是使用在手机端)。由此,大家再看一下React
Nativc 和 Ionic 在npm的下载相比较:

react native vs ionic

出自 npm
trends

从这一个图可以见见,似乎React
Naitve正在以它的主意,超过ionic成为最佳的跨平台移动支付框架。

在现今的就业市场中,了解React Native技术的姿色也变得比ionic更加走俏。

react native vs ionic

出自
indeed.com

在安琪List的招聘列表中我们做了简易的总计,这一个结果反映了扳平的问题:在十一月30号左右,有75个有关ionic的招聘,有65个关于react
native的招贤纳士数据。

为此,假诺在您的简历中有熟练React
Native技术。在2016年,雇主们相对会给您的提供更高的工钱。

实验2

JavaScript允许开发者创立交互式面板

使用CodePen写多少个包含逻辑的JavaScript函数,以及操作DOM元素。那个试验的主旨内容是将您从草根到英雄第一有些学到的学识和JavaScript结合,下面的多少个例证可能会给您带来灵感:

  • 周期表格
  • 心理颜色爆发器
  • 计算器
  • JavaScript智力问答
  • 小行星画布游戏

原稿链接:2016年需要了然的前端框架和言语

侵删

webAPI的未来 : GraphQL vs REST

2016年,在非死不可发表开源GraphQL之后,这使得大量的JavaScript开发人士开端从事它的研讨。特别是在开源项目上,非死不可在苹果的JavaScript领域做了许多奉献:

GraphQL目标是替代REST
API,但REST
API已经应用的愈加普遍了,这是不太可能的状态:

rest vs graphql

GraphQL很难取代REST API。充其量,它可以补充REST
API所提供不到的东西。而且,GraphQL如故相比新,还很看重非死不可,所以它从不丰裕的上学资源来让开发者来增进。由此,2016年对于GraphQL来说,如故不足以使引起开发者的足足兴趣。前年可能会变动,不过2016年三月30号在安琪List中得以看看,仅仅唯有6个招聘是对GraphQL有需要。所以你可以无需急于学习它。

更多JavaScript

最近你已主任解了一些JavaScript知识,并且为此做了部分演习,让大家继承上学一些尖端的概念呢。下边的定义不自然相互有牵连,我将它们列在此间是因为它们得以帮助您理解什么构建更复杂的前端系统。你将在持续的试行和框架章节领会什么利用这些概念。

JavaScript走势的下结论

JavaScript社区完整提升是相比快的。为了维持主流定位,必须有更多的资源和协理等一些息息相关音信。基于本文的JavaScript的样子总括,近日的开发人员需要上学React
+
Redux,需要了然函数式编程,学习TypeScript。此外,还索要关注其他领域,React
Native等,同时有局部Electron的阅历或者会更好。(当然,TDD测试驱动开发,无论几时都是您要控制的技巧)。

语言

若果你用JavaScript工作,你将赶上不少尖端概念,我将这几个概念列出来,当您有时光时可以开展阅读。同样的,Eloquent
JavaScript蒙面了多数定义,也可以用来填补你的学问。

  • 火上加油原型
  • 作用域
  • 闭包
  • 事件循环
  • 事件通报
  • 恳请、调用和绑定
  • 回调和承诺
  • 变量及函数挂起
  • Currying

Imperative vs. Declarative

JavaScript和DOM怎么样相互,有二种艺术:imperative和declarative,一方面,declarative程序专注于what,另一方面,imperative程序专注于how

var hero = document.querySelector('.hero')
hero.addEventListener(‘click’, function() {
  var newChild = document.createElement(‘p’)
  newChild.appendChild(document.createTextNode(‘Hello world!’))
    newChild.setAttribute(‘class’, ‘text’)
    newChild.setAttribute(‘data-info’, ‘header’)
    hero.appendChild(newChild)
 })
}

下面是一个imperative程序的列子,我们手动查询出一个因素,并且将UI状态存储在里头,换句话说,该程序要目的在于于咋样(how)完成某件事情。这段程序的最大问题是它不够稳定:假诺某个人修改了这段代码中的类名,例如将hero修改为villain,该监听事件将不会被触发,因为DOM中不在有hero类了。

Declarative程序解决了那多少个问题,你可以把挑选元素的操作留给框架或库去做到。那种做法让您放在心上于做什么样(what)而不是如何这样做(how)。想要明白更多,读一下JavaScript的状态——从Imperative到Declarative和3D
Web 开发 #1: Declarative vs.
Imperative

这篇指南首先报告你imperative方法,然后才是Angular和React库的declarative方法,我提出依据这样的逐一学习,可以让您更明了的问询到declarative解决了什么样问题。

Ajax

通过以上的稿子和指南,你应该注意到了Ajax,Ajax是一项可以选拔JavaScript和服务器交互的技术。

Ajax is what makes content dynamic

诸如,当你在网页上交给一个表单,这么些动作会将你的输入作为一个HTTP请求发送给服务器。当你在Twitter上发送一条果壳网,你的Twitter客户端发送了一条HTTP请求给Twitter的API服务器,并且动用服务器重返的数目更新页面。

你可以看下什么是Ajax拿到更多Ajax的文化。倘若您依然不可能完全清楚AJAX的定义,看一下Explain
it like i’m 5, what is
Ajax,即使认为还不够多,你能够读一读Eloquent
JavaScript的HTTP章节。

前日完结,新的浏览器请求标准是Fetch,想要精晓更多的Fetch的始末,可以读一下Dan
Walsh的这篇随笔,里面介绍了Fetch是怎么着行事的,以及如何采取它。你还足以在这篇小说中补充Fetch
polyfill知识。

jQuery

最近截至,你早就运用JavaScript对DOM做了成百上千操作了。事实是,已经有许多DOM操作的库,他们提供API来简化你的代码。

最流行的DOM操作库是jQuery,记住,jQuery是一个imperative库,它是在前者系统还并未今日如此复杂的时候开发的。后天,为了管住复杂的UI,我们会使用declarative框架和库,例如Angular和React。可是,我依旧提议您读书jQuery,因为作为一名前端工程师,你一定会在工作中遭遇它的。

jQuery是JavaScript操作DOM的抽象

读书jQuery基础,可以看下jQuery上学为主,它会一步步的告知你animations和事件处理那些紧要的概念。假如你还想学习更多入门学问,你可以看下Codecademy的jQuery课程

纪事,jQuery不是绝无仅有的imperative
DOM操作解决方案,PlainJS和You
Might Not Need
jQuery是六个很好的资源,他们会报告你和jQuery一样的屡屡利用的JavaScript函数。

ES5 vs. ES6

另一个重点的概念是ECMAScript以及它和Javascript的涉及。近日您将会遭受三个紧要的科班:ES5和ES6。ES5和ES6是JavaScript使用的ECMAScript标准,你能够把他们当作JavaScript的版本来领悟,最后的ES5草案拟于二零零六年,也是我们眼前从来在选拔的。

ES6,也叫ES2015,它是新型的规范,带来了部分新的比如说常量,类,和模板如此这般的言语特色。ES6牵动了新的语言功用,但仍然在ES5的底子上定义语义。例如,ES6中的类仅仅是JavaScript原型继承的语法修饰。

有必要知道您前天收看的选择,要么使用ES5,要么使用ES6。ES5,ES6,ES2016,ES.Next:
JavaScript版本到底怎么了和Dan
Wahlins的ES6入门——下一代JavaScript是很好的ES6介绍。接着你能够在澳门葡京,ES6意义列表查阅ES5到ES6的成形。尽管您还想了解更多,去Github代码库获取更多ES6效能音信。

更多磨练

恭贺您可以到达此处,近来你曾经学了成千上万有关JavaScript的学问,下边咱们做一些演习。

实验3

Flipboard.com

实验3汇聚于训练咋样运用DOM操作和jQuery技能。在这一个试验中,我们将学会一些结构化的法门,实验3会要求您克隆Flipboard的主页,Codecademy上有这一个课程,你只需要一步步照做即可:用JavaScript与Flipboard的主页举办相互指南

在学这篇指南的时候,请把注意力集中在精晓什么与网站交互上,当落实了交互之后,就了解哪些行使jQuery了。

实验4

Dieter Rams Clock

尝试4用介绍性的JavaScript课程将你所学的HTML和CSS结合起来。在那个考试中,你将开创一个你自己规划的钟表,并应用JavaScript让它富有交互性。先河此前,我提出您读一下HTML,CSS和JavaScript解耦那篇著作,你将从中学到当JavaScript引进时,CSS的基本类命名规范。下边,我仍然从CodePen中甄选了一个列表,作为那个实验的参照。例如,你可以在CodePen中搜寻一个时钟

  • 扁平日钟
  • jQuery墙钟
  • 完美的时钟
  • 复古的钟表
  • JavaScript简单时钟

您可以拔取二种方法来做这一个试验,第一个是先成立和统筹HTML、CSS布局,然后再充实JavaScript交互。第二个主意是先写JavaScript逻辑,然后把布局加进去。毫无疑问你能够使用jQuery,也得以随心所欲使用原生的JavaScript。

JavaScript框架

当您控制了JavaScript基础之后,后续你需要了解一下JavaScript框架,框架是可以协助你结构化和组织代码的JavaScript库,JavaScript框架是可复用的,并能提供解决复杂前端问题的方案,就像状态机,路由体制以及性能优化。他们被大面积用来创建web应用

自己平昔不各样的描述每个JavaScript框架,不过,这里有一对框架的链接:Angular,React
+
Flux,Ember,Aurelia,Vue,和Meteor。你不需要上学抱有的框架,选一个就学即可,不要追赶框架的时尚,取而代之的是,你需要明白框架程序底下的准绳和军事学。

架构模型

在求学框架此前,精晓部分框架通常拔取的架构模型分外首要:model-view-controller,model-view-viewmodel,和model-view-presenter。这些模型被规划用来在应用程序的不等层次成立清晰而分离的风味.

暌违的特征是一种指出将应用程序划分为不同的层次的规划标准。例如,与其让HTML保留应用状态,还不如用一个JavaScript对象——日常被叫做Model——来存储状态。

要领悟更多模型,首先阅读Chrome
Developers中的MVC,然后,读一下知情MVC和MVP(献给JavaScript和主旨开发者),在这篇著作中,不用学习’主干’,仅仅了解MVC和MVP即可

对于MVVM,Addy
Osman也写了篇小说:精通MVVM——给JavaScript开发者的指南,
Martin Fowler的散文GUI
架构您也理应读读,它既讲了原生的MVC,又讲述了MVVM是怎么来的。最后,读下这篇JavaScript
MV*
模型,还有一本系数的免费在线图书Learning
JavaScript Design
Patterns您也足以看下。

设计格局

JavaScript
框架没有再度发明轮子,很多框架都依靠于设计格局,在软件开发过程中,你可以把设计格局想象成解决通用问题的模版。

不过学习设计格局不是领略JavaScript的必要条件,我指出您领悟以下多少个设计模式

  • 装饰者形式
  • 工厂形式
  • 单件情势
  • Revealing
    module
  • 外观形式
  • 观察者格局

知情并促成部分设计格局不仅仅让您成为一个更好的工程师,还支援您了然一些框架的现实性贯彻。

AngularJS

AngularJS是一个JavaScript
MVC框架,有时也是一个MVVM框架,它由google维护,并在二零一零年先河发表时给JavaScript社区拉动了一场风暴

AngularJs – what HTML would have been

Angular是一个declarative框架,对自己帮助最大、帮我晓得JavaScript编程是什么样从imperative转换来declarativ思想的著作是来源于StackOverflow的这篇小说:AngularJS和jQuery有什么样不同

想更多的打听Angular,可以查看Angular文档,里面还有一个Angular
Cat花色,能够帮你立即进入编码状态。更完整的读书AngularJs指南可以在提姆(Tim)雅各布(Jacob)i的Github仓库中摸索。最终,你还是可以够看一下约翰(John)Papa写的这篇权威的best practice
styleguide

React + Flux

Angular很好解决了程序员在构建复杂系统时所面对的问题,另一个风靡的工具是React,它是一个创办用户界面的库,你可以把它想象成MVC中的V。由于React只是一个库,所以它会平常陪伴着一个框架Flux

一个创设界面的JS库

非死不可设计React和Flux的目标是为了化解MVC本身的不足和其扩充问题。先看一下他们总所周知的牵线:Hacker
Way: Rethinking Web App Development at
Facebook,它重温了Flux的野史。

搭梯子才能看的视频

React和Flux的学习,先从React开始,React文档是一个很好的入门教材。然后,这篇React.js
Introduction For People Who Know Just Enough jQuery To Get
By会帮助您扭转jQuery思维格局。

假如您持有了React基础,便可能够起首读书Flux,同样的,官方文档是一个很好的起来,继而,你可以看下极好的React,这篇著作可以指点你进入更浓厚的上学。

勤学苦练使用框架

您现在持有JavaScript框架和架构的基础知识,于是又到了磨炼的时候了。在持续多少个实验中,专注于拔取你学过的框架的定义。特别需要专注的是,你要让你的代码保持DRY标准化,头脑中能清晰的明亮不等的概念,并可以让您的模块仅完成单一的效用

实验5

实验5的课题是将一个用JavaScript实现的TodoMVC的app掰开,然后再用将其重写。换句话说,这是一个从未有过其余框架的试验,但利用了MVC的原理,目标就是让你更深切的明亮MVC是咋办事的。

首先你看一下TodoMVC长什么样体统,然后您要做的是先创建一个新的本地工程,建立MVC的六个零部件。你还索要拉取Github仓库上的代码,因为这是一个相比较复杂的实验,假若您仍然不能到位克隆那么些体系,抑或没有时间,没有涉嫌,直接利用你下载的Github代码,不断调试MVC的例外组件,直到你了然了组件之间是何许运行的。

实验6

实验6是一个应用MVC的很好练习,领悟MVC是跻身JavaScript框架的必经之路,实验6会让您跟着Scotch.io制作的指南,使用Angular建立一个Etsy页面的克隆版。

Build an Etsy Clone with Angular and
Stamplay教您利用Angular成立一个web应用、API接口,以及咋样协会大型的花色。完成了这么些指南,试着应对以下几个问题:

  • 什么是web应用?
  • Angulars是怎么利用MVC/MVVM模型的?
  • 什么是API?它是用来做怎么样的?
  • 您怎么协会大型的代码的?
  • 把UI打散到不同的机件的补益是什么样?

设若你想亲手创办更多的Angular web应用,试一下Build a Real-Time Status
Update App with AngularJS &
Firebase。

实验7

React和Flux是无敌的组成

近来你早已适应了MVC,轮到Flux出台了,实验7难为让你利用React和Flux框架创建一个todo列表。全经过在此处:Facebook的Flux文档,它会一步步教您什么利用React创造界面,以及Flux怎样建立web应用。

只要你一切到位,你可以进来更扑朔迷离的科目:怎么着运用React,Redux和Immutable.js创立一个Todo应用,并运用Flux和React建立一个今日头条应用

保持更新

和另外前端开发一样,JavaScript的技能提升的急速,时刻保持更新这件事变得非凡关键。

提交以下列表的网站,博客以及论坛,它们既有趣,又很有价值:

  • Smashing
    Magazine
  • JavaScript
    Weekly
  • Ng
    Weekly
  • Reddit
    JavaScript
  • JavaScript
    Jabber

从例子中学习

极品的读书形式是从例子中学习

作风指南

JavaScript风格指南是一组代码规范,它会支援你计划有所可读性和可维护性高的代码。

  • AirBnB的编码规范
  • 常用的JavaScript原则
  • Node编码规范
  • MDN编码规范

编码基础

自己早就不可以形容读好代码给本人带来的提携到底有多大,一旦当您想读新的好代码时,可以上Github上找

  • Lodash
  • Underscore
  • Babel
  • Ghost
  • NodeBB
  • KeystoneJS

圆满

著作的竣工,你应该牢固的通晓了JavaScript的基本功,并且知道什么样利用于Web开发。记住,这篇作品只是您的一个线路图,假诺您想变成一个前端英雄,你还索要在档次中花更多的光阴来适应那个概念,项目做得越多,你对她们也会越热情,你学到的也越多。

这篇随笔是两部系列的第二有些,唯一遗漏的地方是Node,他是一个方可允许JavaScript运行在服务器上的框架,未来,也许我会在写一篇小说介绍Node相关的服务端开发,以及NoSql数据库

欢迎来Tweet上找我

作者:@Jonathan Z.
White
译者:jieniu
原文:From Zero to Front-end Hero (Part
2)

欢迎您扫一扫下面的微信公众号,订阅我的博客!

相关文章

发表评论

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

*
*
Website