Introduction
Saman Baboli Who am I? Co-founder and CTO Tabriz Open talks
Agenda 1 – What is Node.js? 2 – How it works? 3 – Why Node.js? 4 – Async 5 – Package Managers 6 – ECMAScript 7 – Template Engines 8 – Web Socket 9 – Frameworks 10 – Don’t use it! 11 – Where Node.js Should Be Used? 12 – load balancing 13 - Memory Management 14 - Top Companies Using Node.js 15 – Ides 16 - References Tabriz Open talks
Chrome’s V8 JavaScript engine. What is Node.js? Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Tabriz Open talks
How it works? JS Code Engine Machine Code Tabriz Open talks
How it works? V8 Chakra SpiderMonkey Tabriz Open talks همونطور که می بینید کروم از موتور وی 8 استفاده میکنه که یکی از سریع ترین ها و بهترین موتور ها برای جاوا اسکریپت هست. اج از چاکرا و موزیلا از اسپایدر مانکی بعضی وقت ها که می بینید بعضی از مروگر گر ها رفتاری های مختلفی در مقابل کد های جاوااسکریپت دارن دلیل این متفاوت بودن موتور ها هستش. V8 Chakra SpiderMonkey Tabriz Open talks
Why Nodejs? Non-blocking I/O Tabriz Open talks
Async Tabriz Open talks
Async 1 2 3 Tabriz Open talks
Async 1 3 2 // after 3s Tabriz Open talks
JavaScript everywhere ;) Why Nodejs? one single language in both client and server side. JavaScript everywhere ;) Tabriz Open talks
Why Nodejs? Rich ecosystem Tabriz Open talks
Package Managers Node package manager Tabriz Open talks
Package Managers $ npm install "package-name" --save Save this module name in package.json file Tabriz Open talks
Package Managers Tabriz Open talks
Package Managers Tabriz Open talks
Package Managers express — Express.js, a Sinatra-inspired web development framework for Node.js. hapi — a very modular and simple to use configuration-centric framework for building web and services applications socket.io and sockjs — Server-side component of the two most common websockets components out there today. Redis — Redis client library. pm2 — run and monitoring Node.js apps in background Tabriz Open talks
Template Engines Tabriz Open talks
Template Engines Pug (jade) example Tabriz Open talks
Frameworks Tabriz Open talks
Is the name of the international standard that defines JavaScript ECMAScript Is the name of the international standard that defines JavaScript Tabriz Open talks
ECMAScript Tabriz Open talks
Web Socket Tabriz Open talks
Web Socket Tabriz Open talks
for CPU-intensive operations Don’t use it! for CPU-intensive operations Tabriz Open talks
Don’t use it! Serve static files Tabriz Open talks
Where Node.js Should Be Used? Real time apps Tabriz Open talks
Where Node.js Should Be Used? Tabriz Open talks
load balancing Tabriz Open talks
load balancing Tabriz Open talks
Memory Management garbage collection Tabriz Open talks
Top Companies Using Node.js https://stackshare.io/nodejs/in-stacks Tabriz Open talks
Ides Tabriz Open talks
Node.js is not a programming language! Node.js Be aware! Node.js is not a programming language! Node.js Tabriz Open talks
References https://medium.com/the-node-js-collection/why-the-hell-would-you-use-node-js-4b053b94ab8e https://medium.com/@samanbaboli/how-to-load-balancing-nodejs-apps-using-nginx-a3b4ceb7c782 Tabriz Open talks
Thanks a lot Everywhere @samanbaboli Tabriz Open talks