Professional Node.js
Course Description Overview
In this course, you will be presented with various sets of patterns that are ready to 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 given point in 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.
Node.js is considered a game changer. It is the biggest shift of the decade in web development. Node.js applications are written in JavaScript, which enables scenarios such as single-language application stacks and the sharing of code between the server and the client.
The goal of this course is to guide you through the emerging world of patterns, techniques, and practices, helping you to understand proven solutions to common problems.
Throughout the course, you will be presented with several libraries and technologies. They will be used to demonstrate a pattern or technique, and will also give you great exposure to the Node.js ecosystem and its set of solutions.
- Operating system: Windows Server 2008 R2 SP1 (and above) or Windows 7 SP1 (and above)
- A working installation of Node.js version 6 (or greater): https://nodejs.org/en/
- npm 3 (or greater): http://blog.teamtreehouse.com/install-node-js-npm-windows
- Google Chrome: https://www.google.co.in/chrome/index.html
- Notepad++: https://notepad-plus-plus.org/download/v7.5.6.html
- A transpiler, such as Babel: https://babeljs.io/repl/
Installation and Setup
Before you start with this course, we'll install Node.js and Google Chrome. Here, you will find the steps to install these.
Installing Node.js
- Visit https://nodejs.org/en/ in your browser.
- Click on 9.7.1 Current to download the setup.
- Follow the steps in the installer and that's it—your Node.js is ready!
Installing Google Chrome
Download and install the latest Chrome version at https://www.google.com/chrome/browser/desktop/ .
This course will require a computer system for the instructor and one for each student. The minimum hardware requirements are as follows:
- Processor: Pentium 4 (or equivalent)
- 2GB RAM
- Hard disk space: 10GB
- A projecting device (for the instructor only)
- An internet connection
- A keyboard, mouse, or other pointing device
Lesson 1: Welcome to the Node.js Platform
- The Node.js Philosophy
- Introduction to Node.js 6 and ES2015
- The Reactor Pattern
Lesson 2: Node.js Essential Patterns
- The Callback Pattern
- The Module System and its Patterns
- The Observer Pattern
Lesson 3: Asynchronous Control Flow Patterns with Callbacks
- The Difficulties of Asynchronous Programming
- Using Plain JavaScript
- The async Library
Lesson 4: Asynchronous Control Flow Patterns with ES2015 and Beyond
- Promise
- Generators
- Async/Await Using Babel
- Comparison
Lesson 5: Coding with Streams
- Discovering the Importance of Streams
- Getting Started with Streams
- Asynchronous Control Flow with Streams
- Piping Patterns
Lesson 6: Design Patterns
- Factory
- Revealing Constructor
- Proxy
- Decorator
- Adapter
- Strategy
- State
- Template
- Middleware
- Command
Lesson 7: Wiring Modules
- Modules and Dependencies
- Patterns for Wiring Modules
- Wiring Plugins
Lesson 8: Universal JavaScript for Web Applications
- Sharing Code with the Browser
- Introducing Webpack
- Fundamentals of Cross-Platform Development