The Node.js Master Class - No Frameworks, No NPM, No Dependencies
Offered By: Skillshare
Course Description
Overview
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.
Syllabus
- Section 1: Course Introduction
- Table of Contents
- Prerequisites
- Setting Up Your Workstation
- Section 2: The Story of Node.js
- What is v8, exactly?
- What is Node.js, exactly?
- Anatomy of a Node Application
- Common Node Conventions
- Node.js vs the Browser
- Section 3 Overview
- Basic Scaffolding
- Starting a Server
- Parsing Request Paths
- Parsing HTTP Methods
- Parsing Query Strings
- Parsing Headers
- Parsing Payloads
- Routing Requests
- Returning JSON
- Adding Configuration
- Adding HTTPS Support
- Service 1 : /ping
- Storing Data
- Service 2: /users
- Service 3: /tokens
- Service 4: /checks
- Connecting to an API
- Background Workers
- Logging to Files
- Logging to console
- Section 3 Review
- Section 4 Overview
- Refactoring for a GUI
- Using Templates
- Serving Static Assets
- Making AJAX Requests
- Page 1: Index
- Page 2: Signup
- Page 3: Create Session
- Page 4: Deleted Session
- Page 5: Edit Account
- Page 6: Deleted Account
- Page 7: Create a Check
- Page 8: Dashboard
- Page 9: Edit a Check
- Section 4 Review
- Section 5 Overview
- Adding a CLI
- Handling Events
- Command 1: Exit
- Command 2: Man or Help
- Command 3: Stats
- Command 4: List Users
- Command 5: More User Info
- Command 6: List Checks
- Command 7: More Check Info
- Command 8: List Logs
- Command 9: More Log Info
- Section 5 Review
- Section 6 Overview
- Creating Errors
- Using the Debugger
- Linting with Strict
- Adding a Test Runner
- Adding Unit Tests
- Adding API Tests
- Section 6 Review
- Section 7 Overview
- Refactoring for Performance
- Using Performance Hooks
- Using a Cluster
- Using Child Processes
- Section 7 Review
- Section 8 Overview
- HTTP/2
- VM
- UDP
- Net
- TLS
- REPL
- Async Hooks
- Section 8 Review
- Thank You!
Taught by
Pirple . com
Related Courses
Learn Javascript - 21 Essential Array MethodsCoursera Project Network via Coursera 3D Graphics for Web Developers
Pompeu Fabra University via FutureLearn Access WebView in an Android Studio Project
Coursera Project Network via Coursera Advanced React
Meta via Coursera Building Modern Nodejs Applications on AWS
Amazon Web Services via edX