如何在2016年成为一个更好的Node.js开发者(2)

Promise.resolve(() => 'John') .then(() => { throw new Error('ops'); }) .catch((ex) => { console.log(ex); }) .then(() => { throw new Error('ups'); console.log(Doe'); })

在第3行会抛出一个异常。

catch会处理它,并且在stdout中打印出:[Error: ops]

执行继续,并且在第9行会抛出一个新的错误

没有了

的确没有什么了 - 最后一个被抛出的错误将会是静默的。你需要注意,你应该始终以一个catch语句作为promise链的最后一环。 这会为你解决很多头疼的问题。像下面这样:

Promise.resolve(() => 'John') .then(() => { throw new Error('ops'); }) .catch((ex) => { console.log(ex); }) .then(() => { throw new Error('ups'); console.log(Doe'); }) .catch((ex) => { console.log(ex); });

现在会输出如下内容:

[Error: ops] [Error: ops]

使用JavaScript标准风格

在过去几年中,我们会使用JSHint、JSCS、ESLint等非常有用的代码质量工具来尽可能的自动化检查我们的代码。

最近,当谈到代码风格的时候,我们使用ferossJavaScript标准风格

js standard code style

原因是它非常的简单:无需任何配置文���,只需要将其放到项目中。主要包括如下一些规则:

使用2个空格作为缩进

字符串使用单引号 - 除了为了避免转义

不要包括没有被使用的变量

没有分号

永远不要以 ( 或者 [ 作为一行的开始

关键字后加空格 if (condition) { ... }

函数名后加空格 function name (args) { ... }

始终使用===代替==,但是可以使用obj == null来检查null || undefined。

始终要处理Node.js的err函数参数

始终要为浏览器全局变量增加window前缀,除了document和navigator

尽可能避免使用类似于open、length、evet、name等走位浏览器全局变量。

当然,如果你的 编辑器只支持ESLint的话,这里有一个ESLint的规则库用于使用标准风格,即eslint-plugin-standard。 安装了这个插件后,你的.eslintrc文件可以是下面这样的:

{ "plugins": [ "standard" ], }

12-Factor应用(The Twelve-Factor Application)

如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软件即服务(SaaS)。 12-Factor应用宣言描述了进行Web应用开发的最佳实践:

基准代码:一份基准代码,多份部署

依赖:显示声明依赖

配置:在环境中存储配置

后端服务:把后端服务当作附加资源

构建、发布、运行:严格分离构建和运行

进程:以一个或多个无状态进程运行应用

端口绑定:通过端口绑定提供服务

并发:通过进程模型进行扩展

易处理:快速启动和优雅终止可最大化健壮性

开发环境与线上环境等价:尽可能的保持开发、预发布、线上环境相同

日志:把日志当作事件流

管理进程:后端管理任务当作一次性进程运行

这套理论适用于任意语言和后端服务(数据库、消息队列、缓存等)开发的应用程序。

开始新的项目

始终通过npm init命令来开始一个新项目。这可以为你的项目创建一个初始的package.json。

如果你想跳过初始的提问并直接使用默认的配置,只需要运行npm init --yes即可。

监控你的应用

当发生某个故障或是故障即将发生时,及时的通知你,能够为你挽回损失。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/442224489c11fb28ae299b4a7043afc7.html