Rails 初心者が最初にやることについて【Ruby on Rails-ルビー オン レイルズ】
初心者から上級者まで、広く愛されているフレームワークである「Ruby on Rails(ルビー オン レイルズ)」。
今回はRailsについて、
・Railsを始めたい
・Railsを始めたいが、どう始めたらいいかわからない
・Railsを少し触ったが次にどうすればいいのかわからない
こんな方々を対象に、私がどのように指針を立てているかなどを備忘録的なコラムとしてまとめました。
初心者・初級者・中級者・上級者の定義
まず、はじめに練度のものさしを記載してみます。現在ご自身がどの辺りにいるのかを参考にしてみてください。
初心者
プログラミングの基本的な部分は理解している
Railsについて興味があり、少し調べたことがある
Railsを少し触ったことがある
初級者
Railsの設計概念・Railsを使うメリットについて把握している
中級者
Railsの正しい書き方でサービスを完成させることができる
上級者
Railsによってあらゆるサービスを作ることができ、ソフトウェア品質の高いシステムを高速で作成することができる
ソフトウェア品質の定義は曖昧で、様々な要素が含まれますが、私は拡張性・保守性・可読性・効率性・セキュリティ・ユーザビリティの要素が特に重要だと考えます。
以上のことを踏まえて以降の章ではRailsの設計概念・中級者への道筋について書いていきます。
Railsについて
まず、Ruby on Railsとは、Rubyによって記述されているWebフレームワーク(プログラミング言語ではあらゆるものを作成することができるのですが、Webサイトだけを作る際に必要な機能をあらかじめ用意しているツールのことをWebフレームワークと呼びます。) のことで、素早く・簡単にWebサイトを作成できることで有名となっています。
Railsを使うメリット
Railsを使用するメリットとしては、以下の4つの項目が挙げられます。
書き方がある程度決まっているので、書き方さえ覚えれば迷うことなく、綺麗なコードでWebサイトを作成していくことができる
Railsでは、設計概念がしっかりと決まっており、それらを良く理解し、意識しながらコードを書くことで、迷わず綺麗なコードを書くことができます。なお、設計概念については後ほど詳しく説明します。
特定のコマンドを打つことによってプログラムを自動的に生成してくれる
具体例としては、コマンド上で
rails generate scaffold model column
と打ち込むことで、システム上でcolumnというオブジェクトを操作するための300行を超えるプログラムを自動で生成してくれます。これも、Webサイトを素早く作成できる要因です。
RubyのWebフレームワークの中でRuby on Railsが圧倒的に人気なので、Webの記事が多い
PHPなどの他の言語では、Webフレームワークと言っても幾つか種類がありますが、Rubyでは圧倒的にRailsが人気です。
なので、PHPの記事とRubyの記事では、PHPの記事の方が多いですが、PHPの一つひとつのWebフレームワークの記事とRailsの記事では、Railsの記事の方が多くなっています。記事が多いということは、わからない点があった際にネットでちゃちゃっと調べれば、その原因が見つかりやすいということも意味しています。
Web用のサードパーティーパッケージ(第三者が作成したプログラム。Rubyでは、Gemと呼ばれる)が多数存在している。
Gemの中には、管理者画面を作成するGem・ページング機能を簡単に実装できるGemなどが多数存在しているため、簡単に様々な機能を自分のサイトに追加することができます。
Railsの設計概念
次にRailsの設計概念についてお話していきます。「Railsのメリット」でも軽く触れましたが、Railsを勉強していく上で、この概念はとても重要です。また、Railsの設計概念は様々なフレームワークに影響を与えていますので、これを理解することは他のフレームワークを使用する際にも役立ちます。
Railsの設計概念のなかで代表的なものは、以下の3つです。
・MVC (Model View Controller)
・CoC (Convention over Configuration)
・DRY (Don’t repeat your self)
MVC (Model View Controller)
MVCとはModel・View・Controllerの略称で、それぞれ以下の役割を担っています。
★Model:システムのロジックを管理する
例えば、「記事のデータには、タイトルが存在していなければならない」「記事のデータには、タイトル・文章・執筆者が含まれる」「記事を投稿したら、自動的に投稿日のデータが付与される」など
★View:Controllerで定義したデータをもとにHTMLファイルを作成する
例えば、「記事の一覧をHTML形式に成形し、表示する」など
★Controller:Modelからデータを受け取り、Viewを表示する
例えば、「記事の一覧を取得し、記事一覧表示用のViewを表示する」「投稿した際に、データをデータベースへと保存する」など
MVCの構成にすることによって、どの処理をどこに記述すれば良いのかが明確になります。また、システムを3つに分割し、Model・View・Controllerそれぞれの担当者が一緒に作業しやすくなります。
しかし、「ViewでModelからデータを取得する」「Controllerでデータのチェックを行う」「Modelでデータの作成を行う」ということもでき、自分で決めなければいけない部分もありますので、十分に気をつけましょう。
CoC (Convention over Configuration)
日本語訳すると、設定より規約という意味です。
例えば、記事データに識別子の要素を付与する際に名前の候補がid、column_id、columnId、cidなどいくつか上がってしまいます。それらの設定をする際に、悩んでいる時間がもったいないので、Railsではデフォルトでidに統一しています。
他にも、規約に従うことで様々な面で悩むという時間を排除してくれているので、大きな時間短縮となります。
DRY (Don’t repeat your self)
これは、「一度書いたプログラムをまた書き直すのはよくないですよ」という意味です。
何も意識せずにプログラムを書いていると、同じような記述を何回も書いてしまいます。
Railsでは、それらを防ぐためにhelperと呼ばれるHTML生成機能を記述し、どのViewからも呼び出せる機能が存在し、他にも正しい書き方をすれば、プログラムを1回ずつ書き、後はそれを呼び出すだけといった状況になります。
ここまで、Railsの基本的な部分についてお話ししてきました。
Ruby on Railsが魅力的で、かつ、しっかりとした設計概念を持って作られたものであると理解していただけたかと思います。
中級者への道筋
と、ここまでは基本的な概念を紹介していきましたが、「こんなこと分かってる!」という脱初級者を目指す皆さまへ。
Ruby on Rails中級者になるには何をすればいいかを、実体験ではありますが紹介いたします。
ただ、初心者~初級者の道よりも、初級者~中級者になる方が、はるかに長い道のりとはなります。
まずは手軽に始めてみる!
先にも記載した通り、RailsはWebで検索すればいろいろと便利なサービスが公開されています。ここではそんな中でも、脱初級者向きの勉強ができるサイトを紹介していきます。
ドットインストール
https://dotinstall.com
動画形式でRails上級者の方と一緒にプログラムを聴きながら、勉強できるサイト。誰かに教えてもらいながら作業がしたい人にはオススメです。
プロゲート
https://prog-8.com
ブラウザ上で、実際に手を動かしながら勉強できるサイトです。また、様々なコースをクリアすることによってレベルアップが実感できるので、実際にプログラムを組みながら勉強していき、達成感をも味わえます。
Railsチュートリアル
https://railstutorial.jp
ドットインストールやプロゲートの領域より、大規模なサイトを作る場合はここです。工程ごとに詳しい説明あがり、実装させていく方法が満載のサイトです。かなり量があるので、まとまった学習時間を取れる方にオススメです。
これらのサイトを使うことになり、RailsによるWebアプリケーション作成の流れを掴むことが出来ます。
Rubyの勉強
Railsの勉強をしていれば、Rubyもある程度書けるようになりますが、正しく効率よく記述するためには、やはり、Rubyも勉強しなければなりません。先ほど紹介させていただいたドットインストールやプロゲートでも記述の勉強はできます。ただ、より詳しくRubyを知りたいという方には、書籍を購入しじっくり学ぶ必要があります。言語系の参考書は分厚く、理解するのが大変ですが、読了後は、間違えなくRailsもレベルアップしているでしょう。
おすすめの参考書として、私も実際に使用した書籍を紹介します。
Rubyの仕組みや便利やメソッド、実際にシステムを作成する流れなどが記載されています。様々なRubyのスペシャリストが各章を担当してあり、広く深く学ぶことができます。
実際にサイトを作って公開してみる
Rails・Rubyについてある程度書けるようになったら、実際にサイトをガンガン作っていくことが、やはり上達への一番の近道です。
最初は調べながら作成すると思いますので、時間もかかりとても大変です。しかし作りながら調べることで新たな知識も得ることができ、腕が上がっていきます。
そして、実際にWebアプリケーションが完成したらインターネット上にアップロードすることを強くオススメします。他者からのフィードバックを得られますし、何よりエンジニアとしての自信がつきます。
例えばHerokuというサービスでは、簡単にRailsのプログラムをアップロードして、公開することが出来ますので、興味のある人は使ってみてください。
最後に
Ruby on Railsの上級者への道のりは果てしなく長いですが、Railsを学び、Webアプリケーションを作成すれば、きっと楽しくなってくはずです。
Ruby on Railsの元であるRubyは「楽しくプログラムをしよう」という思想をもとに開発されたものなので、ぜひ楽しんで学んでいってください。