node.js基礎の基礎 - miyazaki.js vol.2

36
Node.js基礎の基礎 2015/04/18 Miyazaki.js vol.2

Upload: nobuhiro-nakashima

Post on 19-Jul-2015

229 views

Category:

Engineering


12 download

TRANSCRIPT

Page 1: Node.js基礎の基礎 - Miyazaki.js vol.2

Node.js基礎の基礎

2015/04/18 Miyazaki.js vol.2

Page 2: Node.js基礎の基礎 - Miyazaki.js vol.2

自己紹介

Nobuhiro Nakashima @ombran JavaScript/Ruby/サンホラ/アニオタ 株式会社アラタナ エンジニア Miyazaki.js主催

Page 3: Node.js基礎の基礎 - Miyazaki.js vol.2

今日話すこと

Page 4: Node.js基礎の基礎 - Miyazaki.js vol.2

Node.jsの概要

Page 5: Node.js基礎の基礎 - Miyazaki.js vol.2

今日話さないこと

Page 6: Node.js基礎の基礎 - Miyazaki.js vol.2

Node.jsを使った 実践的なプログラミング内容

Page 7: Node.js基礎の基礎 - Miyazaki.js vol.2

Node.jsって知ってますか?

Page 8: Node.js基礎の基礎 - Miyazaki.js vol.2
Page 9: Node.js基礎の基礎 - Miyazaki.js vol.2

2009年 Ryan Dahl氏によって開発

Page 10: Node.js基礎の基礎 - Miyazaki.js vol.2

最大の特徴

Page 11: Node.js基礎の基礎 - Miyazaki.js vol.2

サーバサイドJavaScript

Page 12: Node.js基礎の基礎 - Miyazaki.js vol.2

Webブラウザの中で実行されるのではなく

サーバサイドで実行されるJavaScript

Page 13: Node.js基礎の基礎 - Miyazaki.js vol.2

当然PC上のファイルに アクセスできます

Page 14: Node.js基礎の基礎 - Miyazaki.js vol.2

JavaScriptエンジンは何?

Page 15: Node.js基礎の基礎 - Miyazaki.js vol.2

JavaScriptエンジン Google Chrome:V8

Firefox:Spidermonkey Safari:JavaScriptCore

Internet Explorer:Chakra

Page 16: Node.js基礎の基礎 - Miyazaki.js vol.2

JavaScriptエンジン Node.js:V8

Google Chromeと同じものを使用

Page 17: Node.js基礎の基礎 - Miyazaki.js vol.2

Node.jsが 解決してくれること

Page 18: Node.js基礎の基礎 - Miyazaki.js vol.2

C10K問題

Page 19: Node.js基礎の基礎 - Miyazaki.js vol.2

C10K問題 クライアント1万台問題

Page 20: Node.js基礎の基礎 - Miyazaki.js vol.2

ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと

Page 21: Node.js基礎の基礎 - Miyazaki.js vol.2

マルチスレッド メモリ消費が激しい

1スレッド数MBでも 1000スレッド作れば数GB

Page 22: Node.js基礎の基礎 - Miyazaki.js vol.2

どうやって解決するか

Page 23: Node.js基礎の基礎 - Miyazaki.js vol.2

シングルスレッド

Page 24: Node.js基礎の基礎 - Miyazaki.js vol.2

スレッド1つで処理する

メモリ消費が少ない

Page 25: Node.js基礎の基礎 - Miyazaki.js vol.2

それだけだと数がさばけないそれだけだと数がさばけない

Page 26: Node.js基礎の基礎 - Miyazaki.js vol.2

処理効率をどう上げるか?

Page 27: Node.js基礎の基礎 - Miyazaki.js vol.2

ノンブロッキングI/O

Page 28: Node.js基礎の基礎 - Miyazaki.js vol.2

処理にブロックが発生しない

Page 29: Node.js基礎の基礎 - Miyazaki.js vol.2

1処理の終了を待たずに 次の処理をする

Page 30: Node.js基礎の基礎 - Miyazaki.js vol.2

待ち状態という無駄を 極限まで減らすということ

Page 31: Node.js基礎の基礎 - Miyazaki.js vol.2

どうプログラミングするか?

Page 32: Node.js基礎の基礎 - Miyazaki.js vol.2

イベントドリブン

Page 33: Node.js基礎の基礎 - Miyazaki.js vol.2

特定のイベントに対しての 挙動を設定する

Page 34: Node.js基礎の基礎 - Miyazaki.js vol.2

JavaScriptでの普通の書き方

Clickイベントの設定など

Page 35: Node.js基礎の基礎 - Miyazaki.js vol.2

フロントエンドの人も バックエンドができる

Page 36: Node.js基礎の基礎 - Miyazaki.js vol.2

そうNode.jsならね