Rails4でGoogle Map API連携アプリを開発する

Railsの思想についてちょっとご紹介

RailsはデンマークのプログラマのDavid Heinemeier Hanssonさん、通称DHHが発表したWebアプリケーション開発のためのフレームワークです。Rails自体は2004年に発表されたそうで、日本では2006年頃から急速に広まってきたようです。

Railsの思想

Railsは以下の4つの思想を強く打ち出しており、順番にそれぞれの概念についてちょっとだけご紹介しておきます。

CoC(Convention over Configuration)

設定(Configuration)より規約(Convention) という意味。Rails以前のフレームワークでは、システム開発をする上で、各種設定情報を別に行う必要があるケースがありました。

例えばSNSのようなアプリケーションをRailsを使って開発する場合、データベースへのユーザの追加、削除、検索といったことを実現する上で、Railsでは以下の様な規約にのっとって開発することが求められます。

  • データベースのテーブル名はモデル名の複数形にする。モデル名がUserの場合には、データベース上ではUsersとなる
  • http://xx.xx/users というURLは、社員の一覧を表す。※最後のuserが複数形です
  • ユーザIDの1番を表示するURLは http://xx.xx/users/1 となる

色々と決まり事が多いので、堅苦しいような印象を持つ人がいるかもしれませんが、従来のフレームワークではこういった規約がなく、開発する人が自由に出来すぎるあまりに、開発者ごと、あるいは、システム開発の現場ごとで色々な混乱が生じてしまうことも事実あります。

Railsはこういう規約があるからこそ、Railsを使った開発者はその規約を抑えておくことで、余計なことに意識を取られることなく、開発により専念できる状況になるのと、Railsを使ってる人同士で、共通のルールでコミュニケーションが取れるというメリットがあるかと思います。

DRY(Don't Repeat Yourself)

同じことを繰り返さないというような意味になります。情報の重複をなくし、1つのことは一箇所だけに記述します。

従来のWebアプリケーションフレームワークでは、データベースの項目名を設定ファイルに記述することが一般的でしたが、Railsは起動時にデータベースの項目名の一覧を取得しにいくことで、DRY(Don't Repeat Yourself)という原則を守ってます。

この原則を守ることで、変更が生じた場合に、「あっちを修正して、その後に、この設定ファイルを変更して、さらに・・・」というような何箇所もの修正を強いられることがないため、メンテナンス性が高いシステムが出来上りやすくなります。

その他の思想

RailsというWebアプリケーションは、Rubyというプログラミング言語で書かれてることが大きく影響してると思うのですが、システム開発をする上で必要となる動作確認のためのテストについても、自動的に行うという自動テストの文化を重要視してます。

今回は触れませんが、Railsの初期プロジェクト設定をした段階で、テストを実行する環境やテストのためのコードのひな形が自動生成されるようになっており、こういう部分もRailsの思想の1つかと思ってます。

最後に簡単なまとめ

Railsでの開発の参考書籍の表紙もレールに乗った電車のイラストが描かれていたりしますが、Railsでの開発をする際に、レールに乗る というような表現がよくされます。レールに乗ることで、開発者同士で共通認識が持ちやすくなるため、複数名でのチーム開発をする際に効率よく開発を進めることが出来ます。

Ruby以外のプログラミング言語、例えば、PHPのようなプログラミング言語で書かれたWebアプリケーションフレームワークではRailsのこういう考えに影響されてるものがあります。PHPで書かれたWebアプリケーションフレームワークでRailsの影響を受けてると思われる代表的なものがCakePHPです。