はじめに
初めまして。Node.js日本ユーザーグループ代表の古川(@yosuke_furukawa)です。日本ユーザーグループ代表としての活動は二ヶ月に一度開催されるNode学園のオーガナイズと、一年に一度開催されるNode学園祭の開催です。また、io.jsエヴァンジェリストとして、毎週のio.js newsの記述やロードマップの公開等、io.jsを広める活動もしています。このような私が、Node.jsについて普段どんな風に情報収集を行っているかを紹介します。
Node.jsの現在
Node/io.jsは変化が激しいコミュニティであると言われております。一つその例を示すグラフを見てみましょう。
このグラフは、npmと、RubyGemsやPyPI、Mavenといった他のパッケージマネージャのライブラリの登録数を時系列で表したものです。緑のグラフがnpmですが、飛び抜けて増えているのが分かるかと思います。npmにはNode/io.jsのライブラリ、JavaScriptのライブラリが登録されており、そのエコシステムは飛躍的に増えています。変化が激しいコミュニティのため、日々、鮮度の高い情報をインプットしていくことが必要です。
一番の情報収集源はGitHub
基本的にGithubで情報収集しています。そこが一番の大元であり、"今何が起きているか"を知る上で直接的で分かりやすいからです。何が起きているのかを逐一知るために、GitHubのWatch機能を利用しています。GitHubのWatch機能を使うと、そのリポジトリにおける、issueやPullRequestなどの変更がメール経由で分かるようになります。私がWatchしているGitHubは以下のとおりです。
Node.js本体系
Node.jsのコア自身と、未来のNode.jsであるio.jsをWatchしています。Node.jsのリリースが滞りがちである状況に対して、Node.jsをforkして新しく進めたのがio.jsです。2015年の5月時点では、今後統合されることが発表されましたが、まだまだ分割された状況のままです。
私はio.jsの共同編集者でもあるので、Node.jsでio.jsに互換がない変更が追従されたら、io.js側にコントリビュートするためにも両方Watchしています。あと、Node/io.jsで面白そうなPull Requestが来たら中身をサクッと読んで、自分をフォローしている方に知ってもらうため、Twitterにシェアしています。
Node.jsが依存しているライブラリ系
V8やlibuvなど、Node.jsを支えているライブラリ群もWatchしています。V8はそのまま、Node.jsの中で使えるJavaScriptの構文や新機能に影響するので、特によく見ています。
また、libuvはNode.jsの非同期I/O処理を支えるライブラリなので、パフォーマンスに直結しやすいため、ここの変更も見ています。
http-parserはNode.jsのhttpをパースするライブラリなので、直接機能の増減はあまり無いですが、httpモジュールの性能に関連するのでWatchしています。
- v8 JavaScript実行エンジンのV8
- libuv クロスプラットフォーム非同期IOライブラリのlibuv
- http-parser httpのC parser
V8の本家のリポジトリはこちらですが、GitHubに移行するという発表はあるものの、まだ移行されていません、GitHubの方が見慣れているので、ミラーリポジトリを見て状況を確認しています。
npmのライブラリ系
変化の激しいNode.jsのコミュニティでは、そのライブラリもWatchの対象にしています。していますが、全部はそこまで見きれないので重要そうなものをざっと眺めるだけにしています。
- express Node.jsで一番著名なWebアプリケーションフレームワーク
- socket.io リアルタイムにメッセージを通信するライブラリ
- babel JavaScriptにまだ実装されていない新しい構文や機能を使えるようにするためのトランスパイラ
- browserify モジュールの参照解決をするためのNode.jsの仕組み(commonJS)をブラウザ提供してくれるライブラリ
GitHubのユーザー
Node.jsにかぎらず、有用なOSSをたくさん作っている有名なユーザーは定期的にWatchしています。GitHubでフォローをすることで定期的に最近の彼らの活動を眺めてます。
- Guillermo Rauch socket.ioの作者
- substack browserify、testlingの作者
- TJ Hallowaychuk Node.jsは辞めたと言ってるが、koa、coの作者でまだコミットがあるのでwatchしている
- Ryan Dahl Node.jsを最初に作った人物、長らく活動が見られなかったが、最近復活してv8-workerというリポジトリをメンテナンスしている
- Sindre Sorhus grunt、gulp、broccoli等のプラグインを超高速で作っている人物、彼なくしてプラグインの成長はないと思えるほど
- Domenic Denicola Promiseの仕様を作った人であり、WHATWG Streamの仕様を決めている人であり、Node/io.jsのObserverという沢山のロールを持つ人物
また、starseekerのような、GitHubでフォローしているユーザーがリポジトリにstarを付けると、メールで通知してくれるサービスがあります。このようなサービスを利用すると、そこから有用なライブラリを見つけることもできるので、オススメです。
主要企業のGitHubアカウント
Google、Facebook、Twitter、GitHubといった著名な企業は、定期的に見ていると面白いリポジトリを見つけることもあります。ここまで来るとNode.jsは無関係で、C、C++、golangやPHP、Scalaといったリポジトリもありますが、著名な企業が出しているリポジトリは参考になることが多いので眺めることが多いです。