東京Node学園 1時限目のアウトラインメモ
東京Node学園 1時限目
~サーバサイドJavaScriptの幕開け~
Togetter - #tng1のまとめ
タイムテーブル
時間 |
ご挨拶
Node.jsについては著者のブログを読む
Node.jsの目的はスケーラブルなネットワークプログラムを作成する
既存のI/Oライブラリがないため、位置からブロックしないライブラリを作成することができる。
ECMAScript5時代のJavaScript再入門
増えた機能
JSONサポート
配列のイテレーター
Getter, setter
Strict mode
5thは誰のためのもの
独自仕様の整理してAjaxなどから大規模なものも増えてきた。
多人数の開発やコードのりユーズのための整理
非同期処理
JavaScriptは非同期処理を書きやすいけどネストが深くなる。
JSDeferredライブラリで縦に非同期処理がかけるのとエラー処理を最後にまとめて書くことができる。
Property Descriptor
Setter/Getter
ObjectのFreeze/Sealでアクセスレベルの指定
Object.create(),cloneなど
Objectの拡張はライブラリでも似たようなことが可能だが、ESでの仕様としてあることで共通知識として利用できるため可読性などが向上する。
PhotoShare
サーバー側はRuby
HTTP経由でアプリテストすると時間がかかる。
ES5によって独自から共通へ
『非同期プログラミングの改善』のエッセンス
http://www.slideshare.net/koichik/node1
Node.jsの非同期スタイル
イベントリスナ・スタイル
onメソッドでイベント
コールバック・スタイル
APIの最後にコールバック関数を渡す
(プロミス)
今はない
Deferredみたいなメソッドチェーンもできた
コールバックスタイルの問題
無名関数を使うとネストが深くなってしまう
関数名をつけて使うとgotoもどき
try..catchがうまくいかない
改善するには
コールバックと無名関数を分離する
コールバックの役割は「次」の無名関数を読み出す
その無名関数は「アクター」と呼ばれる
アクターとコールバックを結びつける
フロー制御モジュールライブラリを使う
複数のアクターを受け取ってって、アクターにコールバック(next)を提供する。
フロー制御を導入すると
ネストが深くならない
可読性が向上する
エラー時のルーティング
アクターごとのエラー処理をしたくない
エラーが起きたら途中のアクターを飛ばす
Nodeにおけるテスト手法
Nodeにおけるテストの考え方
Assertion
require(“assert”);
Testing フレームワーク
require(“should”);
obj.should.test(“”)
Objectを拡張して、列挙されないようにしてる
require(“expresso”);
赤いシャツの人が作った
jscoverageの出力
tearDownとかない
require(“nodeunit”)
Unit系のモジュール
qunitみたいな感じ
ブラウザでも動作する
exportの代わりにthisを使うことで、どちらでも動作するコードがかける
sandbox機能
CI的な機能もあるよ
クライアントとサーバサイドどちらも同じようにかけるのは大きな利点になる
require(“Vows”);
非同期に適してる作り
require(“tobi”)
ブラウザ的なものをシミュレートしてテスト(envjsみたいな)
LT大会
Kinect + node.js + Audio Data API でテルミンみたいな楽器を作る @hakobera
http://d.hatena.ne.jp/scalar/20110324/1300983209
kinnect hackatonではXBOX360所有者がで2/20
kinect+node.js+Socket.IO
Kinect -TCP/IP - NodeJS – Socket API – ブラウザ
Kinect.jsの作成
C++実装 -> Javaラッパー -> Rhino -> JavaScript
JavaScriptでkinectで動くものが帰る
DSJ(デバイスサイドJavaScript)
現在の欠点
遅い
使ってるラッパーの制限
node.jsではない
node.jsによるマルチプレイヤーネットワークゲームの可能性 @ndruger
http://www.slideshare.net/ndruger/nodejs-7375453
リアルタイム→Node.jsなら簡単
サーバークライアントで693行程度で簡単にかける
敷居が高かったものが手軽に作成できる時代
他の参加者のまとめ
東京Node学園 1時限目にいってきた – Web::Service::Blog->new( user => ’hide_o_55’ )
東京Node学園1限目行ってきましたメモ – y-kawazの日記
詳細に書かれているので参考になる
感想
会場(リクルートアネックス1ビル B1F)も伴ってか何かゆったり広々な感じであんまりガツガツとした雰囲気がなかった。角度、距離(文字サイズなども)的にスライドを見るのがつらい部分もあった。
『非同期プログラミングの改善』のエッセンスとLTが面白かった。
時間
題目
発表者
Ust
19:00-19:25
開場
19:25-19:30
ご挨拶 / 5分でわかるNode.js
@meso
#1 04:42AM
19:30-20:00
ECMAScript5時代のJavaScript再入門
@masuidrive
…
20:10-20:40
『非同期プログラミングの改善』のエッセンス
@koichik
…
21:50-21:20
Nodeにおけるテスト手法
@Jxck_
#2 05:49AM
21:30-21:50
LT大会
Kinect + node.js + Audio Data API でテルミンみたいな楽器を作る
@hakobera
…
「node.jsによるマルチプレイヤーネットワークゲームの可能性」
@ndruger
…
-22:00
完全撤収
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。