Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Node js 入門

62,716 views

Published on

勉強会で発表した資料。

Published in: Technology
  • Be the first to comment

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

×