基本的にはReactなどの他のプログラミング言語で開発の勉強などをしていましたが、それ以外の言語を学ぶことがあまりありませんでした。
最近ではReact、Vue、AngulerなどのWeb系プログラミング言語が多く使用されているため、Ruby on railsなどを改めて学ぶ機会がありませんでした。
ですので、改めて知識の幅を広げるためRuby on railsについて学ぼうと思います。
【初心者用】Ruby on railsとは
1. そもそもRuby on railsって何?
Ruby on railsはRubyというプログラミング言語がもとであり、Web系のフレームワークの一種です。
上記の言語は1995年に日本人によって作成され、日本で初めて作成された言語として知られています。
Ruby on railsは元となっているRubyと同じように、Webアプリケーションを開発をする際に必要な様々な機能を提供し、開発者が手軽にWebアプリケーションを開発できるようになっています。
Ruby on railsはMVCというソフトウェアアーキテクチャという概念を元に作成されており、Webアプリケーションの開発をModel.View,Controllerの3つの要素に分割して開発を進めます。
そうすることで、コードの再利用をすることが簡単になり、アプリケーションの保守性や拡張性などが高くなります。
一般的にMVCモデルの開発では、Model・View・Controllerそれぞれに以下のような機能があります。
・Model
Modelはアプリケーションが扱うデータの処理やデータの変更をViewに伝達する役割があります。
・View
Modelが扱っているデータを取得し、WebブラウザなどにUIへの出力をします。
・Controlller
Controlllerはユーザーから入力されたものをModelに伝えることが役割となっています。
Controlllerは基本的にはModel内のデータを操作することはありません。
MVCモデルは実際以下の様に動作します。
①クライアントからリクエストがControlllerに送られる
②Controlllerがリクエストを受領し、Modelに処理の実行指示を伝達する
③実行指示を受け取ったModelが処理を実行する
④Controlllerを介してModelが処理した結果をViewに反映する
上記の様にModelとViewを分けることにより作業の分担が行えるのですが、その反面仲介役のControlllerの負担が大きくなるという欠点があります。
また、Ruby on railsはCOC、DRY、RESTの3つを設計思想としています。
以下に3つの設計思想についてまとめます。
COCとはConvention over Configurationの略称であり、直訳すると設定より規約という意味になります。
例えるとユーザー情報をモデルをUserモデルとした場合、以下のようなルールに従い開発します。
・データベースのテーブル名はモデル名の複数形にする
・/usersというURLはユーザーの一覧を表す
・ユーザーID:UserをURLで表すとwww/users/Userとなる
上記のルールで記述することにより、細かく設定を紐づける作業を省略することができます。
これらの規則に従った場合は、プログラムに規律が生まれ以下のようなメリットがあります。
・複数の設定ファイルを書かなくてよい
・共通のルールがあることで他のエンジニアとスムーズなコミュニケーションができる
DRYとはDon’t Repeat Yourselfの略称で、同じコード・同じ情報を何度も書かず、1カ所だけに記述するという意味になります。
Ruby on railsがリリース初期から徹底して貫いている原則の一つで、開発者がDRYを守れるような仕組みが備わっています。
DRYを意識してプログラミングすることで、少ないコードで品質の高いアプリケーション開発をすることができます。
RESTとはRepresentational State Transferの略称で、機能ではなくリソースを中心として設計するという意味になります。
Webアプリケーションの設計概念の一つで、具体的には次のような設計を指します。
・Webアプリケーションを構成するすべてのリソースに一意のURLを付与する
・市井のURLを通してリソースを操作できる
RESTも基づいていることをRESTフルと呼び、シンプルで統一感
2. Ruby on railsのメリット・デメリット
Ruby on railsにはメリットが多くありますが、対応できないデメリットもあります。
以下にRuby on railsのメリットとデメリットをまとめます。
2-1. メリット
1.汎用性が高い
Ruby on railsは汎用性が高いフレームワークで、基本的にはWebアプリなどに使用されるのですが、ゲーム開発などにも使用することができます。
Windows・Macなどの異なるプラットフォームに左右されずに使用することができ、1度学習すれば様々な開発で使用することができます。
2.学習コストが低い
Ruby on railsは日本人が開発した言語ですので、他の言語よりも学習しやすことが最大のメリットになります。
上記の通りにRuby on railsの元であるRubyは、日本人が開発したので日本語の記事が比較的多いという特徴があります。
日本語の記事が多いということは、何か不具合やエラーなど詰まってしまった場合に、少し調べるだけで自力で解決することができます。
その点が初心者が挫折せずに進めるという点で、非常にメリットになるかと思います。
また、Ruby on rails自体がシンプルな構造で初心者でもわかりやすいフレームワークとなっています。
そのため、Ruby on railsのコードの習得が速いため、コードを早く書けるようになり1つのシステム・アプリを完成させるスピードが速くなります。
完成させることで達成感や学習の継続をしやすいのもこのフレームワークの魅力的なポイントといえます。
2-2. デメリット
1.処理能力が低い
Ruby on railsが処理能力が低いというデメリットがあります。
その原因としては、
・インタプリタ言語である
・初期状態ではスレッドの同時実行が1つだけにされており、複数の処理を並列に実行できない
上記の様にRuby on railsは、大量のデータを処理するシステム開発には向いていません。
3. まとめ
今まではRuby on railsはに関してはあまり調べていなかったのですが、日本人の開発した言語のフレームワークであり、学習コストが低いため一度使用してみたくなりました。
大規模な開発には向いていませんが、個人的な開発に関しては問題なさそうなので、現在学習中のものが終われば使用したいと思います。