Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Node.js/JavaScriptの情報収集手段 ~変化が激しいOSSは、直接GitHubをウォッチする

情報過多時代を生き抜くエンジニアの「情報収集術」 Node.js編

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/06/03 14:00

 良いアウトプットを出すには良いインプットが必要です。特に、OSSを使っている場合、OSSの進化は激しいので、インプットを怠らないようにしておく必要があります。ただし、どこからインプットをしたらいいのかわからないという方もいると思います。そこで、私が実施しているNode.js/JavaScriptの情報収集手段として、GitHubの活用方法、Twitterで誰をフォローしているか、各種新規ライブラリの見つけ方についてお伝えします。また、この情報収集手段はJavaScript/Node.jsにかぎらず、OSSを基本とするソフトウェア全般の情報収集に使える手段になっていると思いますので、ぜひチェックしてみてください。

目次

はじめに

 初めまして。Node.js日本ユーザーグループ代表の古川(@yosuke_furukawa)です。日本ユーザーグループ代表としての活動は二ヶ月に一度開催されるNode学園のオーガナイズと、一年に一度開催されるNode学園祭の開催です。また、io.jsエヴァンジェリストとして、毎週のio.js newsの記述やロードマップの公開等、io.jsを広める活動もしています。このような私が、Node.jsについて普段どんな風に情報収集を行っているかを紹介します。

Node.jsの現在

 Node/io.jsは変化が激しいコミュニティであると言われております。一つその例を示すグラフを見てみましょう。

主要パッケージマネージャのライブラリの登録数(Modulecountsで作成)
主要パッケージマネージャのライブラリの登録数(Modulecountsで作成)

 このグラフは、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月時点では、今後統合されることが発表されましたが、まだまだ分割された状況のままです。

  • Node.js Node.js本体のリポジトリ
  • io.js io.js本体のリポジトリ

 私は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といったリポジトリもありますが、著名な企業が出しているリポジトリは参考になることが多いので眺めることが多いです。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 古川 陽介(フルカワ ヨウスケ)

     Node.js 日本ユーザーグループ代表、 io.js Evangelist 、 io.js Contributor などに関わっている。  興味の範囲は Node.js に加えて WebSocket / http2 などの次世代プロトコル、 次のJavaScriptの標準であるECMAScri...

バックナンバー

連載:開発エンジニアの「情報収集術」
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5