去年我写了篇文章,推荐一些JavaScript进阶学习的资源。互联网世界在这一年时间里发生了翻天覆地的变化,我想现在是个更新资料的好时机。JavaScript在过去的一年不断发展,不仅仅是浏览器中JS的应用,在服务器端也有了JS的身影。所以现在让我们来更新一下这份资源清单吧。
书籍
随着JS的普及,大家能获取到的JS书籍实在太多了,但是在我看来只有很少一部分JS书籍可以提供够新够有意思的内容。以下是我看过之后,觉得很值得推荐给大家的:
JavaScript高级程序设计 作者: Nicholas Zakas
除了Nicolas写的这本之外,我从未见过另一本能将JavaScript这门语言陈述地如此好,所以《JavaScript高级程序设计》依然在必读清单上。正如我之前说过的,不管是初学者还是就想查查API的开发者,都可以从这本书中找到所需要的东西。这一版尚未将ES6的内容包含进来,不过我觉得下一版估计会写到了。
JavaScript设计模式 作者:Addy Osmani
使用好的设计模式来编写可维护性高的代码是无可争议的。但是找到一个可以实操设计模式的场景却是一个挑战。互联网世界里噪音太多,如果能让对某个领域真正有所了解的人能够发表他对那个领域的看法那就太好了。这也是我推荐这本书的原因。Addy不仅仅是一位很优秀的作家,他还是最出色的前端开发者之一,现在任职于Google Chrome团队,他的工作内容就是成天和JS打交道。这本书可以说是他的工作成果的导出。
最棒的一点是,这本书是执有知识共享许可(Creative Commons license)的,也就是说你既可以阅读它的免费电子版,也可以购买纸质版。
JavaScript面向对象编程原理 作者:Nicholas Zakas
JS开发者无法避免的问题之一就是JS面向对象编程。JS并不是一个传统的基于类(class)的语言,不像Java或者C#那样在设计之初就要兼顾到代码封装的问题。Nicholas又一次写了本简明扼要的书来谈JS的面向对象问题。不过这本书并不适合初学者,它是为了对JS有了自己理解的开发者或者/和对面向对象编程有所思考开发者。尽管如此,这本书还是应该加入你的书单里。
DOM Enlightenment 作者:Cody Lindley
在基于浏览器开发中,如果你想要做点有用的事情,就不要局限在操作DOM中。不要使用像jQuery这样操作DOM的库,实际去理解DOM是如何工作的是很有用的。Cody这本书就是教授如何使用原生的JS来操作DOM元素。这本书可以算是一本cookbook,你不需要跟着目录学习,可以直接看特定的章节。这本书也提供了免费线上版,或者你也可以买一本纸质本。
Node.js In Action 多名作者
基于Node.js的服务端应用已经在业内的顶尖公司得以广泛应用,PayPal已经将Node.js完全融入了他们的生产系统之中。这项在两年前的JSConf上初露端倪的技术,现在已经发展成为一项服务端技术,使得前后端语言得以统一。通过阅读这本书,你的Node.js水平可以得以提高,本书是由业界最出色的一些开发者共同完成编写的。其中一位作者T.J.Holowaychuk是Node.js框架Express的作者。如果你想要学习Node.js,就用这本书吧。
Third-Party JavaScript 作者:Ben Vinegar和Anton Kovalyov
现在我们访问的网站通常都会有一些内嵌的脚本,这些脚本可以提供给用户各式各样的交互。登录按钮、社交媒体部件或者一些分析,这些第三方脚本可以增加你的站点的吸引力。你是否想要知道使用这些脚本的细节呢?《Third-party JavaScript》是我所能找到的唯一一本讲到了关于内嵌脚本的使用的书。用第三方脚本让你的站点变得有趣,提高可用性。Ben现在在Disqus工作,Anton则是在Mozilla但是他同时也是Disqus团队的一员。Disqus为他们的客户提供了非常相似的服务,允许客户将多功能的评论功能内嵌入他们的站点中。这两位可以说是使用第三方JavaScript的专家。
博客
在过去的一年里,我仔细审查了自己的blog收藏清单,做了一些调整以便更好的接收JS方面的知识。以下是我认为可以提供给开发者最好的JS知识的博客:
Axel Rauschmayer博士希望能将JS语言分成好理解的模块,他的博文很明显地是在讨论这门语言的某些使用方式,解释JS的原理和它的要点。你能从他的博文中学到很多。
DailyJS依然榜上有名,它将框架和代码片段相结合,让读者知道时下最新的框架是什么,以及如何使用它们。
上文有提到Nicholas写的两本书,他的博客同样在榜。在Nicholas的博客中你可以看到他深入研究的东西,也能看到他关于ES6的简介和demo。
新兴事物来来去去,我很高兴还能推荐JS Weekly给各位。Peter Cooper不仅保持着每周推送,质量也一如既往地好。
(译注:JS 英文周刊,伯乐头条 JavaScript 话题一直在跟进摘编。)
这是Peter Cooper的另一个周报项目,这个项目专注于Node.js。和JavaScript Weekly相似,阅读Node Weekly,做一个Node.js高手。
虽然Addy现在不再频繁地更新他的博客了,但是他写的文章非常之好以至于我依然决定将他的博客列入这份清单里。只要Addy保持写作,你一定不会失望的。
Ben是一个低调的开发者,他只想要做好他的工作,将他的经验分享给大家。关键在于他也是一个天才的开发者,写了许多关于JavaScript的优秀博文。Ben最近沉迷于AngularJS,他也将这个框架最大限度地使用在他的创业项目中,读者可以从他的博文中知道AngularJS在实际项目中的应用情况。
别被这个名字给骗了,HTML5Rocks里说的不仅仅是HTML5,你还能在上面找到很多JavaScript的教程。你需要通过JavaScript最大限度地与HTML5结合,在上面你可以看到许多优秀的作者写的文章(包括Google Chrome 团队)。
一打开SuperheroJS,你就会被它的艺术感给震慑到。我总会想起Dick Tracy的漫画书。在这,你会沉浸在各种各样的JS技术当中。
我对Tuts+还是有偏爱的,Tuts上有许多超棒的作者贡献出超棒的内容。如果你不读一读Tuts+上的内容,恐怕不会感受到的。
书本之外
如果书和博客尚不能满足你的需求,你也想要写写代码,那现在有成千上万的(线上线下)课程可以选择:
从构建JavaScript Web应用到熟练使用Angular,从前端到全栈,Tuts+的课程日益增多,相信总有一款满足你。
Khan Academy’s Computer Programming Curriculum
jQuery的作者John Resig在可汗学院(Khan Academy)担任计算机科学专业的院长,可以确定他的教课计划中会有很多的JS内容。虽然现在课程还不是很多,但你还是可以从免费课程开始。
自从Codecademy采用了互动式的教学模式,并采用JS作为基础教学语言,它简直就是来了个大爆发。现在你可以在上面学到更多的语言,但是JS和jQuery依然是最推荐学习的,它们免费!
这是个社区驱动的网站,你可以通过Nodeschool上的课程加快学习Node的速度。它还有一个特色就是在现实世界中也有由全球开发者维护的node学校。如果你想亲临现场,可以查看这份活动清单。
如果你是个喜欢播客的人,JavaScript Jabber是为你准备的,JS Jabber时不时会邀请业内顶尖人物,讨论的也是热门话题。
寻求帮助
这份清单并没有变动很多,因为你也知道要找到靠谱的JS支持资源可不是一件容易的事。
我依然认为在JSMentors上你可以找到关于JS问题的最好的答案。这个社区有靠谱的规则来保证用户的体验,避免开发者受到糟糕的对待。当然SO提供了很棒的答案,但是你要很仔细的审查答案,SO上贡献者实在太多了,你要去关注那些高质量的答案。
结论
正如你所看到了,相比去年这份清单更改了许多地方,因为JS世界中多了许多新的可取的资源,还有一些新的影响因素在影响这个世界。最棒的一点就是,如果你是个JS开发者或者想要给这个世界做点什么,随着JS慢慢地成为了Web开发的通用语言,可以做的事情越来越多。