RubyフレームワークRuby On Railsとは?Ruby On Rails概論。設計思想と学習方法の紹介。
プログラミングの勉強を始めると何かと耳に入るのがRuby On Railsですが、今回はRuby On Railsとは何かという記事です。
Ruby On Rails, RoR, Railsなどなど様々な呼び方はありますが、Ruby On Rails(通称Rails)はRuby言語で作られたWebフルスタックフレームワークです。
フレームワークとは開発の補助ツールやインフラのようなもので、ある程度形の決まった実装を手間少なく実装する機能を持っています。
他のプログラミング言語でもLaravel, Spring, CakePHP, Expressなどなどのフレームワークがあり、RubyでもSinatraというRailsとは別のフレームワークもありますがRubyにおいてはRuby On Railsが実質のデファクトスタンダードとなっています。
プログラミングの世界には、いくつか同じようなWebフレームワークがありますがその中でもRailsは「DRY原則」「設定より規約」という二つの思想を大事にしており、これらの思想を守りながら実装していくことによりより少ないコード量で高速にWebアプリーケーションを開発することを可能にしています。
Railsを支える設計思想
設計思想というと少し堅苦しいですが、この思想を知っているのと知っていないのでRailsへの親しみやすさが変わります。特に他言語から来た学習者はこの思想に馴染めずなれるまで時間がかかる人も多いです(自分が書いていないコードでも結構気を利かしてうごかしてくれるので)。
DRY原則
DRYとは「Don't Repeat Yourself」(同じことは二度と繰り返すな)の略で、同じようなロジックのコードがシステム内に散乱されないように一つの共通部品にまとめておくことを言います。
実際のRailsのコードで言うとRailsではマイグレーションコードでカラムを定義してテーブルを作成することができます。
Railsで採用されているORマッパーのActiveRecordでは、モデルのクラスとテーブルを一対一で対応づけますがActiveRecordのモデルでは再度マイグレーションで定義したカラムを書く必要はありません。ActiveRecordはアプリの起動時に表定義を読み込むのでカラムを二回定義することなく開発を進めていくことができます。
このようにRailsではDRY原則を元にコードの重複を避ける設計や機能が提供されておりコードの記述量を減らしてシンプルなつくりのアプリケーションを作る手助けをしてくれます。
設定より規約
次はRailsの「設定より規約」と言う考え方についてですが、Railsでは設定(コードをかく)よりもあらかじめ決められたRailsの規約に沿ってコーディングをしていくとより少ないコードで開発を進めていくことができます。
例えば、 ブログページのCRUDを作りたいとなった場合にテーブルは複数形(blogs)、モデルのクラスは単数形(Blog)のように規約に沿って実装を行うとモデルにあえてblogsテーブルを使いますというのを書かなくてすみます。
他にもルーティングを定義する際にそれぞれのアクションをRESTFulな形で記述していくと、ビューやコントローラでそれぞれのルーティングのurlやパスを簡単に呼び出せるようになります。
下記のようにblogのルーティングを定義すると
resources :blogs
コントローラやビュー内で
blogs_path # BlogsController#indexのパス
blog_path([ブログID]) # BlogsController#showのパス
blogs_url # BlogsController#indexのurl
blog_url([ブログID]) # BlogsController#showのurl
のような形でurl,パスを取得することができます。
このようにあらかじめ決められたRailsの規約にそって実装を進めていくとより少ないコードで実装を進めていくことができます。
Railsを効率よく身につけるには?
ここまではRailsとは?というところに関して説明していきましたが、百聞は一見にしかずでこれからRailsを学んでいく方のためにRailsの勉強方法を紹介しておきます。
公式ドキュメント
Railsの基礎となっているRubyですが、Ruby自体がもともと日本発の言語なので日本語のドキュメントが豊富です。ちょっと自分の詰まっている部分でキーワードで検索すれば何件と自分の問題を解決してくれるサイトを見つけられるので割と勉強には困りません。
しかし、これらの情報は情報が古かったり、間違っていたり、体系だっていないことが多く効率が悪いです。じゃあどうすれば良いのとなるかもしれませんが、そういった場合はRailsの公式ドキュメントを読み込むのをオススメします。
Ruby on Rails ガイド:体系的に Rails を学ぼう
暇なときにどれかの項目をピックアップして目を通しておいたりすると、効率よくRailsの知識を身につけることができます。また、この公式ドキュメントに定期的に目を通しておかないとRailsの使い方をしらないあまりに無理な実装や誤った実装になってしまったりするので繰り返し目を通すことをオススメします。
検索でヒットした技術ブログなんかをよんでいるとこの公式ドキュメントをピックアップしただけのブログなんかも結構見当たるので、公式ガイドでまとめてインプットしてしまうのが良いでしょう。
Railsチュートリアル
Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう
こちらもRails学習者の間では有名ですが、ドキュメントとは異なり手を動かしながらRailsの機能について学んでいくとこができます。「こういう実装したいときは、こういう実装のやり方をする」というパターンを体験しながら学べるので一回やっておいて損はないです。
できればこちらも繰り返しトライできると知識の定着が違うので繰り返し行うことをオススメします。(というよりは一回だけだと不十分かなとも思います。)
ポテパンキャンプ
こちらはプログラミングスクールの紹介です。
ポテパンキャンプではRuby On Railsを使ったWebアプリケーションの開発を現役のWebエンジニアにコードレビューをしてもらいながら学ぶことができます。当スクールはカリキュラム完了後に現場でしっかりと働けることを目標にしているので残念ながら全くのプログラミング未経験だと受講することはできません。
ただし、独学でプログラミングを勉強した人であれば問題なく受講できるので先ほどのRailsチュートリアルを終えたあとなどに申し込むとプログラミングのレベルを現場で使えるまで一気にレベルアップすることができます。
未経験からの独学でも。Ruby学ぶならポテパンキャンプがオススメ
まとめ
以上、Ruby On Railsとは?というところとRailsの設計思想と学習方法についてまとめてみました。
設計思想については、内容について理解しつつも「ふーん、そういうものなのか」程度で頭の片隅においておいていただければと思います。Railsを触らないうちに説明されてもいまいち実感のわかない事項でもあるので、あまり深く考えずに後でふれた学習方法なども参考にしつつガンガン実践して行っていただければ「あのとき言っていたのはこういうことだったのね」とわかるようになってきます。
ここではRailsに触れる前の前置きとして色々と説明しましたが、プログラミングは何においても「コードを書くこと」と「コードを読むこと」が大切なので、今回のような概要は頭にいれておきつつガンガン実践を積んでいただければと思います。