大阪Node学園 四時限目に参加した-


またまた、参加してから数週間たってしまいましたが、参加した記録を残しておきます!
前回の三時限目からちょうど1年ぶりぐらいの開催でした。
ただ、感想としては、、、とてもおもしろかった!!!

大阪Node学園 四時限目
開催日:2012/11/24(土)

内容としては、以下の様な流れでした!

・テストについて
・実務での実例(Slidrsについて)
・yeomanについて
・東京Node学園祭参加レポート


テストについて

@craftgearさん
サーバサイドのテストはフレームワークの紹介程度であとはクライアントサイドのブラウザテストの紹介でした。個人的にもブラウザのテストって、難しいなーと思っていたのでフレームワークの使い方などとてもわかり易かった。testacularがよさそうなのと、MVCフレームワークも色々出ているけどangular.js がよさそうだなと思った。

【サーバサイド】
テストフレームワーク:mocha, expect.js(chai.js)

【ブラウザテスト】
testacular (node 0.8 over)
Angular.jsを採用している

Testem (node 0.6 over)
実行結果をブラウザで表示できる

Angular.jsの機能テスト(e2eテスト (End to End)のテスト)が使いやすい
Angular_scenario.js(Angular.jsに同梱されている)

angular.js の実装例で用意されてる機能テスト(e2e)参考
https://github.com/angular/angular-phonecat
https://github.com/angular/angular-seed


実務での実例(Slidrsについて)

@kumatchさん スライド資料

Nodeの利用したサービス(スライド共有サーービス)での環境構築から実際の中身の実装までの結構細かい内容を説明してくれた。実際のサービスで使用している例だったので、Nodeを使う上でのnginxの設定方法やNodeのデーモン化など、本番運用でのキーポイントをいくつも挙げていただき、がとても参考になった。

【nginxの設定】

  • try_files
    (メンテナンスページなどへの切り替え)
  • X-Accel-Redirect
    (大きなファイルをユーザへダウンロードさせる時などはnodeがシングルスレッドなのでnode自身がファイル転送でロックされるのを防ぐため、ファイルを生成したあとはnginxへレスポンスを返させる)

【node.jsのプロセスの管理】
・supervisord
pythonで作られたもの。簡単に利用できる!!
※自分はPerlで利用するときは「daemontools」を使ってるなー

【アプリケーションはexpress3 で開発】
2.x -> 3.x マイグレーション情報

【Redisを利用】
キャッシュなどの保持に使っている

【MongoDBを利用】
データストレージとして使用している。
monkを使っている(MongDBを簡単に叩く時に便利な簡易的なツール)
mongooseではない

【クライアントサイド】
テンプレートエンジン:jade
クライアントJSライブラリ:knockout.js

依存するモジュールも解決できる
Node/AMD (サーバ/クライアント) 共通化モジュールを書く
AMD (Asynchronous Module Definition) は、Javascript のコードをモジュールとして定義して、非同期ないし遅延ロードするための仕組みです。

【Node,ExpressのTips】
●expressのresponseオブジェクトを拡張できる

    app.response.send401 = function (realm) {...};

●initialize function

【route.js】
module.exports = function(myapp) {
    var routes = {
        index: function(req, res, next) {...}
    };
    return routes;
}
【app.js】
var routes = require('./routes')(myapp);
app.get('/', routes.index);

●ガーベジコレクション
node.jsのガーベジコレクション 処理が落ち着いた段階でGCが走る。(アクセスが終わって数秒後に)

●nodeの起動オプションで、任意のタイミングでガーベジコレクションを発生させることが出来る

起動する時に以下のオプションをつける
% node --nouse_idle_notificatio --expose_gc app.jp
実際にGCをかけるときはプログラム上で以下のようにする.
global.gc();

http://devjar.me/post/22886448979/manually-run-gc-in-node-js

【node.jsのメモリ調査ツール】
node-memwatch

【おすすめ本】
「RESTful Webサービス」 オライリーの本
「Node.js入門」


YEOMANの紹介

yeoman公式
yeomanのソース

クライアントサイドのテスト/ビルドツール
railsのような機能がある.

強力なscaffolding
cofeescript sass compass を自動でコンパイルする
構文チェック(jshintを使った構文チェック)
画像最適化
自由なテンプレート
自動リロード(ファイルの変更を監視HTTPサーバの自動うでリロード)grunt.js
パッケージ管理(Twitter Bower)


東京Node学園祭参加レポート

この報告会の内容がいつも大阪Node学園で楽しみ。。
今回の東京Node学園祭は特にホームページを見てもわかるようにすごい豪華なメンツ。
Ustreamのビデオとスライドの資料もあるので、今後見てみようと思う!

【FaceBookでコメント】

comments

Powered by Facebook Comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です