Node.js 最佳实践 —— 如何在 2018 年成为更好的 Node.js 开发者

Node.js 最佳实践 —— 如何在 2018 年成为更好的 Node.js 开发者

在过去两年中,每一年写一篇关于来年如何成为更好的 Node.js 开发者的建议已经成了我本身的传统。今年也不例外!🤗php

若是你对我以前的新年建议感兴趣,你能够在 RisingStack 博客上阅读:前端

话很少说,一块儿来看 2018 年的建议!node

采用 async-await

随着 Node.js 8 的发布,async 函数已经广泛可用了。有了 async 函数的存在,你能够替换掉回调,写出读起来和同步代码同样的异步代码。android

但什么是 async 函数?让咱们回顾一下 Node.js Async 函数最佳实践 一文:ios

async 函数可让你写出读起来像是同步代码的,但实际基于 Promise 的代码。一旦你使用了 async 关键字来定义函数,你就能够在函数体内使用 await 关键字。async 函数被调用时,它会返回一个 Promise。当 async 函数体中返回一个值时,该 Promise 完成(fulfilled)。当 async 函数抛出错误时,该 Promise 失败(rejected)。git

await 关键字能够用来等待一个 Promise 完成而且返回结果值。若是传给 await 关键字的值不是一个 Promise,它会将其转换成一个已完成的 Promise程序员

若是你想掌握 async 函数,我推荐你浏览这些资源:es6

让你的应用优雅地停止

当你部署应用的新版本时,必须更换旧版本。你使用的,不论是 Heroku, Kubernetes, supervisor 仍是任何其它的进程管理器,会首先给应用发送一个 SIGTERM 信号,来通知它即将被停止。一旦应用获得了该信号,它应该中止接受新的请求,完成全部正在处理中的请求,而且清理它使用的资源。资源一般包含了数据库链接和文件锁。github

为了让这一过程更简单,咱们在 GoDaddy 上发布了名为 terminus 的开源模块,来帮助你的应用实现优雅停止。如今就来看看 ☺️web

在公司内采用相同的风格指南

在一个有上百人开发团队的公司中采用风格指南是颇有挑战性的 —— 让每一个人都承认同一套规则简直难如登天。

恕我直言:你永远没法让上百个开发者承认同一组准则,即便这能带来显而易见的收益,譬如让团队更快地在项目间切换,而无需费时费力来习惯一套新的(即便只有一点儿不一样)代码编写风格。

若是你正是工做在这种团队氛围中,我发现最好的办法是信任某位经验丰富的程序员,和其余人共同努力来决定风格指南包含哪些准则,但他要有最终决定权。在全部人都能遵循同一套准则以前,该准则的具体内容并不重要(我不想引起关于分号的争吵)。重要的是必须在某一刻有所决定。

把安全当作必备条件

咱们看到愈来愈多的公司被列在 haveibeenpwned 上 —— 我打赌你不想成为下一个。当你向你的用户发布一段新代码的时候,代码审核应该包含安全领域的专家。若是你公司内没有这样的人才,或者他们很是很是忙,一个很好的解决办法是和相似 Lift Security 这样的公司合做。

而你做为一名开发者,一样应该努力更新你的安全知识。为此,我推荐你阅读这些材料:

在见面会或会议上演讲

另外一个成为更好的开发者,甚至更好地学会表达本身的方法,就是在见面会或者会议上演讲。若是你从未试过,我推荐先从一个本地的见面会开始,再去尝试申请全国的或者国际的会议。

我明白当众演讲会很难。当我准备个人第一次演说时,Speaking.io 帮了我很多忙,我也推荐你去看看。若是你正在准备你的第一次演说,而且想要一些反馈的话,你能够在 Twitter 上找我谈谈,我很乐意帮忙!

一旦你有了一个想要在会议上分享的主题,你能够在 Github 上查看到 2018 Web 会议 征文集合,这太棒了!

直接使用新的浏览器 API 编写模块

九月时 MikealModern Modules 上发布了一篇很好的文章。其中我最喜欢的一件事,就是使用浏览器 API 来编写模块,当必要时填补(polyfill)Node.js。由此而来的显著优点就是你能够将更小的 JavaScript 代码发布进浏览器中(而且让页面加载得更快)。另外一方面,没人会在乎你的后端依赖是否是太过繁重。

采纳应用开发的 12-Factors 法则

应用开发的 12-Factors 原则,描述了网络应用应当如何编写的最佳实践,所以它也出如今今年个人建议列表中了。

随着 Kubernetes 和其它编排引擎的使用率不断提高,遵循 12-Factors 法则变得愈来愈重要。它们涵盖了如下领域:

  1. 一份基准代码,多份部署
  2. 显示声明和分离依赖关系
  3. 在环境中存储配置
  4. 把后端服务当作附加资源
  5. 严格分离构建和运行
  6. 以一个或多个无状态进程运行应用
  7. 经过端口绑定提供服务
  8. 经过进程模型进行扩展
  9. 快速启动和优雅停止可最大化健壮性
  10. 尽量地保持开发、预发布、线上环境相同
  11. 把日志当作事件流
  12. 后台管理任务当作一次性进程运行

学习新的 ECMASCript 特性

一些新的 ECMAScript 特性能够显著提高你的效率。它们能够帮你写出不言自明的清晰代码。其中我最爱的特性有(老实说它们不是很是新了):

若是你想知道新的 ECMAScript 特性的完整内容,我推荐阅读这本书 ES6 & Beyond


你想在这份列表中加入别的建议吗?请在留言中告诉我。


掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 AndroidiOS前端后端区块链产品设计人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划官方微博知乎专栏

相关文章
相关标签/搜索