

Node.js 最佳实践 —— 如何在 2018 年成为更好的 Node.js 开发者
source link: https://juejin.im/post/5a52242e6fb9a01c914037f3
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Node.js 最佳实践 —— 如何在 2018 年成为更好的 Node.js 开发者
在过去两年中,每年写一篇关于来年如何成为更好的 Node.js 开发者的建议已经成了我自己的传统。今年也不例外!🤗
如果你对我之前的新年建议感兴趣,你可以在 RisingStack 博客上阅读:
话不多说,一起来看 2018 年的建议!
采用 async-await
随着 Node.js 8 的发布,async
函数已经普遍可用了。有了 async
函数的存在,你可以替换掉回调,写出读起来和同步代码一样的异步代码。
但什么是 async
函数?让我们回顾一下 Node.js Async 函数最佳实践 一文:
async
函数可以让你写出读起来像是同步代码的,但实际基于 Promise
的代码。一旦你使用了 async
关键字来定义函数,你就可以在函数体内使用 await
关键字。async
函数被调用时,它会返回一个 Promise
。当 async
函数体中返回一个值时,该 Promise
完成(fulfilled)。当 async
函数抛出错误时,该 Promise
失败(rejected)。
await
关键字可以用来等待一个 Promise
完成并且返回结果值。如果传给 await
关键字的值不是一个 Promise
,它会将其转换成一个已完成的 Promise
。
如果你想掌握 async
函数,我推荐你浏览这些资源:
让你的应用优雅地中止
当你部署应用的新版本时,必须更换旧版本。你使用的,不管是 Heroku, Kubernetes, supervisor 还是任何其它的进程管理器,会首先给应用发送一个 SIGTERM
信号,来通知它即将被中止。一旦应用得到了该信号,它应该停止接受新的请求,完成所有正在处理中的请求,并且清理它使用的资源。资源通常包含了数据库连接和文件锁。
为了让这一过程更简单,我们在 GoDaddy 上发布了名为 terminus 的开源模块,来帮助你的应用实现优雅中止。现在就来看看 ☺️
在公司内采用相同的风格指南
在一个有上百人开发团队的公司中采用风格指南是很有挑战性的 —— 让每个人都认可同一套规则简直难如登天。
恕我直言:你永远无法让上百个开发者认可同一组准则,即使这能带来显而易见的收益,譬如让团队更快地在项目间切换,而无需费时费力来习惯一套新的(即使只有一点儿不同)代码编写风格。
如果你正是工作在这种团队氛围中,我发现最好的办法是信任某位经验丰富的程序员,和其他人共同努力来决定风格指南包含哪些准则,但他要有最终决定权。在所有人都能遵循同一套准则之前,该准则的具体内容并不重要(我不想引发关于分号的争吵)。重要的是必须在某一刻有所决定。
把安全当做必备条件
我们看到越来越多的公司被列在 haveibeenpwned 上 —— 我打赌你不想成为下一个。当你向你的用户发布一段新代码的时候,代码审核应该包含安全领域的专家。如果你公司内没有这样的人才,或者他们非常非常忙,一个很好的解决办法是和类似 Lift Security 这样的公司合作。
而你作为一名开发者,同样应该努力更新你的安全知识。为此,我推荐你阅读这些材料:
在见面会或会议上演讲
另一个成为更好的开发者,甚至更好地学会表达自己的方法,就是在见面会或者会议上演讲。如果你从未试过,我推荐先从一个本地的见面会开始,再去尝试申请全国的或者国际的会议。
我明白当众演讲会很难。当我准备我的第一次演说时,Speaking.io 帮了我不少忙,我也推荐你去看看。如果你正在准备你的第一次演说,并且想要一些反馈的话,你可以在 Twitter 上找我谈谈,我很乐意帮忙!
一旦你有了一个想要在会议上分享的主题,你可以在 Github 上查看到 2018 Web 会议 征文集合,这太棒了!
直接使用新的浏览器 API 编写模块
九月时 Mikeal 在 Modern Modules 上发布了一篇很好的文章。其中我最喜欢的一件事,就是使用浏览器 API 来编写模块,当必要时填补(polyfill)Node.js。由此而来的显著优势就是你可以将更小的 JavaScript 代码发布进浏览器中(并且让页面加载得更快)。另一方面,没人会在意你的后端依赖是不是太过繁重。
采纳应用开发的 12-Factors 法则
应用开发的 12-Factors 原则,描述了网络应用应当如何编写的最佳实践,因此它也出现在今年我的建议列表中了。
随着 Kubernetes 和其它编排引擎的使用率不断提升,遵循 12-Factors 法则变得越来越重要。它们涵盖了以下领域:
学习新的 ECMASCript 特性
一些新的 ECMAScript 特性可以显著提升你的效率。它们可以帮你写出不言自明的清晰代码。其中我最爱的特性有(老实说它们不是非常新了):
如果你想知道新的 ECMAScript 特性的完整内容,我推荐阅读这本书 ES6 & Beyond。
你想在这份列表中加入别的建议吗?请在留言中告诉我。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。
Recommend
-
149
中国开发者的 Vue 成为 WordPress 弃用 React 后的最佳选择 分享本文: ...
-
142
404 — Page not found
-
56
社区文档是 Python 开发相关中文知识文档,覆盖话题包括 Python Web 开发、系统工具、爬虫、人工智能、数据挖掘等现代化 Python 开发知识和开发技巧。
-
41
你是否已经用Swift开发了几个月,现在,你想成为一个更好的Swift开发者?少年,你来对了地方,我这里有一本失传多年的武林秘籍传授于你。 不要在意代码的格式,我想尽我所能保持代码的简洁。以至于可以是你方便的拷贝到playground...
-
10
英文:lirantal 译文:自然醒 https://github.com/lirantal/nodejs-cli-apps-best-practices/blob/3afe1ab0a5b506ef8c32903c4bf253a4cdb4bddd/README.md 为什么写这篇文章? 一个糟糕的 CLI 工具会让用户觉...
-
7
Serverless 最佳实践:如何在两周内开发出用户量过亿的微信小程序?腾讯科技(深圳)有限公司 产品经理一切好的产品都是从一个绝妙的创意开始!本文将从开发背景、技...
-
9
更好地连接远程工作者的9个VDI存储最佳实践 责任编辑:cres 作者:Robert Sheldon | 2021-07-30 13:40:16 原创文章 企业网D1Net 人们需要了解如何规划和部署虚拟桌面基础设施 (VDI)的存储设备,以...
-
10
Production best practices: performance and reliability本文讨论部署到生产的 Express 应用...
-
8
我使用 vue 已经很多年了,特别是去年一直在使用 Vue3,因此,学到了很多东西。1、脚本设置如果以前使用过组合 api,我...
-
4
JavaScript 功能强大且灵活,它允许您以任何您喜欢的方式编写代码,并尝试一些非常不寻常的事情,这些事情可能会导致代码中的错误。以下是我学到的关于 JavaScript 编码的 50 件事,你应该知道...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK