Node js 入門

42,179 views

Published on

勉強会で発表した資料。

Published in: Technology
0 Comments
55 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
42,179
On SlideShare
0
From Embeds
0
Number of Embeds
742
Actions
Shares
0
Downloads
120
Comments
0
Likes
55
Embeds 0
No embeds

No notes for slide

Node js 入門

  1. 1. 入門 Satoshi Takami @tikemin 1
  2. 2. Agenda ■ Hello Node.js ■ Node.jsを使ったWebサーバ構築【演習】 ■ Node.jsとMySQLとの連携【演習】 ■ Node.jsを使ったWebアプリケーション開発【演習】 ■ Node.jsの開発をより便利に 2
  3. 3. はじめに ■ この資料はNode.jsに上級者向けの資料ではありません ■ Node.jsという言葉は知ってるけど、詳しい事はよく知 らない初心者向けです ■ この資料を見てNode.jsが完璧に出来るようになるよう な魔法の資料ではありません ■ 間違いや誤解している点があると思うので指摘して頂 ければと思います 3
  4. 4. Hello Node.js 4
  5. 5. Node.jsとは? ■ 一言でいうと □ C10K問題 □ イベントループ □ ノンブロッキングI/O □ Google V8エンジン Server Side js 5
  6. 6. Node.js の歴史 ■ 2009年頃に生まれる □ 「Scalable Network」/「Easily Building Fast」 □ 規模が大きく、高速なネットワークを手軽に構築 Concept Node s goal is to make non-blocking network programming accessible to users who are not well-versed in server development. (Ryan Dahl) 6
  7. 7. Node.js の歴史 ■ Web2.0の登場と共に... □ C(クライアント)10K(1万台)問題 □ 大規模なI/Oが発生する処理の需要が高まる □ Apacheなどは1HTTPリクエストに1プロセス(つま りポート数の32767が限界) □ マルチスレッドだとメモリの消費が激しい C10K問題 7
  8. 8. Node.js の歴史 ■ そこで... □ 1つのスレッドでイベントを管理(シングルスレッド) □ スレッドが増えるのを抑えることができる □ ブロックが発生する (大容量のDB参照,ロジック自体の処理が長いetc.) イベントループ 8
  9. 9. Node.js の歴史 □ ブロックの無いイベントループ(Ryan Dahl) □ ノンブロッキングを強制する □ Google V8 エンジンにより実現 ノンブロッキングI/O 9
  10. 10. つまり 10
  11. 11. Node.jsとは ■ C10K問題 ■ イベントループ ■ Google V8エンジン搭載 ■ ノンブロッキングI/O ■ Server Side js(Java Script) 11
  12. 12. Node.jsのアーキテクチャ 出典:http://www.iij.ad.jp/company/development/tech/activities/nodejs/ c-ares OS non-blocking I/O system call zlib libev Node Core Module V8 Node User Module libeio libuv openssl http-parser epoll kqueue event port IOCP Linux BSD Solaris(SmartOS) Windows 12
  13. 13. 演習 13
  14. 14. Node.jsを使ったWebサーバ構築 【演習】 14
  15. 15. 環境構築 ■ WindowsでのNode.js □ 資料のダウンロード □ http://ad-da.jp/download/nttdata/study/ nodejsstudy.zip 15
  16. 16. Node.jsとMySQLとの連携 【演習】 16
  17. 17. Node.jsを使った Webアプリケーション開発 【演習】 17
  18. 18. Node.jsのフレームワーク 【演習】 18
  19. 19. Node.jsのFW ■ Express(http://expressjs.com/) □ Sinatra ライクなWebアプリケーションFW ■ Salis.js(http://sailsjs.org/) □ フルスタックなMVC FW http://nantokaworks.com/?p=1101 19
  20. 20. Node.jsとJava FW DAO DB Buisness Logic JSP Struts Struts + Spring プレゼンテーション層 サービス層 永続化層 Bean 20
  21. 21. Expressのアーキテクチャ 出典:http://www.slideshare.net/dbloete/expressjs Connect Session Provider Session Cookie ErrorHandling Helper Connection Jade (Template Engine) + EJS View Controller/Model 21
  22. 22. Expressに関するリンク ■ https://github.com/balderdashy/sails/blob/ master/README.md ■ http://expressjs.com/ ■ https://github.com/senchalabs/connect ■ http://embeddedjs.com/ 22
  23. 23. では、実際につかってみましょう 23
  24. 24. Node.jsの開発をより便利に 24
  25. 25. TypeScript ■ Micorosoftが提供するNode.js用のオブジェクト指向言語 □ jsには型が無い(動的型付け) □ オブジェクト指向でないのでチーム開発に向かない ・静的型付け ・オブジェクト指向 ・IDEによる開発サポート(VSで可能) ・オープンソース http://www.typescriptlang.org/ 25
  26. 26. TypeScript Sample ■ 「Hello, World!!」「Type Script!!」 1 // モジュール定義 2 module TSSample{ 3 // クラスの定義 4 export class Sample{ 5 // コンストラクタ 6 constructor(private text : string){ 7 } 8 // メソッド 9 display(_InAddText : string) : void{ 10 console.log(this.text + ' ' + _InAddText); 11 } 12 } 13 } 14 var sample : TSSample.Sample = new TSTest.Sample('Hello, World !!!'); 15 sample.display('TypeScript!'); 26
  27. 27. References ■ Nodeの歴史 □ http://d.hatena.ne.jp/badatmath/20101020/1287587240 ■ Web2.0の先にあるもの □ http://www.atmarkit.co.jp/news/analysis/200701/09/c10k.html ■ npm をproxy経由で使えるようにする設定by makits □ http://p.tl/GQCK ■ Node.js開発者(Ryan Dahl)の話 □ http://www.publickey1.jp/blog/11/nodejs_node.html □ http://www.publickey1.jp/blog/11/nodejsnodejs.html 27

×