Skip to content

rsp/nw1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

Node Workshop - Lesson 1

=> github.com/rsp/nw1

Lesson 1 of the Node.js Workshop by Rafał Pocztarski at inFullMobile.

About us

inFullMobile is a digital product design and development studio based in Warsaw, Poland.

Doing mobile, web, IoT and hardware projects from the idea to a final product.

https://infullmobile.com/

About me

Rafał Pocztarski is a Senior Node.js Developer and Team Leader at inFullMobile.

Programming since 1986, commercially since 1996.

Programming in Node since watching the first Node.js presentation by Ryan Dahl in 2009.

Enjoys writing about Node.js on Stack Overflow, holding a rare Gold Node.js Badge.

https://pocztarski.com/

Evented I/O for V8 JavaScript

Year 2009 - A Crazy Idea

Original Node.js presentation by Ryan Dahl

https://www.youtube.com/watch?v=ztspvPYybIY&t=8s

Year 2018 - 18 billion monthly package downloads

https://www.npmjs.com/

600,000+ Packages

800,000,000+ Downloads per Day

4,000,000,000+ Download per Week

18,000,000,000+ Download per Month

Why

Apache vs nginx concurrency benchmark

https://blog.webfaction.com/2008/12/a-little-holiday-present-10000-reqssec-with-nginx-2/

How

V8

https://developers.google.com/v8/

libuv

https://libuv.org/

Node.js

https://nodejs.org/

Why Today

Events

Serverless is all about handling events

Node.js is all about handling events

AWS Lambda

First Node - Python and Java followed

https://aws.amazon.com/lambda/

https://aws.amazon.com/blogs/aws/run-code-cloud/

Azure Functions

https://azure.microsoft.com/en-us/services/functions/

https://azure.microsoft.com/en-us/blog/introducing-azure-functions/

Serverless Framework

First Node - Python, Java, Scala and C# followed

https://serverless.com/

600,000+ Libraries

https://www.npmjs.com/

Everything is non-blocking

There are event loops in Perl, Python or Java but you can only use non-blocking libraries with them.

Cross-Platform

Linux

Unix

macOS

Solaris

FreeBSD

OpenBSD

Windows

webOS

NonStop

Cross-Platform Desktop Apps

https://electronjs.org/

Slack

Atom

GitHub Desktop

Microsoft Visual Studio Code

Node.js LTS Release Schedule

https://github.com/nodejs/Release#release-schedule

Language

Mocha, LiveScript, JavaScript, ECMAScript

10 days in 1995

Functions

Lambda calculus - 1930s

https://en.wikipedia.org/wiki/Lambda_calculus

Lisp - 1958

https://en.wikipedia.org/wiki/Lisp_(programming_language)

Scheme - 1970

https://en.wikipedia.org/wiki/Scheme_(programming_language)

Objects

Simula - 1965

https://en.wikipedia.org/wiki/Simula

Smalltalk - 1972

https://en.wikipedia.org/wiki/Smalltalk

Prototypes

Self - 1987

https://en.wikipedia.org/wiki/Self_(programming_language)

Events

HyperCard - 1987

https://en.wikipedia.org/wiki/HyperCard

ECMA-262

Standard ECMA-262 - ECMAScript Language Specification

https://www.ecma-international.org/publications/standards/Ecma-262.htm

TC39

Ecma International, Technical Committee 39 - ECMAScript

https://github.com/tc39

MDN Web Docs

The MDN Web Docs (previously Mozilla Developer Network (MDN), previously Mozilla Developer Center (MDC), a.k.a. Devmo)

https://developer.mozilla.org/bm/docs/Web/JavaScript

node.green

Node.js ECMAScript compatibility tables

https://node.green/

Node.js Documentation

https://nodejs.org/api/index.html

Node.js Certified Developer (NCD) Program

https://foundation.nodejs.org/resources/certification

Language Tools

Babel

https://babeljs.io/

TypeScript

https://www.typescriptlang.org/

Style guides

Airbnb JavaScript Style Guide

https://github.com/airbnb/javascript#readme

JavaScript Standard Style

https://standardjs.com/

JavaScript Semi-Standard Style

https://github.com/Flet/semistandard#readme

Idiomatic JavaScript

https://github.com/rwaldron/idiomatic.js#readme

Google JavaScript Style Guide

https://google.github.io/styleguide/jsguide.html

Linters

ESLint

(12M/month)

https://eslint.org/

JSHint

(2M/month)

http://jshint.com/

JSLint

(100k/month, the original)

http://www.jslint.com/

ESLint Configs

Airbnb JavaScript Style Guide

(3M/month)

https://www.npmjs.com/package/eslint-config-airbnb-base

JavaScript Standard Style

(1.5M/month)

https://www.npmjs.org/package/eslint-config-standard

JavaScript Semi-Standard Style

(100k/month)

https://www.npmjs.com/package/eslint-config-semistandard

Idiomatic JavaScript

(4k/month)

https://www.npmjs.com/package/eslint-config-idiomatic

More ESLint Configs:

https://www.npmjs.com/browse/keyword/eslintconfig

Cert

Node.js Certified Developer (NCD) Program https://foundation.nodejs.org/resources/certification

Node in the browser

REPL.IT

https://repl.it/languages/nodejs

RunKit

https://runkit.com/

JS in the browser

Browser

Ctrl + Shift + J (Windows / Linux)

Cmd + Opt + J (Mac)

JSFiddle

https://jsfiddle.net/

JS Bin

https://jsbin.com/

CodePen

https://codepen.io/

Installing Node

Main option

https://nodejs.org/en/

Downloads website

https://nodejs.org/en/download/

Custom installation tutorial

https://gist.github.com/rsp/edf756a05b10f25ee305cc98a161876a

Virtualization

VirtualBox

https://www.virtualbox.org/

Vagrant

https://www.vagrantup.com/

Editors

https://github.com/rsp/info/blob/master/text-editors.md

Classic

Vim

http://www.vim.org/

Emacs

https://www.gnu.org/software/emacs/

Modern

Sublime Text

https://www.sublimetext.com/

Atom

https://atom.io/

Brackets

http://brackets.io/

Visual Studio Code

https://code.visualstudio.com/

Releases

No releases published

Packages