2012-02-01から1ヶ月間の記事一覧

node.jsで使える非同期コントロールフローライブラリ nue 0.4.0リリース

0.4.0をリリースしました。npm install nue でインストールできます。 https://github.com/nakamura-to/nue CHANGELOG 新機能 - nue.parallelでstep関数を並列実行できるようになりました。 新機能 - step関数の中で、this.forEach関数を使って配列の要素ご…

node.jsで使える非同期コントロールフローライブラリ nue 0.3.0リリース

0.3.0をリリースしました。npm install nue でインストールできます。 https://github.com/nakamura-to/nue CHANGELOG 新機能 - step関数の中で this.endWith(err) を実行してエラーでflowを終了できるようになりました。flowの最後のstepの this.err に thi…

例外についての質問に答えました

http://d.hatena.ne.jp/taedium/20111122/p2#c質問者さんが回答されたことに気づく仕組みってあるんですかねー?

nueで関数合成っぽいもの

underscore.jsには関数合成の機能があります。 var _ = require('underscore'); var greet = function(name){ return "hi: " + name; }; var exclaim = function(statement){ return statement + "!"; }; var welcome = _.compose(exclaim, greet); console.…

node.jsで使える非同期コントロールフローライブラリ nue その9 - 0.2.0リリース

0.2.0をリリースしました。npm install nue でインストールできます。 https://github.com/nakamura-to/nue CHANGELOG 非同期コールバックに渡されるエラーはNueAsyncErrorでラップして通知しデバッグしやすくしました。 ハンドルされなかったエラーはNueUnh…

node.jsで使える非同期コントロールフローライブラリ nue その10 - node-seqのサンプルと比較

GREEではnode-seqを使っているんですね。 http://www.atmarkit.co.jp/fsmart/articles/devsummit2012_01/01.html 気になったのでnode-seq(https://github.com/substack/node-seq/tree/master/examples)のサンプルをnueで実装したらどうなるか試してみまし…

node.jsで使える非同期コントロールフローライブラリ nue その7 - 0.1.0リリース

0.1.0をリリースしました。npm install nue でインストールできます。 https://github.com/nakamura-to/nue 前回ブログを書いた時点ではなんだかんだで800行くらいあったのですが、機能を削って200行くらいにしました。やっぱりコードは少ない方がいいですね…

node.jsで使える非同期コントロールフローライブラリ nue その8 - 例外ハンドリング

nueでは、例外(エラー)はflowの最後の関数でハンドリングできます。例外が起きた場合、処理は最後の関数に移り、this.errに例外を表すオブジェクトが設定されます。 非同期ワークフローにおける例外には2種類あります。1つめは、フローの中で明示的にthro…

node.jsで使える非同期コントロールフローライブラリ nue その6 - mapの必要性について

id:koichik さんがフロー制御のライブラリ(node-flowless)を作ったそうです。いやー刺激的です。 http://d.hatena.ne.jp/koichik/20120219#1329634800 上記エントリ中の次の文章に反応してみます。 あとは map() なんかの非同期版も重宝ではありますが,そ…

node.jsで使える非同期コントロールフローライブラリ nue その3

どうやら僕は間違った方向に進んでいたようです。シンプルに考え直してみると、parallelとかmapとかfilterとかいらない。もっとシンプルに非同期コールバックの待ち合わせに焦点を当てたほうが使いやすくなるはず。コードの1/3以上を捨てて、その2で示したサ…

node.jsで使える非同期コントロールフローライブラリ nue その4

非同期処理前と非同期処理後のコードで値をどう共有するか? nueでは2つの方法を提供します。 引数で渡す flowローカルな変数を介して共有する (グローバル変数とかflowよりも大きなスコープで共有する方法もありますが、ここでは取り上げません。) 1. 引…

node.jsで使える非同期コントロールフローライブラリ nue その5

単体テストのしやすさって重要ですよね。ここでflowがネスト可能であることが効果を発揮します。テストライブラリにmochaを使った場合のサンプルコードはこのようになります。 var flow = require('nue').flow; var fs = require('fs'); var assert = requir…

Doma 1.21.0 リリース

Doma 1.21.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

node.jsで使える非同期コントロールフローライブラリ nue その2

asyncblock(https://github.com/scriby/asyncblock)というnode-fiberを使ったライブラリがあります。こちらのREADMEの後半に、pure node版、async版、asyncblock版の比較コードが載っていますが、同等の処理を行うnue版も作ってみました。 次のものです。 va…

node.jsで使える非同期コントロールフローライブラリ nue その1

最近作っています(https://github.com/nakamura-to/nue)。だいたいできてきたんですが、ドキュメントが大変、というか英語が書けなくて苦しみ中です。。気分転換にブログで紹介します。 nueはnpmでインストールできます。現時点のバージョンは0.0.4。 npm …