こんにちは、summerwind です。
今日は「東京Node学園 4時限目」ということで、Node.js ハッカソンにきています。
今回の会場は @nifty エンジニアサポートさんにご提供いただきました。お菓子の差し入れなどもいただきありがとうございます!
さて、会場で Jxck 先生に「ぜひブログにもなんか書いて」と言ってもらったので、今回は先日リリースされた Node v0.7.5 の変更点について、いくつか簡単にピックアップして紹介したいと思います。全ての変更点については日本語訳した ChangeLog をご確認ください。
crypto モジュールに getDiffieHellman() 関数が追加されました
まずは、crypto モジュールに追加された getDiffieHallman() 関数を紹介したいと思います。
従来から crypto.createDiffieHellman() 関数を利用することで Diffie-Hellman 方式の共有鍵を生成することはできましたが、 今回追加された getDiffieHellman() を利用すると、より容易に共通鍵を用意することができます。
マニュアルには下記のような使い方が記載されています。
var crypto = require('crypto');
var alice = crypto.getDiffieHellman('modp5');
var bob = crypto.getDiffieHellman('modp5');
alice.generateKeys();
bob.generateKeys();
var alice_secret = alice.computeSecret(bob.getPublicKey(), 'binary', 'hex');
var bob_secret = bob.computeSecret(alice.getPublicKey(), 'binary', 'hex');
/* alice_secret and bob_secret should be the same */
console.log(alice_secret == bob_secret);
実際のコードの変更内容はコミットログで確認することができます。コードが気になる方はぜひこちらもご確認ください。
QueryString.parse() を高速化しました
見出しの通り、querystring モジュールのパース処理が高速化しました。具体的には split() や join() を利用してパラメータのキーと値を処理していた部分を、indexOf() と substring() の処理に置き換えたことで、高速化したようです。短くて分かりやすいコミットログもあわせてご確認ください。
#2762 net モジュールの close 関数にコールバックを追加しました
net モジュールの close() 関数がコールバックを引数にとることができるようになりました。これにより、HTTP サーバーや TCP サーバーが終了する際に指定の処理の実行が可能になります。
追加の発端になった Issue #2762 を見ると、開いているポートを探すためのサンプルコードがのっていたりしていて興味深かったです。ちなみにコミットログはこちらになります。
'make test' 時に src/ と lib/ に対して JSLint が実行されるようになりました
make test 時に JSLint が自動実行されるようになりました。コミットログを見ると、Ben Noordhuis が「1日20回ぐらいビルドしてるんだけど、こいつのせいで30秒ぐらいロスするから、戻せ」って書いていたりしていて、ちょっと笑ってしまいました。
こんな感じで、Node v0.7.5 では色々な細かい変更がなされました。
コミットログまで追って見ると、実際のコードの変更や、開発者同士のやりとりなどが見れてとても勉強になるのでオススメです。
そろそろ次の安定版である v0.8.0 のリリースも近づいてきているようなので、今後の更新も楽しみにしたいと思います。
それではまた。