
This video gives an overview of the entire course.
In this video, we will set up our environment for the course.
This video gives an overview of the entire lesson.
In this video, we will learn about the basics of Node.js.
This video gives us an overview of Node.js version 6 and ES2015.
In this video, we will learn about template literals and other features of ES2015.
In this section, we will analyze the reactor pattern, which is the heart of the asynchronous nature of Node.js.
In this topic we’ll go through the main concepts behind the pattern, such as the single-threaded architecture and the non-blocking I/O, and we will see how this creates the foundation for the entire Node.js platform.
This section summarizes what we have learned in the earlier topics.
This video gives an overview of the entire lesson.
In this video, we will learn about the callback pattern in Node.js.
This video gives us an overview of the module system and its patterns.
The observer pattern is one of the pillars of the platform and an absolute prerequisite for using many node-core and userland modules.In this video, we will look at the observer pattern in detail.
This section summarizes what we have learned in the earlier topics.
This video gives an overview of the entire lesson.
The flexibility of JavaScript objects is expressed primarily through the possibility of changing their structure even after their creation. Basically, while creating objects, you can start from a common structure defined by a constructor and then customize it to our needs. But how do you change the structure of all objects created using a constructor? In this video we’ll discuss these difficulties.
In this video, we’ll learn how to avoid callback hell and how to implement some of the most common control flow patterns using only simple and plain JavaScript.
In this video, we’ll look in detail at the async library.
This section summarizes what we have learned in the earlier topics.
This video gives an overview of the entire lesson.
In this video, we’ll learn in detail about promises.
In this video, we’ll learn about generators.
In this video, we’ll learn about async/await using Babel.
In this video, we’ll look at the differences between plain JavaScript, async (library), promises, generators and async/await.
This section summarizes what we have learned in the earlier topics.
This video gives an overview of the entire lesson.
This video will give an initial introduction to Node.js streams and their strengths.
In this video, we’ll explore streams in more detail.
Going through the examples that we have presented so far, it should be clear that streams can be useful not only to handle I/O, but also as an elegant programming pattern that can be used to process any kind of data. But the advantages do not end at the simple appearance; streams can also be leveraged to turn the asynchronous control flow into flow control, as we will see in this video.
In this video, we’ll learn to pipe patterns in Node.js by merging two different streams.
This section summarizes what we have learned in the earlier topics.
This video gives an overview of the entire lesson.
In this video, we’ll learn about the factory design pattern.
The revealing constructor pattern is a relatively new pattern that is gaining traction in the Node.js community and in JavaScript, especially because it's used within some core libraries such as Promise.In this video, we’ll explore it in more detail.
In this video, we’ll learn about the proxy design pattern.
In this video, we’ll learn about the decorator design pattern.
The Adapter pattern allows us to access the functionality of an object using a different interface. As the name suggests, it adapts an object so that it can be used by components expecting a different interface. In this video, we’ll learn adapter design pattern in more detail.
In this video, we’ll learn about the strategy design pattern.
In this video, we’ll learn about the state design pattern.
In this video, we’ll learn about the template design pattern.
In this video, we’ll learn about the middleware design pattern.
In this video, we’ll learn about the command design pattern.
This section summarizes what we have learned in the earlier topics.
This video gives an overview of the entire lesson.
In this video, we’ll learn about modules and dependencies.
In this video, we’ll learn about the main module wiring patterns.
In this video, we’ll learn about:
● Pros and Cons of Dependency Injections
● Service Locators, their pros and cons
● Dependency Injection containers, its pros and cons
In this video, we are going to plunge into this fascinating world and focus on a dualistic problem:
● Exposing the services of an application to a plugin
● Integrating a plugin into the flow of the parent application
This section summarizes what we have learned in the earlier topics.
This video gives an overview of the entire lesson.
In this video, we are going to explore the fundamental problems we may encounter when writing code for both Node.js and the browser, and we are going to propose some tools and patterns that can help us in tackling this new and exciting challenge.
In this video, we’ll be introduced to the concept of webpack.
In this video, we’ll explore some of the principles and the patterns to use when we have to face is sharing the common parts of a component while providing different implementations for details that are platform-specific.
This section summarizes what we have learned in the earlier topics.
Through Professional Node.js, you will be presented with various sets of patterns that you can use to efficiently solve your everyday development and design problems. You will understand what different traditional design patterns look like in Node.js, and how to design modules that focus on performing a single task at a time. You will gain an understanding of the basic building blocks and principles of writing large and well-organized Node.js applications. You will be able to apply these principles to problems that don't fall within the scope of existing patterns.
About the Authors
Mario Casciaro is a software engineer and entrepreneur, passionate about technology, science, and open source knowledge. Mario graduated with a master's degree in software engineering and started his professional career at IBM, where he worked for several years on different enterprise products, such as Tivoli Endpoint Manager, Cognos Insight, and SalesConnect. He then moved to D4H Technologies, a growing SaaS company, to lead the development of a new bleeding-edge product for managing emergency operations in real time. Currently, Mario is the cofounder and CEO of Sponsorama, a platform to help online projects raise funds through corporate sponsorship. Mario is also the author of the first edition of Node.js Design Patterns.
Luciano Mammino is a software engineer who was born in 1987, the same year that Nintendo released Super Mario Bros in Europe, which happens to be his favorite video game. He started coding at the age of 12 using his father's old Intel 386, with only the DOS operating system and the QBasic Interpreter. After studying for a master's degree in computer science, he developed his programming skills, mostly as a web developer, working mainly as a freelancer for companies and start-ups all over Italy. After a start-up parenthesis of 3 years as CTO and cofounder of Sbaam in Italy and in Ireland, he decided to relocate to Dublin to work as a senior PHP engineer at Smartbox. He loves developing open source libraries and working with frameworks such as Symfony and Express. He is convinced that JavaScript’s success is still at the very beginning and that it will have a huge impact on most web- and mobile-related technologies in the future. For this reason, he spends most of his free time improving his knowledge of JavaScript and playing with Node.js.
James Murphy is a software consultant and entrepreneur. His passions include technology, self-improvement, and psychology. He graduated from the computer science department of the University of Manchester. He's worked for a number of the UK's top tech companies, ranging from the Hut Group and Auto Trader to the BBC and Booking. Having previously been a lead engineer at Booking, James decided to delve further into entrepreneurship and contracting. His first experience with Node.js was working on the second generation of BBC Live, which was built entirely using Node.js and microservices on the AWS platform. He has a blog at devangst and is also a contributing author and member of the Simple Programmer community. He is the author of Node.js Design Patterns, Second Edition, by Packt.
Glenn Dayton has been a full stack developer for several years now with a strong passion for teaching spanning an even longer amount of time. He works at NASA JPL as a Backend Developer helping build tools that modernize the way spacecraft are tested.