• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Node js 入門
 

Node js 入門

on

  • 4,232 views

勉強会で発表した資料。

勉強会で発表した資料。

Statistics

Views

Total Views
4,232
Views on SlideShare
4,231
Embed Views
1

Actions

Likes
6
Downloads
15
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Node js 入門 Node js 入門 Presentation Transcript

    • 入門 Satoshi Takami @tikemin 1
    • Agenda ■ Hello Node.js ■ Node.jsを使ったWebサーバ構築【演習】 ■ Node.jsとMySQLとの連携【演習】 ■ Node.jsを使ったWebアプリケーション開発【演習】 ■ Node.jsの開発をより便利に 2
    • はじめに ■ この資料はNode.jsに上級者向けの資料ではありません ■ Node.jsという言葉は知ってるけど、詳しい事はよく知 らない初心者向けです ■ この資料を見てNode.jsが完璧に出来るようになるよう な魔法の資料ではありません ■ 間違いや誤解している点があると思うので指摘して頂 ければと思います 3
    • Hello Node.js 4
    • Node.jsとは? ■ 一言でいうと □ C10K問題 □ イベントループ □ ノンブロッキングI/O □ Google V8エンジン Server Side js 5
    • 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
    • Node.js の歴史 ■ Web2.0の登場と共に... □ C(クライアント)10K(1万台)問題 □ 大規模なI/Oが発生する処理の需要が高まる □ Apacheなどは1HTTPリクエストに1プロセス(つま りポート数の32767が限界) □ マルチスレッドだとメモリの消費が激しい C10K問題 7
    • Node.js の歴史 ■ そこで... □ 1つのスレッドでイベントを管理(シングルスレッド) □ スレッドが増えるのを抑えることができる □ ブロックが発生する (大容量のDB参照,ロジック自体の処理が長いetc.) イベントループ 8
    • Node.js の歴史 □ ブロックの無いイベントループ(Ryan Dahl) □ ノンブロッキングを強制する □ Google V8 エンジンにより実現 ノンブロッキングI/O 9
    • つまり 10
    • Node.jsとは ■ C10K問題 ■ イベントループ ■ Google V8エンジン搭載 ■ ノンブロッキングI/O ■ Server Side js(Java Script) 11
    • 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
    • Node.jsを使ったWebサーバ構築 【演習】 14
    • 環境構築 ■ WindowsでのNode.js □ 資料のダウンロード □ http://ad-da.jp/download/nttdata/study/ nodejsstudy.zip 15
    • Node.jsとMySQLとの連携 【演習】 16
    • Node.jsを使った Webアプリケーション開発 【演習】 17
    • Node.jsのフレームワーク 【演習】 18
    • Node.jsのFW ■ Express(http://expressjs.com/) □ Sinatra ライクなWebアプリケーションFW ■ Salis.js(http://sailsjs.org/) □ フルスタックなMVC FW http://nantokaworks.com/?p=1101 19
    • Node.jsとJava FW DAO DB Buisness Logic JSP Struts Struts + Spring プレゼンテーション層 サービス層 永続化層 Bean 20
    • Expressのアーキテクチャ 出典:http://www.slideshare.net/dbloete/expressjs Connect Session Provider Session Cookie ErrorHandling Helper Connection Jade (Template Engine) + EJS View Controller/Model 21
    • Expressに関するリンク ■ https://github.com/balderdashy/sails/blob/ master/README.md ■ http://expressjs.com/ ■ https://github.com/senchalabs/connect ■ http://embeddedjs.com/ 22
    • では、実際につかってみましょう 23
    • Node.jsの開発をより便利に 24
    • TypeScript ■ Micorosoftが提供するNode.js用のオブジェクト指向言語 □ jsには型が無い(動的型付け) □ オブジェクト指向でないのでチーム開発に向かない ・静的型付け ・オブジェクト指向 ・IDEによる開発サポート(VSで可能) ・オープンソース http://www.typescriptlang.org/ 25
    • 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
    • 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