大阪node学園 七時限目 「ゼロからはじめるnode.js」

51
JAWS FESTA Kansai 2013 出張版 大阪Node 学園七時限目 かはじ node.js 2013/09/28

Upload: shunsuke-watanabe

Post on 31-May-2015

2.977 views

Category:

Technology


3 download

DESCRIPTION

JAWS FESTA Kansai 2013でのスライドです。 node.jsの概要から主なモジュールの紹介、ElasticBeanStalkでのアプリケーション実行までを紹介しています。

TRANSCRIPT

Page 1: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

JAWS FESTA Kansai 2013 出張版

大阪Node学園七時限目

ゼロからはじめる

node.js2013/09/28

Page 2: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

Agenda1. はじめに2. node.jsの概要3. node.jsの特徴4. はじめようnode.js5. node packaged modules6. サーバサイド環境としてのnode.js7. コーディングツールとしてのnode.js8. node.jsとAWS9. 今後の予定

10. 宣伝

Page 3: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

はじめに

Page 4: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

想定対象者

これからnode.jsを触り始めようという方

Page 5: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

リンクは です

上の例をのぞいてスライド内のリンクはクリックで外部のサイトが開きます

この色

Page 6: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

自己紹介

渡辺俊輔

フリーランスWebエンジニア大阪Node学園主催Blog :

質問、訂正な ありましたら下記から うぞ

google+twittergmail

A Node in Nodes

大阪node学園@[email protected]

Page 7: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

node.jsの概要

Page 8: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

node.js正式名称 node生まれてから4年

Page 9: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

runs javascriptjavascriptで処理を書く

Page 10: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

runs on google V8google v8上で動く

v8はchromeに乗っているjavascriptエンジン

Page 11: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

without DOMDOMはない

Page 12: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

with APIsファイル操作な のAPIがある

Node.js v0.10.18 Manual & Documentation

Page 13: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

二つの側面

サーバサイド環境としてのnode.jsコーディングツールとしてのnode.js

Page 14: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

javascriptの実行環境

Page 15: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

node.jsの特徴

Page 16: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

高いハフォーマンス

I/Oバウンドな処理のみ

Page 17: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

非同期処理

従来のLL言語はほぼすべて同期処理javascriptは生まれながらにして非同期

Page 18: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

豊富なモジュール

node packaged moduleshttps://npmjs.org/

Page 19: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

活発なコミュニティ

主に欧米

Page 20: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

node.jsの採用例

eBay, LinkedIn, Microsoft, Yahoo なnode.jsを利用している企業、団体の一覧

Page 21: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

非同期処理がもたらす恩恵

豊かなエコシステム

Page 22: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

はじめようnode.js

Page 23: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

インストール

バイトリをダウンロードして解凍するのが早くて簡単

自分でコンハイルしたい人はnodebrewとかhttp://nodejs.org/download/

Page 24: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

まず覚えたいこと

2つのコマンドnodeコマンドnpmコマンド

2つの概念コールバック関数

イベントドリブン

Page 25: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

nodeコマンドnode.jsの本体スクリプトを実行する

バージョン表示

スクリプト実行

対話環境

> node --version

v0.11.6

> node hello.js

Hello!

> node

> console.log('Hello!');

Hello!

Page 26: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

npmコマンドnode package managernpmモジュールの管理を行う

個別モジュールのインストール

モジュールのアンインストール

※ Macのhomebrewでnode.jsをインストールした場合にはnpmコマンドの実行にsudoが必要

> npm install less

> npm uninstall less

Page 27: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

コールバック関数

jQueryで 馴染み

jQueryのdocument.readyの例

jQueryでの呼び名はネンドラ

node.jsでのファイル読み出しの例

4行目から7行目のfunctionがコールバック関数

$( document ).ready(function() {

// Handler for .ready() called.

});

1

2

3

var fs = require('fs');

fs.readFile(__dirname + '/ong6.txt', {encoding: 'utf-8'}

, function (error, result) {

console.log(result);

process.exit();

}

);

1

2

3

4

5

6

7

8

Page 28: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

イベントドリブン

こちらもjQueryで 馴染み

jQueryの例documentがreadyになったらネンドラを実行する

node.jsの例ファイルを読み込ん らコールバック関数を実行する

何かの状態になった → 何かの処理をする

|| ||イベント発生 → コールバック関数を実行

Page 29: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

nodeとnpmの二つのコマンドを使う

コールバックスタイルに慣れよう

Page 30: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

node packaged modules

Page 31: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

モジュールの探し方

npm search でモジュールを探せる

ウゥブサイトを利用すると便利

キーワードでインクリメンタルサーチ

フォーク数、スター数な でソート可能

カテゲリから探せる

しばらく落ちている模様

本家サイト

検索結果の総数が出ない上、ソートが出来ないので使い らい

> npm search less

nipster

node toolbox

npmjs.org

Page 32: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

サーバサイド環境としてのnode.js

Page 33: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

Webサーバ標準のhttpモジュールexpressrestifysailsjs

Page 36: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

データベースアクセス

(ODM/ORM)

mongoosesequalizebookshelfjugglingdb

Page 37: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

テストフレームワーク

mochanodeunitQUnit

Page 38: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

ユーティリティ

... and more and more

underscoreasyncjohnny-five

Page 39: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

コーディングツールとしてのnode.js

Page 40: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

メタ言語

coffee-scriptjadeless

Page 41: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

ユーティリティ

... and more and more

UglifyJSjshintgruntyeoman

Page 42: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

モジュールを活用しよう

Githubのフォーク数、スター数、最終更新日を見る

Page 43: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

node.jsとAWS

Page 44: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

Elastic Beanstalk自分でサーバを作る必要がない

オートスケーリング

対応言語Java .NET node.js Python PHP Ruby

参考:5ステップでらくらく!アプリ開発者のためのクラウド まかせ構築術

Page 45: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

Elastic Beanstalk環境の作成

からElasticBeanstalkを選択

自動で構築が始まるのでしばらく待つ

グリーンになったら完了Default Environmentのリンクをクリックすると起動中のサーバにアクセスできる

マネジメントコンソール

Page 46: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

node.jsのバージョンをあげる起動時のデフォルトが0.8.24なので0.10.10に変更する

ConfigurationのEditボタンをクリックする

Software Configurationの歯車をクリック

Node versionに0.10.10と入力ページ下部のsaveボタンをクリックすると自動

で環境のアップデートが始まる

最新バージョンはドキュメントににひっそりと書いてある

Page 47: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

自作アプリのアップロード

app.jsを含むファイル一式をzipにまとめるこのときディレクトリ とzipにしないこと、"Failed to find package.json"というエラーの原因になる

Upload and Deployボタンをクリックする

ファイルを選択をクリックし、先ほ 作ったzipファイルを選択する

Deployをクリックすると自動でアップデートが始まる

Page 48: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

Elastic Beanstalkを使うとnode.jsアプリケーションのデプロイも簡単

Page 49: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

今後の予定

大阪Node学園八時限目 node.jsみちしるべ10/28 Innovation EGG 第一回勉強会 出張版

Page 50: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

宣伝

半年ほ 前に本を書きました

HTML5とJavaScriptによるiPhone/Android両対応アプリ開発ガイド(DESIGN & WEB TECHNOLOGY)

Page 51: 大阪Node学園 七時限目 「ゼロからはじめるnode.js」

Thank you!

photo by from flickrLance Johnson