特集
» 2011年02月24日 00時00分 公開

Rails情報源の歩き方:要チェックのRails関連情報源はここ! (1/2)

Ruby on Railsは英語なら情報が豊富にあります。ただ、そもそもどこを見ていいのか分からないという方も多いのではないでしょうか。ここでは重要な情報源となり得るサイトを紹介します(この記事はRailsDevCon2010で西村が行った発表をベースにしています)。

[西村賢, 松田明,@IT]

本家サイトは“ガイド”が要チェック

 まず当然、Ruby on Railsの公式サイトがあります。ここはRuby処理系や関連ライブラリのダウンロードページへのリンクやドキュメント、入門解説、ブログを始め、スクリーンキャストなどがあります。新バージョンのリリースやセキュリティ情報などは、やはり本家ブログが第一の情報源です。

 この後にも優良なスクリーンキャストサイトを紹介しますが、ここを起点にするのも良いでしょう。「15分でブログを作る」という、Rails一躍有名にしたプレゼンテーション動画も見られます。最初にDHH(Railsの生みの親のDavid Heinemeier Hasson)が行ったRails 0.5によるもの(mov動画)や、その後にRyan Batesさんが作り直したRails 2.0のもの(mov動画)があります。Rails3が出てしばらく経った今となっては、どちらも歴史的な意味しかありませんが、これからRailsを学ぼうという方であれば、特に後者のスクリーンキャストは必見だと思います。

Ruby on Railsの公式サイト Ruby on Railsの公式サイト

 公式ドキュメントのほかに要注目のコンテンツは、「Rails Guides」です。最新バージョンの3.0.4にも対応していて、図も豊富です。日本語の翻訳は残念ながらありませんが、非常によく書けた入門ガイドです。書店に並べれば、Ruby関連書籍としてランキングで常に上位に入るのではないかというぐらいの品質です。Railsのドキュメンテーションは執筆、翻訳ともにGitHub上の「lifo/docrails」で行われています。これ自体、オープンソースと同じ方法で維持・管理されていて、フォークして誤植パッチのpullリクエストを送ったり、翻訳パッチを書いたりという参加が自由にできたりします。別にRailsコミッタでなくても構いません。われこそは、という読者は部分的にでも日本語化すると喜ばれるかもしれません(ただ、ここは議論が分かれるところで、結局中途半端に訳された古い資料が残るだけなら、むしろいちばん参照すべき英語のものだけのほうがマシだという人も少なくありません)。

入門概説として必読ともいえる「Rails Guides」 入門概説として必読ともいえる「Rails Guides」
図やコード例が豊富で分かりやすい 図やコード例が豊富で分かりやすい

最新動向をチェック「EdgeRails.info」

 Edge Railsと呼ばれるRailsの最新版について、いち早く新機能を紹介しているのが「EdgeRails.info」です。もともと、Ryan Daigleさんらが個人的にブログに書いていたシリーズを独立したサイトにしたものですが、ちょっと更新が滞りがちのようです。ただ、もともと更新頻度が高いわけでもなく、2011年に入ってからも不意に更新されたりもしているので、要チェックかもしれません。あるいはアーカイブページにあるタイトル一覧から気になるトピックを拾うのも良いと思います。

Railsの最新の機能をいち早くまとめている「Edge Rails」 Railsの最新の機能をいち早くまとめている「Edge Rails」

GitHubの公式レポジトリを追いかける

 Ruby on Rails関連のプロジェクトの公式レポジトリは、GitHub上の「rails」というグループアカウントの下にあります。「rails」プロジェクトとしてRails本体もありますが、ActiveRelationという名称でRails3に入った「arel」もライブラリのプロジェクトとして存在しています。

 手元にRuby on Railsのソースコードを取ってきて開発の様子を見るなら、

$ git clone https://github.com/rails/rails.git
$ git pull
$ git log -

などとして、コミットログを見ることができます。

Ruby on Railsのコミットログの表示例 Ruby on Railsのコミットログの表示例

 バグ情報などは、GitHubとは別に公式のBTSがあります。「これはRailsのバグかも?」と思ったら、まずはここをチェック。そして自分が未報告バグを踏んだと思ったら、Twitterでつぶやいたり、ブログに書くよりも、まずこちらに報告する、という場所です。Rails開発者の松田明さんによれば、最近はスパムが多くて使いづらいということですが、今のところ唯一の場所なので、要チェックなことに変わりありません。

Ruby on Railsの公式のBTS(バグ・トラッキング・システム) Ruby on Railsの公式のBTS(バグ・トラッキング・システム)

GitHubではウォッチ数に注目

 OSSプロジェクトのホスティングサービスとして、GitHubはデファクト・スタンダードの1つとなっています。特にRuby系ではその存在感は圧倒的で、GitHubにリポジトリがないRubyライブラリはないといってもいいほどです。

 以下の図は、Franck Cuny氏らが作成したGitHubコミュニティのネットワークです。2人以上にフォローされているユーザー、1度以上フォークされているリポジトリをノードとして、その接続具合を視覚化しています。GitHubが協業の場となっていることが良く分かりますが、中でもRubyは接続が網の目のようになっています。これはPHPがプロジェクトごとに島宇宙のように存在しているのと好対照で、こうした協業の活発さについてDHHは、成熟したテスト文化の存在により、Rubyではテストが付属しないコードが少ないからだと指摘しています。テストがあるから「他人のプロダクトにも気軽にコミットしあう文化」(松田氏)があるのだ、ということです。

 もちろん、GitHub自体がRuby on Railsで書かれていたり、GitがRails利用のデファクトに近い存在になっているなど、もともと文化的親和性が高いこともあるかとは思いますが。

GitHub上の1万6443個のノードの接続を地域別、言語別で可視化したもの GitHub上の1万6443個のノードの接続を地域別、言語別で可視化したもの(オリジナルの投稿
Rubyコミュニティの可視化 Rubyコミュニティの可視化
PHPコミュニティの可視化 PHPコミュニティの可視化

 上のグラフィックのような可視化も面白いですが、GitHubはより実用的な「コミュニティの見える化」もしてくれています。特に重要なシグナルを可視化してくれてるなと思うのが、「ウォッチ数」です。そのリポジトリを何人がウォッチしているかの数字が「フォーク数」とともに表示されています。ウォッチはTwitterのフォローと同じで、気になるプロジェクトがあればウォッチリストに入れることができます(これとは別に各ユーザーをフォローすることもできます)。プロジェクトをウォッチすると、コミットやコメントのやり取りがタイムライン(ダッシュボードのNews Feed)に流れてくるようになります。さすがに大量にウォッチして、その動向をダッシュボードで眺めるという使い方は現実的ではないかもしれませんが、気になったプロジェクトをブックマーク的にウォッチする人は多いようです。Facebookの「いいね!」やTwitterのファボリのように「応援」や「ご祝儀」の意味もあるのではないかと指摘する人もいます。

右上の2つの数字のうち左側がウォッチ数、右がフォーク数。ウォッチ数の数字や伸びを見れば、注目具合がある程度分かる 右上の2つの数字のうち左側がウォッチ数、右がフォーク数。ウォッチ数の数字や伸びを見れば、注目具合がある程度分かる

 ともあれ、ウォッチ数が1000以上あるなら、それは相当に注目されているプロジェクトです。もちろん、一時期は人気があったものの、その後プロジェクトが休眠状態というケースもあり得ますから、一概にウォッチ数だけでは判断できません。パッとレポジトリのページを開いたときの目安ぐらいに考えると良いかもしれません。

そもそもプラグインはどうやって探すの?

 GitHubを見れば、注目度や開発の活発さが分かるとはいえ、そもそもどうやって目的のプラグインを探せばいいの? という疑問があるかもしれません。1つの答えはコミュニティに聞くことだと思います。下調べなしにメーリングリストで聞いても、「Let me google for you」(意訳:ググレカス)と言われたりするかもしれませんが、Railsに詳しい人が集まるような場に行って、「認証系プラグインって、最近何がいいの?」ということを聞いてみるのはありかもしれません。

 「最近」というのは、たぶん結構ミソです。Railsの世界は進化が速く、次々に○○系プラグインのトレンド、もしくは“鉄板”が入れ替わります。ですから、実際にいろいろと実務で使っている人に聞くのがいちばん確実で、どのプラグインのどういうところが優れていて、どのプラグインは、どこが面倒なのかという答えも返ってくるかもしれません。もちろん、自分が業務などで使ったり評価したプラグインについて、パッチを書いたり、使い方やクセをブログに書く、イベントで話す、メディアに寄稿するといった活動がオープンソースのコミュニティを支えているのは言うまでもないと思います。ですので、一方的に情報を得ることを考えるのではなく、自分にできる共有や貢献の方向性を考えるのが自然だと思います。

 ちなみに、上記公式サイトのRailsGuideも、もともとはたった1人の貢献からスタートしたプロジェクトだそうです。

目的別に探せる「The Ruby Toolbox」

 目的別に同一ジャンルのプラグインを一覧できる「The Ruby Toolbox」も便利です。例えば、「ActiveRecordでデータを暗号化するプラグイン」なら、以下のように一覧されます。GitHub上でのウォッチ数やフォーク数に加えて、ダウンロード数や最後のコミットがいつ頃だったも表示されていて、非常に分かりやすいです。業務で使うなら、最終的には2つ、3つはコードのクリーンさや機能・性能比較をするでしょうが、その候補を出すには十分使えそうです。

目的別にRubyのライブラリ(Railsプラグインも含む)を探せる「The Ruby Toolbox」 目的別にRubyのライブラリ(Railsプラグインも含む)を探せる「The Ruby Toolbox」
例えば、ActiveRecordでデータを暗号化するプラグインで見てみると、どんな実装があって、どれが人気なのかがひと目で分かる 例えば、ActiveRecordでデータを暗号化するプラグインで見てみると、どんな実装があって、どれが人気なのかがひと目で分かる

Rails3やRuby1.9対応は?

 まだ当面はRuby 1.8から1.9へ、あるいはRails2.3からRails3への移行期なので、プラグインの互換性は気になりますよね。そういうときに使えるのが、「RailsPlugins.org」です。このサイトではプラグインごとに、

  • Rails3対応か?
  • スレッドセーフか?
  • JRuby対応か?
  • Ruby1.9対応か?

ということを表示してくれます。現在630個ほどのプラグインの状況を追跡していて、ユーザーからのフィードバックやコメントも表示してくれるので、どういう状況で動かないと言ってる人がいるのかも分かります。そのプラグインの開発者自身が、「動くはず」と言っている場合もあります。

ライブラリのRuby1.9やRails3への対応状況が分かる「RailsPlugins.org」 ライブラリのRuby1.9やRails3への対応状況が分かる「RailsPlugins.org」
個別のライブラリについて対応状況が分かる。ユーザーの報告も投稿、一覧できる 個別のライブラリについて対応状況が分かる。ユーザーの報告も投稿、一覧できる
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。