Hub情報局@IT編集部の西村賢がRuby/Rails関連を中心に書いています。アプリはあるでしょうか」という質問に対して回答したところ、少しはてブが付いたりしたようです。Railsに限らないかもしれませんが、ちょっとしたサンプルコードや簡易なアプリというのはたくさんあるのですが、そこそこの規模のアプリ、あるいは実運用されているアプリで参考にできるソースコードとなると、意外にパッと思い付かなかったりします。「Railsアプリなら、これを読め」というべきアプリのリストがあればいいのにと、よく思ったりしています。そんなわけで、いま読むべきだと私が勝手に考えてGitHubのウォッチリストに入れているRails3アプリを、10個ほどリストアップしてみたいと思います(全部で11個ですが)。ほかにオススメなどがあれば、ぜひコチラで情報をお寄せくださいませ。Gitlabhttps://github.com/gitlabhq/gitlabhqGitHubクローンの結構大きなプロジェクトです。以下を見ても、どのモデルが何をやってるのか分かりやすいです。(※初出時、GitlabをGitHQと誤記していました。訂正してお詫びいたします)Shapadohttps://github.com/ricodigo/shapadoStackOverflow.comのクローン実装です。MongoDB(Mongoid)を使っていたり、今どきのソーシャルっぽい機能があれこれ実装されていて、参考になるかもしれません。以前VPSで動かしてみたことがありますが、Mongoさえ入れれば動かすのは簡単でした。)を見ると、割りと良く見かける「イケてるヤツ」が詰まっている感じで、それも参考になりそうです。Frameworkと名乗っているプロジェクトです。分散していたり、何かと素直なRailsアプリではないので、参考にするにはビミョウかもしれません。私はCMSとして注目しています。Railsアプリとしては比較的シンプルに見えますが、Gemのホスティングの部分だけをSinatraで実装していたり、HTTPのリダイレクトのところをRackアプリのミドルウェアとして実装していたりして、アドバンストな構成のRubyアプリケーションというのが参考になります。Rails3-Mongoid-Omniauthhttps://github.com/RailsApps/rails3-mongoid-omniauth実用アプリではなくチュートリアルを目的として作られたアプリです。Userモデルしかありませんが、今やRailsアプリでデファクトスタンダードとなった認証ライブラリのOmniauthの使い方の実例を見るという意味で参考になります。Spreehttps://github.com/spree/spree/オープンソースのECサイト向けアプリです。大きいRailsアプリですが、なんといっても、リアルに運用されている商用サイトが多いという意味で、これ以上の実用アプリはないかもしれません。サポートビジネスを展開しているだけあって、ドキュメントも充実しています。Spreeは海外サイトでしかメジャーでないと思っていましたが、国内にも採用事例はあるようです。Glassesは、Spreeを使って3カ月で構築されたサイトだそうです。2012で、開発をした白土慧氏が講演を予定しているようです。Redminehttp://www.redmine.org/言わずと知れたバグトラッキングシステムです。CRubyの開発でも使われています。すると、Ruby/Railsの外で最も知られたRailsアプリかもしれません。そのぐらい知られているアプリであるのに、生SQLを含む400行以上のメソッドがコントローラーに存在するプロジェクトだった時代があったそうですね。Redmine」を合わせて読むと勉強になります。Railsアプリに限らず、MVCはどうあるべきか、オブジェクト指向的にコードを整理するとはどういうことか、リファクタリングの定石にはどういうものがあるのか、という勉強になります。私は2年ほど前にこの本を読みましたが、いまこれを書きながら、もう1度眺め返してみようと思い始めています。WhiteHallhttps://github.com/alphagov/whitehall英国政府のポータルサイト「Gov.uk」は、なんと、オープンソースのRails3アプリで、GitHub上で活発に開発されています。実験的サイトとはいえ、すごいことです。人民の人民によるITシステムの所有、あるいはネット時代の参政権とは何かということを考えさせられます。いうと大げさかもしれませんが、ソーシャルコーディング時代を感じさせます。ポータルサイトのような、かつてならテンプレート言語で対応していたものでも、今どきはアプリとして実装する時代なのだなということも思ったりします。手元で動作させるのはちょっと面倒そうですが、Gov.ukに行けば実物が見れるので、参考になります。ポータルサイトなので、そう複雑なことはなく、やっていることはユーザーやコメントの管理、イベント情報などの管理という感じです。コミットを見ていると、意外にダメなコードが入って誰かがそれを直したりしているような様子も伺えて興味深いです。3.2.6で動いているようです。RPCのエンドポイントがあるなど、2004年頃を思い出します。実際イニシャルコミットを見ると、2005年1月20日となっています。歴史があるだけあってひと通りの機能が実装されているようです。world」のようなものですし、ブログの動作も良く知っているわけですから、そういう意味でTypoは読みやすいです。GitHubクローンのように巨大ではなく、ほどよい規模です。Herokuで動作させることもできるようで、インストールして、コードを壊しながら遊んでみたいところです。開発も活発なようで、ドキュメントやフォーラムが妙に充実しています。実用アプリとして良くできていて、「開発者グループ=ユーザーグループ」という古き良きオープンソースプロジェクトという印象を受けます。実は、これを書いている西村が、いま一番いじってみたいアプリです。コントローラーのアクションがいちいち長くて読むのが大変そうにも見えますが。CRMhttps://github.com/fatfreecrm/fat_free_crm比較的クリーンでシンプルなCRMです。キャンペーンやリード管理といったCRMに必要な機能はひと通り揃っているようです。プロジェクトのゴールに「開発者が容易に拡張できるクリーンなコードベースを提供することで、CRMのイノベーションに拍車をかけること」とあります。その言葉どおり、コードが非常によく整備されている印象です。ライセンスにGPLではなく、AGPLを採用しているところにも志を感じます。開発スタートは2008年11月と、もう4年近く前ですが、現状ではCapybara、Travis、FactoryGirl、Pryと、最近のモダンなベストプラクティスを取り入れています。古いほうからコミット履歴を読んでみたい感じです。ほかにオススメがあれば、ぜひコチラで情報をお寄せくださいませ。名前を記憶しておくコメント:西村賢@IT編集部の西村賢がRuby/Rails関連を中心にブログしています。書籍「誰でも身につく!暗算力」を読んでみた。未成年者略取ムチャか?男気か?部下も立て続けに。利用規約ITmediaはアイティメディア株式会社の登録商標です。