飞鱼

2017年最流行的Node.js教程精选 | @RisingStack

原文链接: blog.risingstack.com

RisingStack 2017年最流行的Node.js教程精选

Mark Hinkle,Node基金会执行总监,曾说道:‘对于Node.js,2017年是杰出的一年’。这点我们完全同意。 Node.js在技术领域有着令人羡慕的地位,每天线上运行的Node实例超过8.8百万个,并且这个数字在过去一年里飞涨。同时在一年时间内,Node.js的贡献者已经从1,100人发展到1,500人,每周下载的npm包超过30亿个。

Node在蓬勃发展

2017年对于RisingStack也是重要的一年。这一年,我们提供了许多的学习机会,不仅为初学者,也为高级Node开发者提供了很多的新教程,并且涵盖了微服务和Node的新特性。我们很高兴地看到,2017年有超过150万用户从我们这里学到了一些东西。

Screen-Shot-2017-12-21-at-1.54.51-PM-1

这也意味着通过RisingStack博客学习Node.js的开发者几乎比过去一年翻了一倍。

在2018年,我们有许多新的想法要写:优秀的教程、深度学习案例、Node新特性以及更多。然而,为了迎接即将到来的挑战,并告别2017年,我们精选了今年最好的文章

我们通过分析浏览量、分享数以及查询结果来确定2017年我们创建的最好的文章。他们就是:

1. 编写Node.js REST APIs的10个最佳实践

我们第一篇2017年度精选文章带你领略编写Node.js REST APIs的十个最佳实践。你可以学习如何正确使用HTTP方法,API路由和HTTP状态码。我们帮你测试你的Node.js REST APIs,并为Node.js REST APIs选择合适的框架。

鉴权功能、请求执行差异化、请求速限制和创建API文档,都是写好Node.js REST APIs的重要因素。这篇文章里都有介绍到。

2.Node.js面试问题及答案(2017版本)

你准备做Node.js开发的面试官?还是打算去做面试者?不管如何,我们这里都有好消息给你。

我们结合2017年最新的内容,更新上个版本的Node的问与答。该新版本包含promise、Yarn、如何保护HTTP cookie免受XSS攻击以及确保依赖安全等部分。

在这个全面的问答集合帮助下,你可以快速的回顾Node里面最重要的主题。

3. 为错误设计微服务架构

通过过去四年在RisingStack Node.js咨询与开发业务里面获取的经验,我们收集了最为常见的技术与架构模式,并推荐你去使用,如果你想要构建和操作一个可用的高质量微服务。

微服务系统需要多个物理逻辑组件间的合作,若通过网络联系沟通而不是内存调用,将导致微服务系统额外的延迟和复杂度,而这种合作联系是非常重要的。在这篇文章中,我们讨论了实施微服务模式的风险,以帮助你检测、隔离和解决问题。

4.精通Node.js的Async/Await

异步结构在其他语言中已经有一段时间了。随着Node.js 8的发布,期待已久的async函数在Node.js上线了。

你可以在本文中学习,如何通过Node.js的async/await函数来简化回调和Promise。

假如你喜欢用if-else条件和for/while循环这种好语句,或者认为try-catch语句是错误处理的方式,那么你可愉快的用async/await来重写代码。

5. Node.js + MySQL示例:处理上百GB的数据

在这个Node.js和MySQL的例子项目中,你可以学到如何高效的处理数十亿行数据,而这些数据将占用上百GB的存储空间。通过例子,来看分区表,以及如何从数据库中增删数据。

这篇文章验证了,符合ACID原则的数据库管理系统方案像MySQL,也可以处理海量数据。所以你不必放弃事务型数据库的特色功能。

6. Yarn vs npm - Node.js包管理器的现状

Npm 4成为了Node 7.4默认的包管理器,但是与此同时,Facebook也上线了他的包管理器-Yarn。

让我们看看Node.js包管理器的现状,当要选择的时候,看他们都能为你做什么。

7. Node.js异步最佳实践以及避免回调地狱

一定要避免回调地狱!我们找了最好的技术工具来处理异步操作:async.js、promises、基于generator的流控制和异步函数。

坚持以下原则来让它变的更顺利:

  • 选择异步而非同步API,因为非阻塞语句比同步的要有更好的性能。

  • 始终用最合适的流程控制或者其组合,来减少等待I/O完成的时间。

8. Node.js 8重要的特性和修复

期待已久的Node 8在5月30号发布了,带来许多新特性和改进。这篇文章中,我们要介绍最重要的部分,回顾一下异步钩子API、N-API和Node 8其他显著的变化。

并且,在今年的博客中我们也多次介绍到了这些。

Node.js 8.4.0发布的时候,我们介绍HTTP/2服务推送最重要的部分,同时介绍如何创建一个使用它的小型Node.js应用。

后来因为Node.js的新特性很棒,我们写了另外一篇处理ES模块,性能钩子和文件模块文章 。

9. 用Node.js搭建API网关

什么是一个API网关?为什么我们要用到它?这篇文章里,我们讨论了路由和版本管理、身份认证、数据合并、序列化、协议转换。同时试着去写一个简单的API网关。

我们将讨论为API网关定义明确的职责的重要性,以及仅包含通用共享逻辑的重要性。API网关有助于让你的服务小而专,所以正确合理使用是很重要的。

10. 用TypeScript构建Node.js教程

这篇文章里,我们创建了一个简单的项目,来展示如何去构建、测试和调试一个用TypeScript写的Node.js应用。讨论了Typescript是什么,为什么使用它有益,以及如何用TypeScript开始项目。文章中也包括添加检查,写测试和调试部分。

11. 正确地使用Node.js测试和TDD

想想你自己的未来!你想要在没有正确测试的代码上开发吗?如果不要,读读这篇关于正确地使用Node.js测试和TDD(测试驱动开发)的文章。测试驱动开发是一种先为模块写测试,再写实际开发的方法。

这篇指南包含了在RisingStack上我们所做的TDD的绝大部分内容:

  • 写错误的测试代码

  • 写正确的测试代码

  • 重构。

12. 用Prometheus进行Node.js的性能监控

在这篇文章中,讨论在生产环境中用Node.js应用时,具体要监控些什么。我们告诉你如何检测你的系统,选择监控工具时如何考虑,以及为什么我们推荐Prometheus当作一个自我托管的监控套件。

我们也有示例,给你更深入的意见,以便你选择它作为你的node.js应用的监控方式。

13. 用Rust写快速和安全的原生Node.js模块

当达到Node.js能提供的最高速率时,你可以做什么?为了提高你的应用性能,一个可能的方案就是用Rust而不是C++写原生模块。这是个好选择,因为其提供的安全和易用性。

在这篇文章中,我们将引导你完成一个现代、快速和安全的原生模块。

14. 用Pact来进行消费者驱动的契约测试

RisingStack里,我们喜欢用微服务,因为这种架构给予我们灵活性和快速性。这篇文章中我们展示了,在你的Nodejs微服务里面,如何使用Pack框架来执行消费者驱动的契约测试。

我们用Pact创建模拟服务器,来进行客户端单元测试。用Pact Broker收集,并与正在运行的服务进行验证,以保证消费者和提供者的一致性。

15. 编写一个Javascript框架-客户端路由

在这篇文章,你可以看到Javascript的客户端路由。我们将讨论服务端路由和客户端路由的不同,以及为什么要区分对待。这篇博客是作者的《写一个Javascript框架》系列的最后部分。

这个系列文章是关于一个叫NX的开源客户端框架。该系列里,Bertalan介绍了他写框架的时候,遇到的不得不克服的主要困难。

15 + 1. 我如何在RisingStack的Node.js训练营中生存

作为一名有前景的有才华的初级程序员,Robert Czinege这个夏天参加了RisingStack的训练营,但是他仍需要学习我们是如何为客户构建优秀的Node.js应用。

在他的文章里,谈到了RisingStack的node.js训练营,帮助他跟上队里的其他人。顺便说一下,这个训练营开放给每个学习Node.js的人,因为我们在GitHub上面开源了。所以完美一击冒牌者综合症并开始快速学习Node.js吧!

2017其他有意义的成就

在2017年1月,我们自豪地组织和赞助了Nodeconf Budapest,这个会议汇集了企业中最顶尖的头脑和中欧里最好的Node.js天才。这个会议是Node社区里耳目一新的事。

nodeconf

我们非常高兴的看到像Danny Grander这样的专家谈论有关书写安全代码的重要性或者Daniel Khan,他分享了作为web开发者在过去17年职业生涯中学到的内容,而这些只是其中的一部分。

另外一个对于RisingStack非常重要的事件是,在夏天快结束的时候,我们与Keymetrics合作并与他们的解决方案合并了Trace-我们的Node.js监控平台。

我们这个秋季也很忙碌,因为我们拉开我们欧洲Node.js之旅的序幕,包含了Node基础、微服务和安全。我们将在2018年春季将继续提供训练,React与Kubernetes也扩展了我们的训练内容。

正如你所见的,对于Risingstack里的我们,去年是很重要的一年。 在这新的一年,我们很兴奋,也有很多的计划和期待。同时感谢你们跟随我们的步伐以及阅读我们的博客。我们很高兴能拥有这么好的听众。 <3

请继续关注我们,在2018年里我们有更多精彩消息和教程!