「Ruby on Railsチュートリアル」が最高の学習教材だった

前回の記事で、2018年の目標は、Rubyを習得することを掲げてました。
で、宣言通り以下のRuby入門本を一通り写経含めやりました!

Rubyの基礎的な文法は大体理解しました。
今まで敬遠してたRubyで作られたOSSのソースも理解できるようになってきました(Fluentdとか)

が、読むだけだと身につき辛いし実際になにかに使ってみたいと思い、
いまさらではあるんですが「Ruby on Rails」を触ってみることにしました。

「いいチュートリアルないかなぁ」と探してみると、
Ruby on Railsチュートリアル というサイトを見つけました。
このサイトのチュートリアルが、プログラムの教材として非常によかったので紹介してみたいと思います。
けどRails界隈ではこのサイトは常識なのかな?いまさらかよってなったらスミマセン!

Ruby on Railsチュートリアルのよいところ

Ruby on Railsチュートリアルのよいところは、以下の4点だと感じました。

  • Webアプリの基礎を学べる
  • 比較的最新の環境で学べる
  • 実際の開発手法を学べる
  • 開発/本番環境を意識しながら開発を行える

それぞれ詳しく説明していきます。

Webアプリの基礎を学べる

Railsを使用して、Twitterのようなマイクロブログサイトを作成していきます。
作成の工程は

  1. 静的ページ作成(html/cssの学習)
  2. 動的ページ作成(テンプレートエンジンの学習)
  3. ユーザモデルの作成(DBアクセス、入力チェック、パスワードの保持方法の学習)
  4. ユーザ登録画面の作成(デバッグ方法、エラー処理の学習)
  5. ログイン機能の作成(セッション、クッキー、認証の学習)
  6. ユーザ編集画面の作成(認可の学習)
  7. アクティベート/パスワードリセット機能の作成(アクセストークン、メール送信の学習)
  8. マイクロポスト機能の作成(DBテーブルの関連付け、ページングの学習)
  9. ユーザのフォロー/フォロワー機能の作成(非同期処理(Ajax)の学習)

となってます。
これを見てもらえるとわかるように、
実際に業務で作成するWebアプリに必要な機能が一通り学習することができます。

htmlやcss、Rubyについても簡単な基礎からこのチュートリアルで学べるので、
言語初心者の方でもWebアプリの作り方を理解することができます。

途中に演習問題もあるため、考えながら進めることができ、より身になります。

比較的最新の環境で学べる

2018年3月現在、Ruby on Railsのバージョンは「5.1.5」です。
そしてこのRuby on Railsチュートリアルでは「5.1」で学べます。
つまり最新のバージョンで学習することができます。

ここが非常に驚いたところで、
どのチュートリアルも直近書かれたものでない限り、古いバージョンで書かれたものになってしまいます。
なので、バージョンの違いによるエラーが発生し、その対処に時間がかかります。
その対処も勉強のうちではあるのですが、ある程度の経験がないとその対処も難しく
初心者の方はそこで挫折してしまうかもしれません。

しかしこのチュートリアルでは、最新のRailsバージョンで学べたのでそういう問題で進めなくなることはありませんでした。
Railsのバージョンが進むごとにこのチュートリアルも追従をしているみたいなので、
そういった意味でもすごく良い教材だと思います。

実際の開発手法を学べる

このチュートリアルでは、テスト駆動開発で開発を進めています。
実際Railsを使ってみて思ったのが、テストが書きやすいのでテスト駆動開発にすごく向いてます。
この開発手法を用いて学習が進んでいくので、「実装する前にまずテストを書く」というのが自然になっていきます。

初心者の方に最初からこのテスト駆動開発を刷り込んでいくので
「どうしたら自動テストしやすいか?」を考えながら開発をしていき、
テストのしやすいプログラムを作るいいエンジニアを育てることが出来そうだと思いました。

こういった開発手法は個人で学習しているとなかなか意識しづらいのでとても良いと思いました。

開発/本番環境を意識しながら開発を行える

業務では「開発環境」と「本番環境」と呼ばれるものがあり、それぞれ設定など差異があるのが普通です。
複数環境がある場合、考えなきゃいけないことはいろいろあります。

  • ソースのバージョン管理
  • 環境ごとの設定の分け方
  • デプロイ

これらのこともこのRuby on Railsチュートリアルで学習することができます。
「ソースのバージョン管理」はGit(BitBucket)を使用し、Gitの使い方も基礎的なところが学べます。

「環境ごとの設定の分け方」はGemfileやメール送信機能(SendGrid)を通じて学べます。

「デプロイ」は開発環境ではCloud 9を、本番環境ではHerokuを使ってデプロイしています。
Cloud 9はAWSのクラウドIDEで、このIDE上で開発を行います。
なので個人の使用しているエディタによる差異も発生しづらくしていますし、
Herokuを使うことで本番インフラも統一することができます。

このようにWebアプリ開発についてだけではなく、
チーム開発や複数環境を意識して開発することを学ばせてくれる教材となってます。

最後に

これまで紹介したように、Ruby on Railsチュートリアルでは
ひとつのサービスを作るために必要なことを一通り学ぶことができます。
それはフロントからサーバーサイド(Herokuも含めればインフラ)まで一通りです。

この教材は、Railsを使う使わない関係なく、
これからWebアプリケーションを開発していく人にぜひおすすめしたいです。

またこのチュートリアルで作るWebアプリも教材としてよくできてるので、
Rails以外のフレームワークを学習したくなったら、このWebアプリを自分で作っていこうと思います!

では!