- Node.js Design Patterns(Second Edition)
- Mario Casciaro Luciano Mammino
- 267字
- 2021-07-14 11:01:24
Chapter 2. Node.js Essential Patterns
Embracing the asynchronous nature of Node.js is not trivial at all, especially if coming from a language such as PHP where it is not usual to deal with asynchronous code.
In synchronous programming, we are used to the concept of imagining code as a series of consecutive computing steps defined to solve a specific problem. Every operation is blocking, which means that only when an operation is completed is it possible to execute the next one. This approach makes the code easy to understand and debug.
Instead, in asynchronous programming, some operations, such as reading a file or performing a network request, can be executed as an operation in the background. When an asynchronous operation is invoked, the next one is executed immediately, even if the previous operation has not finished yet. The operations pending in the background can complete at any time, and the whole application should be programmed to react in the proper way when an asynchronous call finishes.
While this non-blocking approach could almost always guarantee superior performance compared to an always-blocking scenario, it provides a paradigm that could be hard to reason about and that can get really cumbersome when dealing with more advanced applications that require complex control flows.
Node.js offers a series of tools and design patterns to deal optimally with asynchronous code. It's important to learn how to use them to gain confidence and write applications that are both performant and easy to understand and debug.
In this chapter, we will see two of the most important asynchronous patterns: callback and event emitter.
- 少年輕松趣編程:用Scratch創(chuàng)作自己的小游戲
- Django Design Patterns and Best Practices
- Amazon S3 Cookbook
- Android 應(yīng)用案例開發(fā)大全(第3版)
- 自制編程語言
- Deep Learning with R Cookbook
- 零基礎(chǔ)學(xué)Java第2版
- Python應(yīng)用開發(fā)技術(shù)
- JSP應(yīng)用與開發(fā)技術(shù)(第3版)
- Swift 2 Design Patterns
- 3D Printing Designs:Design an SD Card Holder
- Raspberry Pi By Example
- C語言解惑:指針、數(shù)組、函數(shù)和多文件編程
- OpenStack Networking Cookbook
- IBM Cognos TM1 Cookbook