SlideShare une entreprise Scribd logo
1  sur  102
Télécharger pour lire hors ligne
Node.js を選ぶとき
選ばないとき

東京Node学園祭 2013
2013.10.26

Sapporo.js
佐藤 竜之介(Ryunosuke SATO)
提供
Community for people who like JavaScript.

Sapporo.js
自己紹介
@tricknotes
I am a software developer who
love JavaScript and Ruby.

http://tricknotes.hateblo.jp/
I love OSS
I am a contributer

of Ember.js
Sapporo.js
http://sapporojs.org/
/*
* advertising
*
* !!Important!!
*
2013.11.30

JavaScript 道場
http://connpass.com/event/3674/
n
i

幌
札

2013.11.30

JavaScript 道場
http://connpass.com/event/3674/
Idobata
https://idobata.io
*/
よろしく
お願いします
Node.js を選ぶとき
選ばないとき

東京Node学園祭 2013
2013.10.26

Sapporo.js
佐藤 竜之介(Ryunosuke SATO)
今日の話

私が web アプリケーション を作るときに、
Node.js を選んだ場面、選ばなかった場面があります

そのときの背景を交えつつ、 Node.js と Rails
を比較し Node.js の適切な使い所について考察
します
Why Rails?
Node.js ライブラリには Ruby / Rails の影響を
受けているものが多い
*
*
*
*

Rails(generator)<->
Sinatra
<->
Sprockets <->
Rails
<->

yeoman
Express
Mincer
Sails

なので、有意義な比較ができそう
対象者

* Node.js 以外の選択肢を知らない方
* Node.js をあまり使ったことがない方
注意
早く快適にアプリケーションを開発する、
ということに主眼を置いて考察していきます
パフォーマンスやサーバリソースなどの
優先順位は低めです
さて、みなさんが web ア
プリケーション を作りはじ
めるとき、どういう基準でそ
の手段を選ぶでしょうか?
Node.js の場合
Node.js での web アプリ
ケーション開発について
確認してみましょう
http://nodejs.org/
まずは素の状態で始めてみる
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/');

$ curl http://localhost:1337
Hello World
Node.js の基本的な仕組みを理解する
には大事な一歩

でも、これだけだとまだまだ簡単には作れそうにない
実際にはもっと複雑なアプリケーション
を作ることになるでしょう

複雑さに立向うために
ライブラリを使う
http://expressjs.com/
例えば、 express を使ってみる
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('Hello World');
});
app.listen(3000);
express はとてもシンプル
コアが大きくないし、拡張も簡単
ただ、自由度が高いために整理するのに工夫が必要
確かに、express だと、
学習コストは低いかもしれない

学習コスト?
開発速度を維持するコスト?
どっちが大事?
もうすこし大きなフレームワークを好むひともいるか
もしれない
http://sailsjs.org/
model 周りが貧弱
* 関連を扱えない
* マイグレーションがない

データベースとつなげればいいんじゃなくて、
ドメインロジックの管理も適切に行いたい...!!

そこまで大きな手助けしてくれるフレームワークでは
ないのでは...?
最初に大長編 Gruntfile.js を生成する

生成されたコードはバージョンアップに
追従するのが面倒
デフォルトで上手いことやってほしい
http://gruntjs.com/
contlib で様々なタスクが配布され
ているのはありがたい

but...
設定を毎回書くのは手間
grunt.loadNpmTasks('grunt-contrib-coffee');

grunt.initConfig({
coffee: {
compile: {
files: {
'result.js': 'source.coffee'
}
}
}
});
もっと、スムーズに開発を進めたい...!!
Rails の場合
Asset pipeline
* CoffeeScript や Sass のコンパイル
* asset ファイルの minify, concat
* digest hash の付与
Grunt 使ってやりたくなるようなことは、
デフォルトでやってくれる
Asset pipeline
* application.js
//= require jquery
//= require underscore
//
//= require app
application.js にリクエストを投げると、
すべて連結して取得できる
ビルド時には minify + digest が付与される
ビルドタスク
$ rake asset:precompile

そもそもデフォルトで入っている
js のライブラリの管理
* jquery-rails
* underscore-rails
* moment-rails
...

assets のパスが追加される、だけ
静的なファイルをリポジトリに含めなくてOK
ActiveRecord
*
*
*
*

validation
relation
migration
ドメインロジックの管理
一本の道があるということ
の良い所
その道に沿うように他のライブラリが成長していく

Rails に乗る形で、まとまった単位の機能を提
供するライブラリが多い
* 画像アップロード -> carrierwave
* 認証管理 -> devise
* OAuth provider -> doorkeeper

やりたいことを実現するまでの手数が少ない
ちょっと基本に立ち返る
そもそも、Node.js と
Rails ではスタートが違う
“Evented I/O for V8 javascript.”
あくまで、非同期 IO の環境
web 開発以外でも活躍している
http://nodeos.github.io/
https://github.com/rogerwang/node-webkit
“Web development that does’t hurt”
web 開発のためのフレームワーク
7 年かけて環境が整備されてきている
フレームワーク
ライブラリ
言語(実装)
言語(仕様)
Rails が開発効率に重点を置いているので、
使いやすいのは納得できる
Node.js では、まだその大きさのフレーム
ワークは出てきてなくて、 小回りが効くライ
ブラリが多い
Node.js にも、 道を敷いてくれるような
フレームワークがあるとよいの...?

そうでもない、ような...
私の例
自分の例①

->
NotHub
http://nothub.org/
NotHub
* GitHub のイベントをリアルタイムに通知する
Chrome Extension
* 受け取るイベントを設定可能
* public なリポジトリ限定
よくある使い方

* ライブラリのバージョンアップを早く知りたい
* 自分のリポジトリが star されたのを知りたい
* 興味があるハッカーの活動を知りたい
GitHub API

Pub

Crawler

Redis

Sub

Publisher

Chrome Extension

crawl
最初は Ruby で書き始めたが、
パフォーマンスでなくて Node.js で書き直した
* GitHub の API をとにかく叩く必要があった
* Ruby でマルチスレッド処理するのは意外と面倒
* Ruby で非同期書くのも手間
そもそも、Rails が得意な
分野ではない
通知の部分は単純な push 通知なので、
Socket.IO がフィットした
ビルドタスクは Rake
当時は Grunt の開発が始まったばかり
Chrome Extension をパッケージしたい
今だと Grunt を使うかも
自分の例②

->
starseeker
http://starseeker.so/
starseeker
* GitHub の followings の star を
daily メールでお知らせする web アプリ
* リアルタイムじゃなくてアーカイブ
よくある使い方

* 良さそうなライブラリを知る手がかりに!!
* 朝、仕事を始める前に hot なリポジトリをチェック
GitHub API

save

Crawler

MongoDB

read
Web Application

PostgreSQL

crawl
*
*
*
*

Crawl したデータを MongoDB へ
MongoDB なら Node.js と思って書き始めたが...
ユーザ管理とか OAuth 周りが意外と面倒
Rails でやることに
Crawl する部分は Node.js
メール配信も、Rails がいい感じにフィットした
* html/text の multipart メール
* html とのコード共有
<->
両方ともそれぞれに良さがあるので、
それぞれに適切な場面がある!!
よくある誤解集
これだけで選択するのは
まだ早い
‘

クライアントとサーバの
言語統一できて開発がはかどる
* DOM を扱う JavaScript と、ネットワーク、
ドメインロジックを扱う JavaScript は違う
* 確かに言語は統一できるけど、思考の
スイッチングコストは発生する
イベント発火だけでも結構違う
// DOM

jQuery('form').trigger(‘form’);
// Node.js

stream.emit('fetch’, data);
‘

クライアントとサーバで

ロジックの共有がスムーズにできる
* サーバ側でもクライアント側でも使いたい
ロジックはそこまでないのでは...?
* utility 的な関数群だと、ありえるかも
* underscore.js など既存のライブラリ
を使いましょう
互換性のあるコードを維持するのは結構手間

関数定義の工夫
var exports = typeof(module) === 'undefined' ?
this :
module.exports;
exports.method = function() {
// ...
};
互換性のあるコードを維持するのは結構手間

対象ブラウザで使えないメソッドのチェック

array.every(function() {
// ...
});
fn.bind(this);
‘

簡単にスケールできる
* 採用するアーキテクチャに依存する
* Node.js を使っていてもある程度想定して
おかないと、スケール出来ない設計になってしまう
Node.js 以外でも
ある程度は課金で解決できることもある
‘

バージョン間の互換性が高い
* Node.js の API 自体は安定している
* しかしバージョンアップしたら意外と動かなくなる
(パフォーマンス劣化/メモリリークしていることも)
* 拡張ライブラリは全く動かなくなる場合もある
‘

サーバを API 化すれば、

JSON を返すだけのサーバで
OK
* ドメインロジックの管理のしやすさは
ライブラリに依存する
* サーバのデータをすべてクライアントに送れない
場合が多々あるので、その制御が必要
* OAuth の認証トークン
* 行動履歴
* ...
‘

リアルタイム通信
=
Socket.IO
リアルタイム通信の手段はたくさんある
* WebSocket
* Server-Sent Events
* XHR polling
* Socket.IO
* Pusher
...
リアルタイムを扱わない部分とのバランス
も考慮に入れる必要がある
まとめ
実際はこれに運用周りの話が加わってくるので、
もっと複雑
サービスの性質、規模やパフォーマンスによって、
落とし所はまた違ってくる
Node.js は大変素晴らしいけど、
適切に選択する必要がある
Node.js 以外の文化も踏まえた上で
Node.js を選択できると選択の幅が広がるのでは

いざというときに移行する判断ができるのも大事
で、これは常に変わっていくので、
バランスを見極めながら選択するんですかねー

* エコシステム
* ライブラリ
* 自分の作ろうとしているもの

答えはない
for more information...
静的サイト開発ツールとしての
MiddlemanとGrunt
http://webtech-walker.com/archive/2013/09/middleman_vs_grunt.html
Node.jsをサーバサイドの
UIレイヤに限定するのか?
http://wazanova.jp/post/63449778024/node-js-ui
ダブルMVCの意味するところ
[GoGaRuCo 2013]
http://wazanova.jp/post/64057743910/mvc-gogaruco-2013
http://www.flickr.com/photos/sakura-kame/479871795/

快適なweb開発を!

Contenu connexe

Tendances

Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Kohei Asai
 
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみるづや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみるzuya
 
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」Shunsuke Watanabe
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話leverages_event
 
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリットSails.jsのメリット・デメリット
Sails.jsのメリット・デメリットIto Kohta
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようYuusuke Takeuchi
 
サーバサイドNodeの使い道
サーバサイドNodeの使い道サーバサイドNodeの使い道
サーバサイドNodeの使い道pospome
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いているAkihiro Kuwano
 
AngularJS2でつまづいたこと
AngularJS2でつまづいたことAngularJS2でつまづいたこと
AngularJS2でつまづいたことTakehiro Takahashi
 
MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介kamiyam .
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介Ryo Iinuma
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011Hiroh Satoh
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsTadahiro Ishisaka
 
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~Ryunosuke SATO
 
ビルド職人の朝は早い
ビルド職人の朝は早いビルド職人の朝は早い
ビルド職人の朝は早いMasashi MATSUI
 

Tendances (20)

Hello, Node.js
Hello, Node.jsHello, Node.js
Hello, Node.js
 
Node.js Hands-On
Node.js Hands-OnNode.js Hands-On
Node.js Hands-On
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
 
Node js 入門
Node js 入門Node js 入門
Node js 入門
 
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみるづや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
 
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
 
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリットSails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
 
サーバサイドNodeの使い道
サーバサイドNodeの使い道サーバサイドNodeの使い道
サーバサイドNodeの使い道
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
 
AngularJS2でつまづいたこと
AngularJS2でつまづいたことAngularJS2でつまづいたこと
AngularJS2でつまづいたこと
 
Bp study39 nodejs
Bp study39 nodejsBp study39 nodejs
Bp study39 nodejs
 
MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介
 
20131012 nodejs
20131012 nodejs20131012 nodejs
20131012 nodejs
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
 
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
 
ビルド職人の朝は早い
ビルド職人の朝は早いビルド職人の朝は早い
ビルド職人の朝は早い
 

Similaire à Node.js を選ぶとき 選ばないとき

Nseg第32回勉強会
Nseg第32回勉強会Nseg第32回勉強会
Nseg第32回勉強会ko ty
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
 
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript FrameworkNode.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Frameworkkamiyam .
 
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料Koichi Uchimura
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03Daiki Maekawa
 
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルJavaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルMaaya Ishida
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)Hiroyuki Kusu
 
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションJavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションYoichiro Tanaka
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Koichi Shimozono
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門miso- soup3
 
インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門貴寛 益子
 
僕の Serverless web application
僕の Serverless web application僕の Serverless web application
僕の Serverless web application祐樹 夏目
 
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作OpenLayersで始める地図の操作
OpenLayersで始める地図の操作Yuki Yazaki
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテストYoichiro Sakurai
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascriptTakayoshi Tanaka
 
Jsのビルド環境
Jsのビルド環境Jsのビルド環境
Jsのビルド環境fourside
 
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejsYusaku Kinoshita
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるdavid9142
 

Similaire à Node.js を選ぶとき 選ばないとき (20)

Nseg第32回勉強会
Nseg第32回勉強会Nseg第32回勉強会
Nseg第32回勉強会
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript FrameworkNode.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
 
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルJavaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
 
Aiming study#6pdf
Aiming study#6pdfAiming study#6pdf
Aiming study#6pdf
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
 
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションJavaEdge第3回ライブセッション
JavaEdge第3回ライブセッション
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門
 
僕の Serverless web application
僕の Serverless web application僕の Serverless web application
僕の Serverless web application
 
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作OpenLayersで始める地図の操作
OpenLayersで始める地図の操作
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascript
 
Jsのビルド環境
Jsのビルド環境Jsのビルド環境
Jsのビルド環境
 
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
Introduction of Rhodes
Introduction of RhodesIntroduction of Rhodes
Introduction of Rhodes
 

Plus de Ryunosuke SATO

Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~Ryunosuke SATO
 
How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~Ryunosuke SATO
 
Introduction for Browser Side MVC
Introduction for Browser Side MVCIntroduction for Browser Side MVC
Introduction for Browser Side MVCRyunosuke SATO
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景Ryunosuke SATO
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活をRyunosuke SATO
 
Social coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへSocial coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへRyunosuke SATO
 
Node.jsってどうなの?
Node.jsってどうなの?Node.jsってどうなの?
Node.jsってどうなの?Ryunosuke SATO
 
アジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたことアジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたことRyunosuke SATO
 
脱レガシー化計画
脱レガシー化計画脱レガシー化計画
脱レガシー化計画Ryunosuke SATO
 
Pusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフPusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフRyunosuke SATO
 

Plus de Ryunosuke SATO (17)

片手間JS on Rails
片手間JS on Rails片手間JS on Rails
片手間JS on Rails
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
gem の探し方
gem の探し方gem の探し方
gem の探し方
 
Rails あるある
Rails あるあるRails あるある
Rails あるある
 
はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~
 
How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~
 
Introduction for Browser Side MVC
Introduction for Browser Side MVCIntroduction for Browser Side MVC
Introduction for Browser Side MVC
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活を
 
Testable JavaScript
Testable JavaScriptTestable JavaScript
Testable JavaScript
 
Social coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへSocial coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへ
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
 
Node.jsってどうなの?
Node.jsってどうなの?Node.jsってどうなの?
Node.jsってどうなの?
 
アジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたことアジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたこと
 
脱レガシー化計画
脱レガシー化計画脱レガシー化計画
脱レガシー化計画
 
Pusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフPusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフ
 
ServerSideJavaScript
ServerSideJavaScriptServerSideJavaScript
ServerSideJavaScript
 

Node.js を選ぶとき 選ばないとき