本文由 HxScript 在众成翻译平台翻译.
我们开门见山:2017,是 Node.js 社区的丰收年.
在 2017 年,Node.js 逐渐走向成熟,并在企业中得到了广泛的认可和应用.同时,node.js 自身也添加了许多优秀的新特性,如 async/await,以及 http2 ......
世界在 node 上运行.
- Franziska Hinkelmann (@fhinkel) October 4, 2017 (译者注:软件工程博士,谷歌 v8 引擎开发团队工程师,Node.js 技术指导委员会成员.)
node.js 的开发者们,不仅为 node 的枝繁叶茂做出了贡献,同时也创作了一系列关于 node 的优秀的学习资料.
在我们社区的最后一片文章中,我们收集了许多由 node 社区写的长文,我们从 Reddit, Hacker News, Twitter & Medium 等网站上获取数据,搜索最高点击,最多分享,最多喜欢的文章.我们故意避开了 RisingStack(一个 node 服务公司)的文章,如果你对这些文章感兴趣, 清单!回顾 2017 年 node 技术文章的 TOP15!
我很确信,这些都是相当鹅妹嘤的文章.但如果你关心的内容没有在这个 top15 中出现,请给我们留言.
同时,你也应该明白,这份清单并非传统意义上的 "最佳" 清单,它仅仅是一个集合,展示了 node 社区在 2017 年的发展有多鹅妹嘤!我认为,对于那些坚持不懈地推广 node,分享 node 知识的开发者来说,这篇文章见证了我们共同的努力,并以此文,作别 2017 年.
好了,别废话了,回到主题,我会依次阐述 node 在 2017 年的发展:
1. 我们有了无比实用的 Node 实践项目清单
如果你想快速学习 node 的知识,你可以考虑下 Node 社区.这些清单都创建于 2017 年,并且包含了许多最佳实践和捷径,你可以通过它们来检验自己的 Node 技能水平.
node.js 最佳实践 本 GitHub 项目,均取自从 node 排行的榜首项目,并会持续更新.
棒极了的 Node.js 是一个内容涵盖范围广,质量高的 node 模块和相关资源的清单.
最新 JS 备忘录 包含了构建最新 web 项目的知识.
以上项目,均在 GitHub 聚集了超过 300 位贡献者,并获得了约 50k 的 stars!
另外,我推荐以下两篇来自 Yoni Goldberg 和 Azat Mardan 的文章,它们能帮助你成为一个更好的开发者:
Node.js 生产最佳实践
10 个 Node.js 最佳实践 : 来自 Node 专家的启发
2. 通过实例深刻理解 node.js
谈及 2017 年 node 实践的最优秀的文章,就一定要提的一篇是,作为一名五年的 node.js 开发者,Scott Nonnenberg 在 2017 年 4 月写的一篇关于用 node.js 的经验总结. 作为 5 年的 node 开发者,谈谈我的经验. 这篇文章讨论了一些基本概念,项目建构问题,测试,node 的生态圈,以及你为什么不应该用 New Relic(译者注:一个性能检测工具) .
"我曾分享过一些学习 node 的小故事,但这篇文章将主要关注于我学习过程中走过的那些弯路.如遇到的 bug,面对的挑战,邂逅的惊喜.并且我希望,你从这篇文章中学到的东西你可以应用到你自己的项目中去." -- Scott
..
此外,你知道吗,node.js 也应用到 NASA(译者注:美国宇航局)的项目中,以保障宇航员的安全.这事儿实在是太酷了!
NASA 选用 node.js,有以下原因:
使用 JavaScript 编写数据传输的程序相对容易,同时一种编程语言可以完成整套程序,这使得开发省钱省时.
Node 的非阻塞型 IO 及事件环机制,使之成为了云数据库系统完美解决方案,它可以从数名立即发起数据请求的用户那儿收到请求.
作为 Node.js 的包管理器,npm 与 Docker 匹配地出乎意料地优秀,可以创建一个微服务架构.** 能使每一个 API,函数和应用程序都平稳,独立地运行.
想了解更多,可以阅读全文 NASA 关于 Node.js 的实践 .
同时,我向 node 基金会建议,定期去整理和宣传这些优秀用例. 白皮书:Node.js 的有趣用例
3. 2017 年,Node.js 在安全领域和身份验证上也有了成就
当你打算构建一个 Node.js 应用(或任何程序)安全性常是至关重要的.这就是为什么 micaksica 写的 " 你的 Node.js 身份验证教程(也许)是错的 " 在 HackerNoon 网站上获得了巨大关注的原因.
简而言之,作者在试图寻找一个关于 Node.js 或者 Express.js 的身份认证教程.但他发现网上的这些文章都是不完善的,或者在某方面会造成安全问题,从而影响那些新的学习者.而这篇文章,作者则讲述了一些常见的身份认证的陷阱,以及如何避免它们,和在教程无法给你提供帮助时,你要怎么做.
如果你打算只阅读一篇与 web 安全相关的文章,这篇文章绝对是最好的选择之一!
..
此外,我推荐 github 上的这个仓库: 啊,脆弱的 Node.js 应用!
这个仓库通过几个 demo,旨在展示 OWASP(开放式 Web 应用程序安全项目)提出的十大漏洞,并指导你如何修复或者避免这些漏洞.
..
还有一些文章也在 2017 年获得了好评,如 Adnan Rahic 的: 使用 JSON Web Token 来保护 Node.js RESTful API 和 David Walsh 的 Node.js 的双重因素身份认证 .
4. 使用 Node.js 进行 api 的开发,正变得更加简单
Node.js 的一个主要优点是,可以用一种非常有效的方式来构建 REST API. 关于这个话题有很多文章,但这些绝对是最受欢迎的文章:
运用 Node.js 设计 RESTful API 通过一个相当简单易懂的方式,让初学者了解 REST API 设计的全过程.
仅需 30 分钟,带你构建一个 Node.js API 这篇文章也很优秀,同时它用的是 es6 的语法.
编写 Node.js REST API 的 10 个最佳实践 (这篇文章是我们写的,也就是 medium.com) 这篇文章更深入了一步,包括路由命名,身份验证,黑盒测试,以及对资源进行缓存等主题.
5. 我们一直在关心 Node/JS 的底层
幸运的是,当你想深入了解更底层的东西的时候,Node/JS 社区也许能提供给你你想要的!以下这些文章都很不错:
理解 Node.js 的事件驱动架构
关于 Node.js 的事件环,这些你必须知道
这些关于 Node.js 的 stream 模块的事,你必须知道
JavaScript 是怎么在 V8 引擎里工作的? & 五个编写优质代码的技巧
ECMAScript 2017(ES8)发布!这儿是它的的主要新功能
六个 Async/Await 取代 Promises 的原因(教程) →neal1991 国语翻译版本
在你看来,讲解 NS/Node 底层的文章哪篇最优秀呢?欢迎在评论中分享!
6. 在 2017 年,那些让人惊喜的 Node.js 工具
在这一年中,最流行的两个工具是 Prettier 和 Fastify !
如果你还不了解他们,我可以简单介绍一下:prettier 是一个 js 格式化工具,通过编译代码至 AST 语法树,再在 AST 语法树中输出漂亮的格式化后的代码.
无论此前代码是谁写的,谁维护的,经过 prettier 处理,所有的代码都一样好看.通常,程序员会花大量时间在调节代码格式以及争论那种样式更优秀,而这个工具解决了这个问题.
Fastify 是由由 Node.js 核心技术委员会成员 Matteo Collina 在 2017 年温哥华的 Node Interactive 会议上发布的.
Fastify 是一个全新的 web 服务器框架,它的出现受到了 Hapi, Restify 和 Express 的启发.Fastify 是作为一个通用的 Web 框架构建的,但是当构建使用 JSON 作为数据格式的 HTTP API 时,它的速度上的优势,将显得非常明显.
... 当然,这里我们就先提这么多吧.
7. 这里提供了一些鹅妹嘤的免费的课程
如果你想开始学习 Node,你可以考虑我们社区提供的免费,高质量的学习资源,以加快你的学习速度!
Adnan Rahić是一位优秀的作者,他发布了许多不同主题的中等难度的课程,这些课程让他收获了极大的赞誉.以下就是部分课程:
Node.js 测试的速成课
Node.js 的 Serverless 架构速成课
我们希望 Adnan 能继续完成这个系列课程的创作,并在 Node 的其他领域也能创建更多的课程!
8. 在 2017 年,关于 Node 的一些其他主题
关于这个 "其他主题" 我们想表达些什么? 以下的这些主题,超越了 Node.js 的 "传统" 案例,这些主题的作者,将试图用 Node 描绘一些有趣东西.
例如这两篇,都运用了 OpenCV 库, 运用 Node.js + OpenCV 进行人脸识别 和 运用 Node.js + OpenCV 进行物体识别 .
聊天机器人也是个热议话题,这儿同样有一篇博文,来讲解如何用不同的语言:如 Node.js,来构建它.
运用 Web Speech API 和 Node.js 构建一个聊天机器人 . (→极光日报翻译版本) 这是最受好评的文章之一,在这篇博文里,Tomomi Imura 构建了一个可以通过语音控制的聊天机器人.
此外,我们还推荐这篇文章 使用微软的 Bot Framework, LUIS 和 开发一个聊天机器人 .
你还见过什么有趣的项目?在评论里提出来吧!
9. Node 社区有很多大型会议,如 Node Interactive!
对于 Node 社区来讲,2017 年的温哥华 Node Interactive 是一个重大事件.为参会者提供了许多与同行开发人员见面的机会,并让他们了解到了他们最感兴趣的话题.
幸运的是, 会议的演讲可以在 youtube 上看到 , 所以,即使你不能亲自到现场,你一样可以浏览会议的全过程 (就像我们一样).
到目前为止,10 个最高点击的片段:
Chris Bailey: Node.js 性能和高度可扩展的微服务.
郭阳: JavaScript 的开发者工具的新特性
Franzi Hinkelmann: V8 引擎和 Node.js
Peter Marshall: V8 引擎中的高性能 JavaScript
Bryan Hughes: Node.js 中的事件循环:并非单线程
Mark Hinkle: 迎接 Node.js 的版本更新
Matteo Collina: 让你的 HTTP 服务器速度更快
Athan Reines: WebAssembly 和 Web 的未来
Amir Yasin: 运用 JavaScript 和 Rust 构建的高性能应用程序
Bowden Kelly: TypeScript - 一个 JavaScript 的爱情故事
当然,以上这个列表只是冰山一角.因为在 Node Foundations 的 YouTube 频道上有 54 个视频,其中大部分都很有趣并且很有见地.
10. Node.js 终于比 Java 更受欢迎!
尽管在最近一次的一次 采访 中,Ryan Dahl 曾说...
对于某类特定的应用来说,如果你正在构建服务器,我无法想象你会使用 Go 以外的任何其他语言.
.. 我们仍然没有理由怀疑 Node.js 的成功!
NodeConf 的核心组织者及社区管理者之一,Mikeal Rogers 在 17 年夏天接受 NewStack 的采访 中,谈到 Node.js 在一年内将超过 Java.
我们现在估计约有 800 万的用户,并且这个数目仍在以 100% 的速度增长.在用户数的方面,我们还没有超过 Java,但以现在的速度来看,我们最终会超过 Java.- Mikeal.
Mikeal 的观点并非空穴来风.这有坚实的数据支撑,来说明 Node 比 Java 更受欢迎.
根据 builtinnode 收集的数据,到 2017 年夏,Hacker News 的 "谁在招聘" 板块中,对 Node.js 的开发人员需求已经超过了 Java!
由于 Node 已经被全球最伟大的公司所接纳并推广,毫无疑问,Node 将会是未来多年的领先技术!
我们希望 Node 社区也能在 2018 年继续蓬勃发展,并制作出大量的优秀工具和教程.
在 RisingStack,我们也会继续在 2018 年推广 Node 并提供教程,当然, 如果您对我们 2017 年提供的最佳内容感兴趣, 可以点击看一看 .
来源: https://sdk.cn/news/8044