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.

phpck

3,237 views

Published on

PHP カンファレンス関西 LT 資料

Published in: Technology
  • Be the first to comment

phpck

  1. 1. PHPer のための Node.js 入門 株式会社インフィニットループ 中川武憲
  2. 2. 自己紹介 株式会社インフィニットループ アルバイト ! 北海道科学大学 3年 趣味:
    Web アプリケーション開発、旅行 旧:北海道工業大学 @ww24
  3. 3. 株式会社インフィニットループ 北海道札幌市 (テレビ塔の近く) システム開発会社 主にゲーム開発 100名体制 (ほぼプログラマ) 半数以上が PHPer
  4. 4. 株式会社インフィニットループ 弊社公式マスコットキャラクター あいえるたん かわいい! 女子高生バイト戦士
  5. 5. 本題に入る前に
  6. 6. 本日の飯テロ 北海道の海鮮丼 ~小 市内某所~ http://bit.ly/1mFw5t6 試される大地まで 飛行機で2時間。
  7. 7. Agenda PHPer から JSer に なぜ JavaScript なのか Node.js 紹介 主な用途
  8. 8. PHPer、JSer になる。
  9. 9. 高校生の頃は、 VPS を借りて CodeIgniter で Twitter クライアントのような物を作っていました。
  10. 10. 大学入学直前、インフィニットループにアルバイトとして入社。 PHP の会社と聞いていたので、 PHP を書く覚悟で居ました。
  11. 11. しかし
  12. 12. 入社まもなくして 社長「Titanium Mobile 知ってる?    それでスマートフォンアプリ作ってみない?」  私「JavaScript でスマホアプリが作れるんですね!」
  13. 13. 社長「IT 勉強会カレンダーの Android アプリを作って、    Titanium Mobile を評価してよ」  私「やってみます!」
  14. 14. IT 勉強会カレンダー for Android & iOS IT 系勉強会をスマートフォンで 検索できるアプリ 最近アップデートしました 主にバグフィックスと UI 改善 http://www.infiniteloop.co.jp/it-study-calendar/
  15. 15. その頃、趣味で半年ほど触っていた Node.js が楽しくなってきて…
  16. 16. PHP 書かなくなる。
  17. 17. 2 年間のブランクを経て、 PHP を書く機会が訪れる。 最近は Laravel で Web アプリケーションを開発中。
  18. 18. 今後の目標 PHP と JavaScript 両方書けるエンジニアへ。
  19. 19. なぜ JavaScript なのか?
  20. 20. JavaScript の良いところ シンプルな言語仕様 (複雑なのは this とnew と prototype 周りのみ) 分かりやすい変数スコープ (グローバルと関数スコープのみ) 第一級関数
 →PHP 5.3 で追加 メソッドチェーン (Java, Ruby のような)
 →PHP だと $hoge->foo()->bar()
  21. 21. 30億のデバイスで走る Java 30億以上のデバイスで走る JavaScript Computers, TVs, Electronic Guideboards, PlayStation, Wii, Xbox, BlackBerry, Android, iPhone, Cell Phones, In-Vehicle Infotainment, Digital Signage, Kindle…
  22. 22. –とあるプログラマ “でも JavaScript って遅いでしょ?”
  23. 23. A. いいえ。JavaScript が重い、遅いと思われているの は、普段ブラウザの UI スレッドで動いているから。
  24. 24. 例えば、
  25. 25. Web Workers HTML5 で登場した、並列処理を 行う仕組み UI スレッドで実行するとブラウ ザが固まって UX が最悪な処理 をバックグラウンドで捌く http://dev.ww24.jp/javascript/PI/
  26. 26. Node.js JavaScript のサーバサイド実装 Chrome と同じ V8 エンジン搭載 イベント駆動 ノンブロッキング I/O
  27. 27. Node.js 主な用途 Apache, Nginx のような Web Server が不要
 Node.js 自体が Web Server になる クライアントサイドでビルド自動化にも使われる 最近はデスクトップアプリケーションにも使われている リアルタイムなリクエストを捌くことが得意
  28. 28. Node.js 主な用途 Apache, Nginx のような Web Server が不要
 Node.js 自体が Web Server になる クライアントサイドでビルド自動化にも使われる 最近はデスクトップアプリケーションにも使われている リアルタイムなリクエストを捌くことが得意
  29. 29. Node.js の Hello World (Web Server) var http = require("http"); http.createServer(function (req, res) { res.writeHead(200, {"Content-Type": "text/plain"}); res.end("Hello Worldn"); }).listen(1337, "127.0.0.1"); console.log("Server running at http://127.0.0.1:1337/");
  30. 30. Node.js 主な用途 Apache, Nginx のような Web Server が不要
 Node.js 自体が Web Server になる クライアントサイドでビルド自動化にも使われる 最近はデスクトップアプリケーションにも使われている リアルタイムなリクエストを捌くことが得意
  31. 31. ビルドツールとしての Node.js CoffeeScript, LESS などのビルドを自動化 クライアントテストの自動実行 作業効率 UP Grunt, Gulp, Brunch 等がある
  32. 32. –とある *nix 使い “それ Makefile と何が違うの?”
  33. 33. A. クロスプラットフォーム。 Node.js なら Windows でも動く。 npm (node package manager: composer のようなもの) によるパッケージ管理も優秀。
  34. 34. Node.js 主な用途 Apache, Nginx のような Web Server が不要
 Node.js 自体が Web Server になる クライアントサイドでビルド自動化にも使われる 最近はデスクトップアプリケーションにも使われている リアルタイムなリクエストを捌くことが得意
  35. 35. デスクトップアプリケーション Brackets
 Adobe 製のエディタ GitHub Atom
 GitHub 製のエディタ どちらもオープンソースで MIT License 裏で Node.js が走り、 Web の技術で実装されている。
  36. 36. Node.js 主な用途 Apache, Nginx のような Web Server が不要
 Node.js 自体が Web Server になる クライアントサイドでビルド自動化にも使われる 最近はデスクトップアプリケーションにも使われている リアルタイムなリクエストを捌くことが得意
  37. 37. スマートフォンをコントローラに スマートフォンと PC をリアルタイムに同期 アプリやゲームのコントローラになる
  38. 38. DEMO http://connect-sp.ww24.jp/
  39. 39. 導入 http://nodejs.org/ UNIX, Linux なら nodebrew が手軽 https://github.com/hokaccha/nodebrew
  40. 40. ご清聴ありがとうございました

×