About This Class Build a REST API, and web app, and a CLI in plain Node.js with no 3rd-party libraries. HOW IS THIS COURSE STRUCTURED? Section 1: Course Overview In this section we introduce the course and myself (the instructor), and then get you setup with everything you need to complete the exercises that come later. We’ll also go over the requirements and prerequisites for this course to ensure you’re in the right place. Section 2: Background Information Section 3: Building a RESTful API Section 4: Building a web app GUI Section 5: Building a CLI Section 6: Gaining Stability Section 7: Gaining Performance Section 8: Loose Ends WHO IS THIS COURSE FOR? This course is a master class. It is for Node.js and Javascript developers who want uncommon abilities. Do you want write your own Node.js framework? How about author your own useful Node.js modules? This course is going to teach you what you need to know to accomplish that. Do you want to be able to fix Node.js libraries when they break, and submit pull requests to your favorite Node.js projects to make them better and stronger? Then this course is the way forward. My goal for this course, is to show you how beautiful Node.js is, and to take your skillset up to the next level. But, be fair warned: this course is not going to be quick, and it certainly isn’t going to be easy. But, it will be worth it. If you’re looking for a challenge, you’ve come to the right place.
-------
Welcome to the Node.js Master Class, where you’re going to learn to build applications in raw NodeJs with no frameworks, and no external libraries. And yes, that means no NPM!
I’ll give you a conceptual overview of Node.js, and the story behind it. We'll start with the history of Node.js, then we'll walk through the nuts and bolts of what Node is, what V8 is, and how they both work, as well as how they relate to each other. I’ll then show you a sample Node JS app so we can apply what we just learned to a real-world example. We’ll then talk about a few common conventions used with Node.js, as well as the differences between writing javascript for Node.js, and writing it for the browser. We’ll also go over the differences between Node.js APIs, and built in javascript functions, and we’ll discuss the Read-eval-print-loop (REPL) that comes with Node.
Now we’re going to jump right in and build a RESTful API together. Doing this exercise will get you familiar with several key sections of the Node.js docs: “fs” the file system, http, crypto, lib, string decoder and path, to name a few.
We’re going to build a simple web GUI. The major purpose of this app will be to consume the API we just built, but I’ll also use it as an excuse to show you how you can build complex templated views with Node.
You’re going to build a command-line application that takes user-inputs from the console, processes them, and writes outputs back out. This will get you acquainted with Node’s Readline, Events, TTY, V8, and OS modules. Very few Node.js developers have ever built a command-line tool in Node. After this section, you’ll be one of them.
Did you know that Node has a built-in assertion library and that writing tests is as easy as creating a file? No “test runners” or pipelines needed here. Now you’re going to write tests for a few of the functions that we wrote in the previous projects. We’re going to write unit tests and also show some examples of how you’d test your new API over HTTP. We’ll also explore how to use the “strict” javascript flag to lint your code for syntax errors, and how to use the debugger to pinpoint issues during execution.
Speed and scalability are two of the most popular reasons that devs choose to work in Node, but few know how to profile or benchmark their code, or tweak it for performance. This will be a crash course on performance optimization and all-things speed and scalability. Here we’ll refactor some of our earlier apps so they’re less resource-hungry, and then use the Node.js “performance hooks” module to time the execution of certain processes. We'll then dive into Node’s “cluster” and “child processes” modules to explore how any Node.js app can take advantage of all the cores available to it.
Once you reach section 8, you’ll be a Node development-force to be reckoned with. But, you’ll still be missing experience with a few key Node.js APIs that we didn’t fit into the earlier lectures. These lectures are dedicated to all these loose ends. You’ll get experience with HTTP2, VM, UDP, Net, TLS, and more. Once this section is done, you’re done. There really won’t be anything left to teach you.
TO MAC USERS: If RAR password doesn't work, use this archive program:
RAR Expander 0.8.5 Beta 4 and extract password protected files without error.
TO WIN USERS: If RAR password doesn't work, use this archive program:
Latest Winrar and extract password protected files without error.