Railsチュートリアルを1ヶ月かけて1週目を終えた感想とまとめ

プログラミング

Railsチュートリアルとは?

Ruby on RailsというRubyの有名なフレームワークを使って、Twitterアプリを作成する手順を掲載しているRuby on Railsのチュートリアルサイトです。私がWEBエンジニアに転職する際にも活用させていただきました。
※以後、Ruby on RailsをRailsと記述します。

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう
SNS 開発を題材にした大型チュートリアル。プロダクト開発の 0→1 を創りながら学びます。電子書籍や解説動画、質問対応、法人向けサービスも提供しています。

構文などはもちろんですが、開発方法だけでなく、環境構築方法、バージョン管理ツール(Git)の使い方まで網羅しているのが特徴です。

最終的には自分のローカル環境で作成したWEBアプリケーションをインターネットに公開することまでサポートしています。

結論から言うと、非常に良いサイトでした。

ただし、未経験者が最初の教材として実施するには難易度が高いと言う印象でしたので、そのあたりの感想やぶつかりやすい点を私なりにまとめました。これから始める方や挫折してしまった方の参考になれば幸いです。

当時の私のスペック(前提事項)と学習ペース

●筆者のプログラミング経験
有り(半年程度の付け焼き刃のJava。しかもかなり久々の再入門勢)

●所用時間
70~85時間程度かかったように思います。(一章あたり5~6時間)

●学習ペース
休日集中して実施+平日少し(1.0~2.0h)ずつ触る、というわりと緩いペースでやってました。

●事前学習
ほぼなしでした
が、Rubyの基本構文とか制御構文あたりは押さえておいた方が良かったです。

Progateや参考書を一通りやってからチュートリアルに挑戦する人も多いようです。

1章の感想(と一部整理)

ここがまず少しハードルが高い気がしました。

一言で言えば環境構築ですが、新しい用語なんかも結構出てくるので時間がかかりました。

ここで挫折する方も多いとたまに聞くのですが非常にもったいないです。当時の整理していたメモを備忘録兼ねて記載しておきますのでご参考までに。

●環境構築で使うUnixコマンド
Railsの環境は基本的にUnix系のOS環境で作ります。私はもともとJava開発で触っていたのでUnix系のコマンドなどは最低限は知っていたのですが、初めての人は少し驚く気がしました。

Linuxとかをインストールして、軽く触ってから入るとわかりやすいです。

●gemとbundler
それと、Rails開発で出てくるgembundlerは結構さらっとしか書かれていいないので、正直最初読んだ時???という感じでした。

ざっくり言うと、gemはRubyのライブラリのことです。ちなみにRailsもgemの一種です。(宝石という意味らしいです。)

bundlerはGemfileを元にパッケージ化されたgemを管理するためのツールのことです。bundlerを使うとgemを一括でインストールすることができます。

●MVC(Model-View-Controller)
MVCとは、Webアプリケーションの設計思想で、「各役割ごとにプログラムわけましょうや。」という考え方です。

複雑性をなくし、チーム開発しやすくすると言うメリットがあります。ちなみにWebアプリの思想のため、Railsに限った考え方ではありません

MVCについてqiitaの記事が凄く参考になりました。

●Git(バージョン管理ツール)
Gitとは、バージョン管理ツールの1つです。

ある時点でのディレクトリ(フォルダ)の状態を記録することができるツールで、リポジトリと呼ばれる場所にこの情報を記録します。そうすることで、任意の時期の状態に簡単に戻したり、競合を防ぐことができます。

開発をする上で絶対に必要ではありませんが、企業やチーム開発ではなくてはならないツールです。

Gitについて詳しく知りたい方は、下記のサイトがオススメです!博多弁のおサルさん(ダイミョーくん)が丁寧に解説してくれています。

サルでもわかるGit入門〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】
ようこそ、サルでもわかるGit入門へ。Gitをつかってバージョン管理ができるようになるために一緒に勉強していきましょう!

●Bitbucket(Github)
両サービスとも、リモートリポジトリサービスです。

どういうことかというと、先ほどのGitはディレクトリを記録するためのツールのことで、その内容を保存する先を提供するサービスのことを指します。

インターネット(クラウド)上にディレクトリを保管できるので、他の人に内容を共有したり、共同開発をすることができます。

●herokuとデプロイ
heroku(ヘロク)とは、PaaS(Platform as a Service)と呼ばれるサービスで、アプリケーションを実行するためのサービスです。

今まで、Webアプリを外部公開する場合は有料のレンタルサーバーなどを借りて、その上で環境構築などを行なって公開するという手順を踏む必要がありました。

しかし、herokuではそういった作業が不要です。設定作業さえすれば、簡単なコマンド操作のみで本番環境を作成(デプロイ)することができます。

3章~14章(ラスト)までの感想

ここからは機能ごとに分担してTwitterアプリの作成を行いました。下記の主要機能を各章ごとに学習することができました。

・静的なページの作成
・ヘルパーメソッドの使い方
・HTMLとCSS(Bootstrap)
・モデル
・基本的なCRUD(create,read,modify,delete)の処理
・ログイン認証
・リレーション
・テスト自動化

また、「テスト自動化」について全ての章を通してみっちり解説してくれています。今まで手動でしかテストしたことなかったので、この仕組みを知っただけで衝撃的でした。ただ、初めてだと恩恵よりもストレスに感じるところが多いかもしれないな〜とは感じました。

そして、ログインでは認証の仕組みから解説しているので、非常に得ることが多かったです。Tokenやcookieを使ったサーバサイドでの認証の仕組みを知ることもでき、アンチパターンの紹介があるのも良かったですね。

要素が盛りだくさんなので中弛みは少々ありましたが、なんとか1ヶ月で一通り読み、アプリをデプロイすることができました

チュートリアル(1週目)を通して得たもの

●Railsの雰囲気を掴めた
「完全に理解」とは程遠いですが、雰囲気をつかむことができただけでも効果はあったと思います。

ただ、これだけでアプリを作れるような代物ではないのは間違いないです。

●実開発業務を想定した体験ができた
構文やメソッドの説明だけでなく、GitやBitbucketをつかったリモートリポジトリ管理までも体験できて理解を深めることができました。また、自動テストもかなり丁寧に説明がされており、実際に書くことでその利点を体験することができたことも、良い気付きになりました。

結論としては、無料とは思えないほど良い教材だったと思います。アプリケーション開発に必要な要素がしっかり詰まっています。

もし、興味を持っている方は是非チャレンジをしてみてください。

コメント