Slide 1

Slide 1 text

Node.js 那些事儿 作者:刘喜东

Slide 2

Slide 2 text

2 Content  What  Why  How  Where  Who

Slide 3

Slide 3 text

3 Content  What  Why  How  Where  Who

Slide 4

Slide 4 text

4 是什么? ➢ 学名: Node.js ➢ 辟谣:核心由 C/C++ 编写 ➢ 本质:一个 JavaScript 虚拟机 ➢ 托管: https://github.com/joyent/node ➢ 概括: evented I/O for v8 javascript

Slide 5

Slide 5 text

5 Content  What  Why  How  Where  Who

Slide 6

Slide 6 text

6 Apache+mod_php

Slide 7

Slide 7 text

7 Node.js

Slide 8

Slide 8 text

8 Node.js VS Apache+mod_php ➢ 独立完成 VS 细化分工 ➢ 面向事件编程 VS 面向对象编程 ➢ 英雄主义 VS 人海战术 ➢ 劳模 VS 普通青年

Slide 9

Slide 9 text

9 Node.js 的优点 学习成本低 内存占用少 CPU 利用率高

Slide 10

Slide 10 text

10 Content  What  Why  How  Where  Who

Slide 11

Slide 11 text

11 离了模块就活不了 ➢ npm ➢ CommonJS ➢ 核心模块概览

Slide 12

Slide 12 text

npm ➢ Node Package Manager ➢ pear 、 gem 、 apt ➢ curl http://npmjs.org/install.sh | sudo sh

Slide 13

Slide 13 text

CommonJS ➢ 它是一套 API 。 ➢ 它要为 Web 服务器 , 桌面和命令行应用创 建一个完整的 JavaScript 生态系统,不 仅仅只为浏览器。 ➢ 它定义了一组标准和规范,如模块、包、 文件系统等。

Slide 14

Slide 14 text

核心模块 ➢ http/https ➢ url ➢ os ➢ fs ➢ assert ➢ ... ...

Slide 15

Slide 15 text

代码示例 ➢ 功能:根据坐标获取小区列表的 API 。 ➢ 方式: POST ➢ 返回: JSON ➢ 测试: ab -c 100 -n 1000 ➢ 网址: https://github.com/liuxd/MyNodeJS

Slide 16

Slide 16 text

Apache+mod_php

Slide 17

Slide 17 text

Node.js

Slide 18

Slide 18 text

18 Content  What  Why  How  Where  Who

Slide 19

Slide 19 text

19 用武之地 ➢ IO 频繁 ➢ CPU 利用率低 ➢ 内存导致并发瓶颈

Slide 20

Slide 20 text

20 应用场景 ➢ 聊天系统 ➢ 投票 ➢ 点击量统计 ➢ 秒杀 ➢ 业务耦合较低的 api ➢ ... ...

Slide 21

Slide 21 text

21 Content  What  Why  How  Where  Who

Slide 22

Slide 22 text

22 谁在用? ➢ Instagram—— 基于 Node.js 开发了 node2dm ➢ LinkedIn—— 移动应用业务 ➢ Github——NodeLoad, 存档下载服务器 ➢ —— 淘宝 用 Node.js 实现 MyFOX ➢ 微软、雅虎、 ebay

Slide 23

Slide 23 text

23 By the way ➢ NAE——Node App Engine ➢ http://registry.npmjs.vitecho.com ➢ npm config set registry “XXOO” ➢ PHP 版的 Node.js——React

Slide 24

Slide 24 text

Thank you very much.