奥に向かってプログラムを書く、という行為
昔々、関数型言語をはじめにやったとき、こういう印象を持ちました。奥に向かって突き進んで戻ってくるような感じ。
その感覚がnode.jsでも味わえます。
node.js の場合、すべてのメソッドが非同期で実行されるので。
var foo = hoge(); var bar = piyo(foo); ...
とかいった、縦に書き方をしません。
コールバック関数を使って、
hoge(function(foo){ piyo(foo, function(bar){ ... } });
あるいは、Event Emitter と呼ばれるものを使って
var event1 = hoge(); event1.on('end', function(foo){ var event2 = piyo(foo); event2.on('end', function(bar){ ... }); });
といった形で書いていきます。この書き方をすると、自然とglobalオブジェクトを汚さない = 副作用の少ないプログラムが書きやすくなるんですよね。。。なんででしょう。
このインデントが奥まっていく様子が、なんともいえない心地よさを与えてくれます。