The Node.js Master Class - No Frameworks, No NPM, No Dependencies

Leslie Lewis, 15 years of Software Engineering, 5 year

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
84 Videos (15h 45m)
    • Section 1: Course Introduction

      4:46
    • Table of Contents

      4:24
    • Prerequisites

      2:38
    • Setting Up Your Workstation

      2:52
    • Section 2: The Story of Node.js

      23:15
    • What is v8, exactly?

      5:55
    • What is Node.js, exactly?

      16:11
    • Anatomy of a Node Application

      14:16
    • Common Node Conventions

      14:24
    • Node.js vs the Browser

      2:51
    • Section 3 Overview

      5:50
    • Basic Scaffolding

      2:34
    • Starting a Server

      4:53
    • Parsing Request Paths

      9:22
    • Parsing HTTP Methods

      2:19
    • Parsing Query Strings

      3:08
    • Parsing Headers

      3:01
    • Parsing Payloads

      9:55
    • Routing Requests

      19:15
    • Returning JSON

      3:05
    • Adding Configuration

      14:10
    • Adding HTTPS Support

      16:47
    • Service 1 : /ping

      2:38
    • Storing Data

      28:00
    • Service 2: /users

      51:37
    • Service 3: /tokens

      37:49
    • Service 4: /checks

      54:30
    • Connecting to an API

      17:59
    • Background Workers

      64:31
    • Logging to Files

      41:27
    • Logging to console

      13:36
    • Section 3 Review

      11:16
    • Section 4 Overview

      7:16
    • Refactoring for a GUI

      23:40
    • Using Templates

      33:05
    • Serving Static Assets

      22:37
    • Making AJAX Requests

      16:09
    • Page 1: Index

      3:52
    • Page 2: Signup

      8:18
    • Page 3: Create Session

      5:09
    • Page 4: Deleted Session

      4:54
    • Page 5: Edit Account

      5:02
    • Page 6: Deleted Account

      4:22
    • Page 7: Create a Check

      4:21
    • Page 8: Dashboard

      4:41
    • Page 9: Edit a Check

      4:33
    • Section 4 Review

      2:01
    • Section 5 Overview

      7:16
    • Adding a CLI

      18:09
    • Handling Events

      9:47
    • Command 1: Exit

      1:55
    • Command 2: Man or Help

      15:56
    • Command 3: Stats

      9:13
    • Command 4: List Users

      5:01
    • Command 5: More User Info

      4:33
    • Command 6: List Checks

      7:31
    • Command 7: More Check Info

      2:31
    • Command 8: List Logs

      3:54
    • Command 9: More Log Info

      6:15
    • Section 5 Review

      1:44
    • Section 6 Overview

      7:16
    • Creating Errors

      9:26
    • Using the Debugger

      11:29
    • Linting with Strict

      2:38
    • Adding a Test Runner

      18:53
    • Adding Unit Tests

      10:02
    • Adding API Tests

      16:01
    • Section 6 Review

      2:49
    • Section 7 Overview

      7:16
    • Refactoring for Performance

      11:35
    • Using Performance Hooks

      12:05
    • Using a Cluster

      7:47
    • Using Child Processes

      7:08
    • Section 7 Review

      4:37
    • Section 8 Overview

      7:16
    • HTTP/2

      9:08
    • VM

      4:17
    • UDP

      7:15
    • Net

      7:17
    • TLS

      6:41
    • REPL

      4:34
    • Async Hooks

      10:42
    • Section 8 Review

      2:33
    • Thank You!

      2:58
45 students are watching this class

About This Class

Build a REST API, and web app, and a CLI in plain Node.js with no 3rd-party libraries.

-------

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

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
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.

Section 3: Building a RESTful API 
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. 

Section 4: Building a web app GUI
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.

Section 5: Building a CLI
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.

Section 6: Gaining Stability
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.

Section 7: Gaining Performance
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. 

Section 8: Loose Ends
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.

 

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. 

152

Students

--

Projects

Leslie Lewis

15 years of Software Engineering, 5 year

Hi, I'm Leslie, and I'm a professional software engineer (and engineering manager) from the San Francisco Bay Area. I've had the pleasure of developing over 50 products and websites over the years, and now I focus on building great teams and training them.

Over the years I've worked with a number of languages and tech stacks. My favorites these days are Node.js (Javascript), Golang, C, and Erlang. Though I do still occasionally work in Ruby, Python, Java and PH...

See full profile