Rails(Rails)である。本連載では、このRailsの特徴や魅力を余すところなく伝えていく。Rails(Rails)である。RailsやLocomotiveによってRailsの魅力に迫っていきます。代表的なフレームワークCatalystとの比較、言語内DSLという概念など、Railsを理解していく上で重要となるポイントについても解説していく予定です。Railsを簡単に利用するための方法を紹介します。Railsを、統合開発環境としてはRadRailsを取り上げます。Rails(以下Rails)は、Rubyで記述されたWebアプリケーションフレームワークです。2005年12月に1.0がリリースされたばかりの比較的新しいものですが、基本的な部分は従来からあるMVCフレームワーク*と共通しています(図1)。使いやすさという意味では、これまで使われてきたフレームワークとは一線を画す部分があったため、非常に大きな話題になりました。Configuration」という点です。yourself」を省略したもので、「同じことを幾つかの場所に書く」といった重複した記述を避けようという標語です。『達人プログラマー』という書籍*に書かれている言葉で、これ自体は珍しくない考え方ですが、Railsはその徹底ぶりが顕著です。Configuration」は、Railsが広めた標語です。それまではConvention(規約)には重きが置かれず、むしろConfiguration(設定ファイル)の強力さと柔軟さを競っていたフレームワークでしたが、Railsは設定ファイル、特にXMLによる設定ファイルへの敵意を鮮明にしました。XML!」は、JavaのメジャーなフレームワークでXMLが多用されていたことに対するアンチテーゼでもあり、実際にRailsにはXMLの設定ファイルは1つもありません。数少ない設定ファイルでも、データベースの種類やアドレス、IDやパスワードを格納するファイルには、YAML*という非常に簡素なテキストによる記法が使われているほどです。設定ファイルの代わりにRailsが重視しているのは規約です。一般的にソフトウェア開発は、各アプリケーションの自由度が非常に高くなっています。ファイルの置き場所やクラス、変数の命名規則といったものを、言語やライブラリのレベルでかっちり規定しているものはほとんどありません。これらには「さまざまな環境でアプリケーションを動かせる」という利点がありますが、多くの場合、過剰な自由度になってしまいます。多人数で開発を行う場合や、開発者と保守担当者が異なる場合には、このような自由度の高さによって、アプリケーション全体での統一性がなくなり、どこに何があり何と何がどのように関係しているのかが分かりにくくなりがちです。したことを避けるため、フレームワークは多くのものを決め打ちにしています。「あらかじめルールが決まっていれば、それ以上悩む必要がなくなる」というわけです。Railsはそれを極端に進めており、多くのものが暗黙のルールとして決められ、それに従う場合には何も書かないまま本番用コードとしてデプロイ*されかねません。有名なのは、データベースとモデルオブジェクトとのマッピング用ライブラリ*ActiveRecordで、単純なものは「クラス名の定義を書くだけ」という人を食ったようなコードが本当に使われます。ActiveRecord::Baseendのようなコードがあった場合、これだけでリスト1のようなものが実行可能になってしまいます。ActiveRecordによって実行可能なコードその一方で、ルールに従わない場合も簡潔なコードでルールとの違いを記述できるようになっています。おかげで、プログラムが非常にコンパクトになり、しかも設定ファイルがなくても困らないようになっているわけです。この「簡潔なコード」も、Rubyというプログラミング言語の柔軟な構文とセマンティクス*により、単に短いだけではなく、非常に分かりやすいものになっています。このような特徴によって、Railsは「それまでのWebアプリケーションフレームワークよりも高い生産性を持つ」と大きな注目を集めているのです。このページで出てきた専門用語MVCフレームワークMVCはModel、View、Controllerの頭文字で、システムの中でビジネスロジックを担当するモデルと、表示や入出力を担当するビュー、モデルやビューをコントロールするコントローラーで構成されたGUI設計に用いられる概念。詳細は、以下のURLなどを参照。Languageの略で、「読みやすい」、「書きやすい」、「分かりやすい」という特徴を持った、構造化されたデータを表現するためのフォーマット。http://www.yaml.org/デプロイ開発したWebアプリケーションを利用可能な状態にすること。データベスとモデルオブジェクトとのマッピング用ライブラリこのマッピング用ライブラリをO/Rマッパーと呼ぶ。セマンティクス意味のこと。シンタックスと対になる用語。称して情報を盗む「ご注意!!OFFICEのプロダクトキーが不正コピーされています。Japanスマートジャパン3Dモデラボキャリア@IT自分戦略研究所エンジニアライフディルバートアプリITmediaねとらぼねこらぼついトピ!ITmediaはアイティメディア株式会社の登録商標です。