English | 2013 | ISBN: 978-1782166320 | 347 Pages | PDF +code | 10 MB
Mastering Node.js will take the reader deep into this exciting development environment. Beginning with a comprehensive breakdown of its innovative non-blocking evented design, Node’s structure is explained in detail, laying out how its blazingly fast I/O performance simplifies the creation of fast servers, scalable architectures, and responsive web applications.
Mastering Node.js takes you through a concise yet thorough tour of Node’s innovative evented non-blocking design, showing you how to build professional applications with the help of detailed examples.
Learn how to integrate your applications with Facebook and Twitter, Amazon and Google, creating social apps and programs reaching thousands of collaborators on the cloud. See how the Express and Path frameworks make the creation of professional web applications painless. Set up one, two, or an entire server cluster with just a few lines of code, ready to scale as soon as you’re ready to launch. Move data seamlessly between databases and file systems, between clients, and across network protocols, using a beautifully designed, consistent, and predictable set of tools.
Mastering Node.js contains all of the examples and explanations you’ll need to build applications in a short amount of time and at a low cost, running on a scale and speed that would have been nearly impossible just a few years ago.
What you will learn from this book
- Use events to create non-blocking systems with high throughput
- Create secure servers across all major network protocols
- Manage thousands of concurrent clients without slowing down
- Handle data, files, and protocol streams with ease
- Leverage Node’s module system to design sane applications that are easy to extend
- Learn scaling techniques and parallelize operations across multiple cores
The primary argument for single-threading is that control flow is difficult in concurrent environments, and especially so when memory access or code execution order is unpredictable:
- Instead of concerning themselves with arbitrary locking and other collisions, developers can focus on constructing execution chains whose ordering is predictable.
- Because parallelization is accomplished through the use of multiple processes, each with an individual and distinct memory space, communication between processes remains uncomplicated—via the Rule of Simplicity we achieve not only simple and bug-free components, but easier interoperability as well.
- Becausestate is not (arbitrarily) shared between individual Node processes, a single process is automatically protected from surprise visits from other processes bent on memory reallocation or resource monopolization. Communication is through clear channels using basic protocols, all of which makes it very hard to write programs that make unpredictable changes across processes.
- Thread-safety is one less concern for developers to waste time worrying about. Because single-threaded concurrency obviates the collisions present in multithreaded concurrency, development can proceed more quickly, on surer ground.
REPL, as well as how to manage inputs and outputs to the process object. The goal of demonstrating how Node allows applications to be intelligently constructed out of well-formed pieces in a principled way has begun. In the next chapter, we will delve deeper into asynchronous programming, learn how to manage more complex event chains, and develop more powerful programs using Node’s model.