EY-Office ブログ

EY-Officeの吉田裕美が、まだ Ruby on RailsやiPhone開発を行ってない技術者や技術系マネージャー向けに、技術や教育に付いて書いています。

2012-06-04 Ruby on RailsはWebアプリのベストプラクティス

Ruby on Railsを採用する理由としては 「高い生産性」が上げられますがその秘密はなんでしょうか? いろいろな理由がありますが、今回は Ruby on Railsが Webアプリケーション・フレームワークの発展の上に出来た一つのベストプラクティスだという話をしたいと思います。

Ruby on Rails は突然生まれたものではないのです

下の画像は、JJUG Cross Community Conference 2008 Fallというイベントの中で語られた 『JavaからRubyへ』へのスライドに私が加筆したものです。

JJUG Cross Community Conference 2008 Fallの『JavaからRubyへ』・アンド・ナウ 」より、 一部加筆

JavaでWebアプリケーション・フレームワークが作られるようになったのは2000年頃からでしょうか? 有名な Struts をはじめたくさんのフレームワークが登場しました。Webアプリが複雑化、大規模化するのに伴い、たくさんのエンジニアが自分の考え、知見をもとにフレームワークを発表したり、書籍が出版されました。上に写っている書籍はそれらのなかで、エンジニアたちに大きな影響が与えた書籍ばかりです。

Ruby on Rails は Ruby で書かれていますが、Java文化圏で生まれ育ってきたこれらの知見の上に出来ています。有名な例では Ruby on Railsで使われている ORM (Object-relational mapping) の Active Record は高名なマーチン・ファウラー氏の書籍 「エンタープライズ アプリケーションアーキテクチャパターン」(Patterns of Enterprise Application Architecture)に出てくるORMパターンです。それを Ruby ならでは動的なオブジェクト指向を駆使して実装したもので、モジュール名もそのまま使っています。

私も長いことWebアプリを作っていますが、Ruby on Railsの要素の設計思想は古典的なものが多い思います(表記や実装には新規性があると思いますが)。 たとえば MVC の View や Controller 部分は 古典的な Struts とそれほど大きくは変わりません、他の言語・フレームワークで開発をしてきた人にも抵抗なく入ってこれます。

このように、Ruby on Rails は 過去のWebアプリケーション・フレームワークの ベストプラクティス をまとまて作られたフレームワークなのです。過去に成功した知見、設計をもとにそれらをバランス良く取り入れていてまとめているころが高い生産性の秘密の一つだと言えると思います。

そして、ベストプラクティスは変化します

ベストプラクティス は 真理 とは違い、時代とともに変化していきます。 Ruby on Rails が進化し続ける理由の1つは Webアプリのベストプラクティスが変わって来ているからだと思います。

Ruby on Railsが生まれた 2004年頃は Web は人間が使うためのものでしたが、Web 2.0 (覚えてますか?) の到来と共に Webアプリは API として 他のソフトウェア から参照されたり連携するもになりました。 Ruby on Rails 2.0 では REST (Representational State Transfer) を始めいくつもの新しいものを導入しました。

また、昨今のHTML5, Javascript全盛の時代に対応し、Ruby on Rails 3.1 では Javascriptを簡潔に記述できるCoffee や 肥大化する CSS/Javascriptを高速に配信できる アセットパイプライン などが導入されました。

このようにRuby on Railsはフレームワークの改良だけでなくベストプラクティスを取り込み続けて進歩していくと思います。