iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >如何成为一个更好的Node.js开发者
  • 169
分享到

如何成为一个更好的Node.js开发者

2024-04-02 19:04:59 169人浏览 安东尼
摘要

这篇文章给大家介绍如何成为一个更好的node.js开发者,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。小编主要讨论一些进行node.js开发的实践和建议,这些建议不仅仅适合开发者, 还

这篇文章给大家介绍如何成为一个更好的node.js开发者,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

小编主要讨论一些进行node.js开发的实践和建议,这些建议不仅仅适合开发者, 还适合那些管理与维护Node.js基础架构的工作人员。遵循本文提供的这些建议, 能够让你更好的进行日常的开发工作。

回调约定, 同时支持Promise

在去年,我们可能会推荐你为你的模块暴露错误优先的回调接口。但是随着生成器函数的正式标准化,并且异步函数也即将到来, 因此我们现在建议你在编写模块的接口时应该暴露支持Promise的的错误优先的回调函数。

为什么需要这样?首先回调接口是为了提供向后兼容性,为了能够在未来能够获得更好的兼容性,需要同时提供Promise支持。

你可以参考下面的例子来进一步的理解具体应该如何进行编程。在这个例子中readPackage函数读取了package.JSON文件, 并同时通过Promise和回调接口返回了它的内容。

const fs = require('fs');  function readPackage (callback) {   // as of now we do not have default values in Node.js   callback = callback || function () {}   return new Promise((resolve, reject) => {     fs.readFile('./package.json', (err, data) => {       if (err) {         reject(err);         return callback(err);       }       resolve(data);       return callback(null, data);     })   })  }  module.exports.readPackage = readPackage;

异步模式

在Node.js中,很长一段时间你只有两种方法来管理异步流:回调或者流(Stream)。对于回调函数而言, 你可以使用类似于async这类库, 对于流而言,有through、bl、highland等库可以选择。

但是随着Promise、生成器、异步函数等被逐渐引入进标准的ECMAScript,JS中的流程控制也得到了极大的改善。

错误处理

错误处理在应用开发过程中起着至关重要的作用:确定应用崩溃的时间,或者仅仅是打印错误信息,确保应用继续运行都是有一定难度的。

为了能够更简单的说明这个问题,我们决定将其分为两种:程序员错误(programmer errors)和运算错误(operational errors)。

程序员错误就是我们所说的bug,由于你不知道程序运行的确切状态因此当出现错误时你***立刻停止应用的运行(crash the process)。

另一方面,运算错误是由于系统或者远程服务本身所导致的问题。例如:请求超时和内存不足等。基于错误发生的特点,你可以对症下药, 然后重试,例如文件丢失,你可以去创建相应的文件。

在回调中进行错误处理

如果一个错误发生在异步操作的过程中,错误对象应该作为异步函数的第一个参数进行传递。你必须始终要检查该错误对象并进行错误处理。

在前面的有关回调约定的例子里面已经展示了如何在回调函数中进行错误的优先处理。

在Promise中进行错误处理

如果是下面的代码片段会发生什么情况?

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

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

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

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

  3. 没有了

的确没有什么了 ; 第一个被抛出的错误将会是静默的。你需要注意,你应该始终以一个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等非常有用的代码质量工具来尽可能的自动化检查我们的代码。

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

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

  • 使用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应用开发的***实践:

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

  2. 依赖:显示声明依赖

  3. 配置:在环境中存储配置

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

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

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

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

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

  9. 易处理:快速启动和优雅终止可***化健壮性

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

  11. 日志:把日志当作事件流

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

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

开始新的项目

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

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

监控你的应用

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

为了进行应用的监控,你可以使用类似的SaaS产品或是开源软件。在开源软件方面,主要包括:Zabbix, Collected, elasticsearch和Logstash。

如果你不想要自己进行部署,可以考虑使用线上的服务,你可以尝试使用Trace, 它是我们公司开发的Node.js和微服务监控解决方法。

如何成为一个更好的Node.js开发者

语义版本控制是一种为了兼容性空啊率的使用三段式版本号的正式约定,即:major.minor.patch,分别为主版本,次版本,补丁。

如果是一个不会向后兼容(backward-compatible)的api变化使用主版本号。当添加新的特性且API变化是向后兼容的时候使用次版本号。 如果只是对Bug进行修复可以使用包版本号。

幸运的是,你可以使用semantic-release这个模块自动化你的JavaScript的模块发布。

关于如何成为一个更好的Node.js开发者就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 如何成为一个更好的Node.js开发者

本文链接: https://www.lsjlt.com/news/86162.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何成为一个更好的Node.js开发者
    这篇文章给大家介绍如何成为一个更好的Node.js开发者,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。小编主要讨论一些进行Node.js开发的实践和建议,这些建议不仅仅适合开发者, 还...
    99+
    2022-10-19
  • 分享7个成为更好的Vue开发者的技巧
    目录1、脚本设置2、如何覆盖反应对象3、反应式 CSS4、全局组件5、组合 API 优于选项 API6、使用 v-once 或 v-memo 提高性能7、组件的异步加载1、脚本设置 ...
    99+
    2022-11-13
  • 如何成为优秀的开发者
    本篇内容主要讲解“如何成为优秀的开发者”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何成为优秀的开发者”吧! 1.三法则三法则是一个代码重构的经验法...
    99+
    2022-10-19
  • Java 开发技术如何帮助您成为一名优秀的开发者?
    作为一名 Java 开发者,掌握 Java 开发技术是至关重要的。Java 是一种广泛使用的编程语言,它具有高度的灵活性和可扩展性,且应用广泛。Java 开发技术不仅能够为您带来更好的职业发展,同时也能够帮助您成为一名优秀的开发者。本文将...
    99+
    2023-09-11
    开发技术 numpy npm
  • Git如何为Java开发者提供更好的团队合作体验?
    随着互联网技术的不断发展,软件开发的需求也越来越多样化。而Java作为一种优秀的编程语言,已经成为了众多开发者的首选。而在软件开发过程中,团队合作是非常重要的环节。那么,如何利用Git来为Java开发者提供更好的团队合作体验呢? 一、Gi...
    99+
    2023-08-05
    git 开发技术 关键字
  • ASP、Bash、教程和Shell:如何成为一名专业开发者?
    对于想要成为一名专业开发者的人来说,ASP、Bash、教程和Shell都是必不可少的技能。这些技能可以帮助你更好地编写和管理代码。本文将介绍如何学习这些技能,并且演示一些示例代码。 ASP ASP是一种微软公司开发的服务器端脚本语言。它可...
    99+
    2023-07-19
    bash 教程 shell
  • 成为一名优秀的前端开发者需要多久?
    成为一名优秀、专业的前端开发者需要多久?随着互联网的快速发展,Web前端开发行业也逐渐变得热门起来,成为了IT行业中备受瞩目的职业。Web前端开发者负责开发网页、应用程序等前端页面,他们的主要任务是负责网页的设计与实现,同时,也要负责网站的...
    99+
    2023-05-14
  • Java教程和Django索引:如何成为一名优秀的Web开发者?
    Web开发是一项非常有前途和吸引力的职业。如果你想成为一名优秀的Web开发者,那么你需要掌握一些关键技能和工具。在本文中,我们将介绍Java和Django两个主要的Web开发框架,并演示一些相关的代码示例,帮助你了解如何使用它们来构建高质...
    99+
    2023-07-22
    教程 django 索引
  • 如何通过学习GO语言和Laravel来成为一名成功的Web开发者?
    随着互联网的发展,Web开发已经成为了一个非常重要的领域。为了成为一名成功的Web开发者,学习多种编程语言和框架是必不可少的。在本文中,我们将介绍如何通过学习GO语言和Laravel来成为一名成功的Web开发者。 一、GO语言 GO语言是一...
    99+
    2023-10-23
    学习笔记 面试 laravel
  • 从算法到ASP、Unix和Git:如何成为一名全栈开发者?
    随着互联网的快速发展,全栈开发者的需求越来越大。全栈开发者是指掌握前端、后端、数据库等多个领域技能的开发人员。他们能够独立完成一个完整的Web应用程序,并且能够在应用程序的开发、维护和部署中发挥重要作用。成为一名全栈开发者需要学习和掌握多...
    99+
    2023-11-08
    unix git 编程算法
  • GO语言教程:如何从零开始学习,成为一名优秀的开发者?
    Go语言是一种开源的编程语言,由谷歌公司开发。它结合了C++和Python的优点,具有高效、安全、简单等特点,因此备受开发者青睐。如果你想成为一名优秀的开发者,那么学习GO语言是一个不错的选择。 本文将从零开始介绍GO语言的基础知识,帮助...
    99+
    2023-06-28
    学习笔记 教程 开发技术
  • Git API是如何帮助PHP开发者更好地协作的?
    在现代软件开发中,版本控制是必不可少的一环。Git已经成为了最流行的版本控制系统之一,并且被广泛地应用于各种编程语言的开发中。作为一名PHP开发者,使用Git API可以帮助我们更好地协作,提高开发效率。本文将介绍如何使用Git API来...
    99+
    2023-08-14
    开发技术 git api
  • Java和Laravel教程:如何成为一个专业的开发人员?
    随着技术的不断发展,软件开发已经成为了一项非常重要的工作。作为一个开发人员,了解不同的编程语言和框架是非常必要的。在本文中,我们将介绍Java和Laravel这两个流行的编程语言和框架,以及如何成为一个专业的开发人员。 Java是一种广泛...
    99+
    2023-11-07
    laravel 教程 框架
  • Spring Shell如何帮助开发者更好地管理GO容器?
    Spring Shell是Spring框架中的一款强大的命令行交互工具,它可以帮助开发者更好地管理GO容器。在本篇文章中,我们将深入了解Spring Shell并探讨它如何帮助开发者更好地管理GO容器。 一、Spring Shell简介 S...
    99+
    2023-11-03
    容器 spring shell
  • Git如何帮助Java开发者更好地管理代码库?
    Git是一款强大的分布式版本控制系统,它可以帮助Java开发者更好地管理代码库。它提供了很多功能和优势,让Java开发者能够更加高效地进行代码开发和管理。本文将详细介绍Git如何帮助Java开发者更好地管理代码库,并且穿插一些演示代码,以帮...
    99+
    2023-08-05
    git 开发技术 关键字
  • Git API如何帮助PHP开发者更好地管理代码?
    Git是一个强大的版本控制系统,它可以帮助PHP开发者更好地管理代码。Git API是一个程序接口,它可以让开发者在自己的应用程序中使用Git功能。在本文中,我们将讨论如何使用Git API来管理PHP代码。 一、Git API简介 Gi...
    99+
    2023-08-14
    开发技术 git api
  • Shell 重定向 vs GO 学习笔记:哪个能让你更快地成为高效开发者?
    在计算机编程领域,Shell 重定向和 GO 语言都是非常流行的工具。虽然它们在某些方面有一些相似之处,但它们的主要目的和用法是非常不同的。在本文中,我们将探讨这两种工具的优缺点,以及哪种工具能够更快地让你成为高效的开发者。 Shell ...
    99+
    2023-06-28
    学习笔记 shell 重定向
  • 如何写一个更好的Javascript DOM库
    如何写一个更好的Javascript DOM库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。目前,jQuery是事实上的操作文档对象模型(DO...
    99+
    2022-10-19
  • ASP、Shell、API、Apache:你需要掌握它们来成为一名成功的Web开发者吗?
    Web开发已经成为了现代计算机科学领域中的一个热门话题。它涉及到许多技术,其中包括ASP、Shell、API和Apache等。但是,这些技术是否真的必不可少?本文将探讨这个问题并为您提供一些演示代码。 ASP ASP全称为Active S...
    99+
    2023-09-14
    shell api apache
  • ASP API响应开发技术:如何与其他开发者协作并实现更好的结果?
    ASP (Active Server Pages) 是一种基于服务器端的脚本技术,它可以生成动态的 Web 页面。ASP API 是一种用来构建 Web API 的技术,可以使我们轻松地创建出响应请求的 API。 在开发 ASP API ...
    99+
    2023-06-26
    api 响应 开发技术
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作