Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to NodeJS
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
uictechparty
July 01, 2012
Programming
240
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to NodeJS
By Zelong Liang, 1st TechParty@UIC
uictechparty
July 01, 2012
More Decks by uictechparty
See All by uictechparty
产品经理是做什么的呢?
uictechparty
1
250
找人
uictechparty
3
480
香港研究生申请经验分享
uictechparty
0
420
css.pdf
uictechparty
1
220
Introduction to Design Patterns
uictechparty
2
180
编写高质量Java代码的7个建议
uictechparty
2
190
视觉障碍出行辅助仪 -The Third Eye
uictechparty
1
160
jQuery 快速入门
uictechparty
1
160
Introduction to Hadoop
uictechparty
3
240
Other Decks in Programming
See All in Programming
メールのエイリアス機能を履き違えない
isshinfunada
0
250
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
1.1k
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
530
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
5
500
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
160
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
560
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
130
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
190
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
170
源内ハンズオン概要編
hideg
0
200
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
230
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
Become a Pro
speakerdeck
PRO
31
6.2k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
260
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
390
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Tell your own story through comics
letsgokoyo
1
1k
BBQ
matthewcrist
89
10k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
970
Un-Boring Meetings
codingconduct
0
390
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
260
Transcript
Node.js
Who am I? • @龙mol_才不是小眼睛
Introduction • Node.js是什么? • Node.js的优势与特点是什么? – 什么是V8引擎 – 什么是非阻塞模式 •
Node.js能解决什么问题? • Node.js实践?
Node.js是什么 • Node.JS 是资深 C 程序员 Ryan Dahl的作 品,依据 Google
著名的开源 JavaScript 引擎 V8 来进行二次开发的 Web I/O 服务 器 • 轻量级WebServer • 脱离了浏览器在后端运行的Javascript代码 • 运行坏境、库
优势与特点 • 单进程(single-thread) • 异步非阻塞(non-blocking) • 事件驱动(event-based) • V8引擎 •
性能很好 • 第三方模块丰富 • 速度、灵活
V8引擎 • V8是一个由丹麦Google开 发的开源JavaScript引 擎,用于Google Chrome 中。 • V8在执行之前将 JavaScript编译成了机器
码,而非字节码或是直译 它,以此提升效能。并且 使用了如内联缓存(inline caching)等方法来提高性 能。 • 有了这些功能, JavaScript程序与V8引擎 的速度媲美二进制编译。
非阻塞模式 • 在非阻塞模式下利用socket事件的消息机 制,Server端与Client端之间的通信处于异 步状态。 • 通常需要从CSocket类派生一个新类,派生 新类的目的是重载socket事件的消息函数, 然后在socket事件的消息函数中添入合适的 代码以完成Client端与Server端之间的通信。
• 与阻塞模式相比,非阻塞模式无需创建一 个新线程。
性能 • Python:Tornado • Go • Java:Netty • Nodejs
None
None
None
None
None
None
第三方模块 • 官方共收集列出1152个第三方模块! – 涵盖了Web、Database、XML、Web Sockets & Ajax、API clients、TCP/IP、CSS Enginess
等等,几乎涉及网络开发中需要的功能模块。 管理工具:npm 管理着4427+模块,想用哪个用哪个,妈妈在也 不用担心我没有模块用!
Node.js能解决什么问题 • Node 公开宣称的目标是 “旨在提供一种简 单的构建可伸缩网络程序的方法”。
E.g. • 在 Java™ 和 PHP 这类语言中,每个连接 都会生成一个新线程,每个新线程可能需 要 2
MB 的配套内存。在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数 量是 4,000 个用户。随着您的客户群的增 长,如果希望您的 Web 应用程序支持更多 用户,那么,您必须添加更多服务器。当 然,这会增加服务器成本、流量成本和人 工成本等成本。 • 瓶颈是:服务器能够处理的并发连接的最 大数量。
A • 解决这个问题的方法是:更改连接到服务 器的方式。每个连接发射一个在 Node 引擎 的进程中运行的事件,而不是为每个连接 生成一个新的 OS 线程(并为其分配一些
配套内存)。Node 声称它绝不会死锁,因 为它根本不允许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器 能支持数万个并发连接。
Node.js实践 • 不受限制地访问文件和网络资源 • 前后端代码复用 • 解决跨域访问的问题
常规Web应用
实时性强的网络应用
实时性强的网络应用
Q&A
Thanks!