#はじめに
Webアプリケーションのフレームワークには、根本的な考え方があり、理念や原則が存在します。
本記事では、Ruby on Railsの理念や原則、そしてなぜそれが必要なのかを説明します。
#Ruby on Railsでは原則無駄のないコードを記述していくこと
Ruby on Railsでコードを書く時には、同じ情報を繰り返し記述することは避けるべきとされています。これ以降はRuby on Railsで掲げられている理念と、原則について説明します。
#DRY(Don’t Repeat Yourself)という考え方
DRYとは同じ情報を繰り返し記述、定義しないという考え方です。
同じコードを繰り返し書かないので、可読性の向上やコード量を減らすことによりアプリケーションの負荷を下げ、動作が早くなるという利点があります。また、修正工数も減りミスによるバグも少なくなります。
#CoC(Convention Over Configuration)という考え方
設定よりも規約を優先するという考え方です。
Railsにはコマンドが設定されそれを実行することでアプリケーションを作成していたかと思います。
ゼロから自身で設定するのではなく「設定よりも規約を優先」して作業していたということになり、これこそがCoCという考え方になります。
CoCを意識する利点としては、「すでに定義されている処理を利用する」ことで開発スピードが上がり質も担保できることや、規約は開発者同士の共通認識であるため可読性が向上することなどが挙げられます。
#ディレクトリの階層もCoCの考え方に則っている
ディレクトリ階層も規約に則って整理されています。
各ディレクトリの役割について以下に示します。
*後から生成されるディレクトリもありますが、以下はデフォルトの状態です。
###app
MVCに関するファイルなどを格納している、アプリケーションの主要ディレクトリ。
###bin
Binary Codeの略。コマンドなどで実行するファイルが格納されている。
###config
アプリケーションの設定関係のファイルが格納されている。
###db
データベースに関するファイルが格納されている。
###lib
libraryの略で、基本的なライブラリが格納されている。
###log
アプリケーションが動いている間の記録などのファイルが格納されている。
###node_modules
nodeのパッケージが格納されている。
###public
デフォルトで表示される画面の情報などが格納されている。
###storage
画像などをアプリケーション自体に保存する際に使用するディレクトリ。
###test
アプリケーションのテストを行う際に使用するファイルを格納するディレクトリ。
###tmp
アプリケーションが起動している際の一時的な情報を格納するディレクトリ
###vendor
イブラリ(Gem)などをアプリケーション自体にインストールする際に使用するディレクトリ。
#オブジェクト指向
オブジェクト指向とは、すべてを「モノ」として考える方針のことをいいます。
Ruby on Rails自体もオブジェクトの集合体であり、オブジェクト指向の考えに則って作られています。
モデル、ビュー、コンローラーはそれぞれ専用の役割を持ったオブジェクトであり、目には見えないが役割がはっきりとした処理で成り立っています。
すなわち、「モデル」「ビュー」「コントローラー」はそれぞれ専用の役割を担ったオブジェクトです。
#まとめ
Ruby on Railsに限らず、Webアプリケーションのフレームワークには、根本的な考え方には、無駄がなく、自分以外の人にも見やすいようコードを書くべきであるというものがあります。
これらはチームでの開発やアプリケーションに負荷をかけないなどの効率的に開発をしていくよう、フレームワークの開発者が道標を用意してくれているものです。
技術を磨いていく中に、仕事の全体の流れを見据えて開発することが求められますし、またエンジニアとしての重要な資質の1つであると思います。
以上です。