Ruby on Rails チュートリアルのメモ
後から見直せるように、Ruby on Railsチュートリアルの各章のメモをここに残していきます。
基本的に箇条書きなので見づらいかもしれません。
それぞれの章の(私の)所要時間と感想を書いていきます。
また、内容に関しても簡単にまとめておきます。
各章が終わり次第随時追記していきます。
Railsチュートリアル第1章の内容と感想
所要時間
3.5時間
内容
開発環境の構築(cloud9 + Bitbucket(Git管理))
RailsでHello,worldを表示
Herokuを用いて本番環境へのデプロイ
感想
Cloud9一つで、他の面倒な環境構築不要、これは楽!
Herokuを使えば簡単に作ったWebアプリケーションを公開できる、すごい!
しかし基本は無料のようだが、実際に大きめのWebアプリケーションを運営するためにはお金がかかりそう。それは不安。
Herokuを使うことでサーバーの設定などはやらなくてもいいのは楽だが、今後のことを考えると実際に自分でレンタルサーバーを借りて色々設定した方がいいのだろうか。この点は疑問。今後もずっとHerokuのようなサービスだけを使って公開していくなら問題ないが。
Gitについてはあまり理解できなかった。別で軽く勉強する必要あり。
Railsチュートリアル第2章
所要時間
1.5時間
内容
Scaffoldを利用して簡単なアプリケーションの作成
MVCについての説明(ユーザーのアクセスからどのようにMVCが協働し、最終的にユーザーにHTMLを返すかの全体像)
RESTfulなアプリケーションとはどういうものかの簡易な説明
実際にデータベースを持つアプリを本番環境で動かす
感想
本(Ruby on Rails5超入門)でScaffoldについて学んでいたため、比較的簡単だった。しかし、もし本を読んでいなければ意味不明な気がする。もしチュートリアルをやるなら基礎的なRailsの本を一冊やってからの方がいいのかも。
ただ、最初にScaffoldでアプリケーションを構築することで、全体像を把握しておけるのはいいと思う。
MVCについての説明や図は非常にわかりやすい。もしまだMVCについて理解していなければこの図は何度も見た方がいい。
Railsチュートリアル第3章
所要時間
2時間
内容
静的なページの作成(Home,Aboutなど)
テストの作成と実行
感想
静的なページに関しては、HTMLを理解していれば何も問題ない。
一方、テストは初めての経験。アプリケーションのコードを書く前にテストのコードを書くのは面倒臭いが、これが後々効果を発揮するらしい。(今の所は分からない。)まだテストの書き方には慣れない。
第3章に関して言えば、Rails本体で特段難しいところはない。
Gitの使い方がやっぱりイマイチ分からない。Gitはやはり自分で勉強する必要があるようだ。
Railsチュートリアル第4章
所要時間
2時間
内容
Rubyの基礎を一通り学ぶ
Rubyの文字列、配列、ハッシュなどの扱い方
Rubyのクラスやメソッドについて
第4章ではRailsを学ぶというよりは、Railsの基礎となるRubyについて学ぶ
感想
第4章はRailsにはほとんど触らず、基本的にはRubyの基礎を学ぶ。なのでちょっと退屈。
ただ、ハッシュの記述法やシンボルについては全く知らなかったので非常に勉強になった。
a = { :name => "棒人間", :city => "Kyoto"}
a = { name:"棒人間", city: "Kyoto"}
この二つが全く同じ意味。Rubyを少しでも学んだことがあれば常識なのだろうが、私のようなRailsしか勉強したことがない人にとっては目から鱗。すごく分かりやすかった。今後Railsのコードを読むときにも役立ちそう。
やっぱりRubyの勉強も必要だと感じた。
Railsチュートリアル第5章
所要時間
2.5時間
内容
レイアウトの作成(CSS、パーシャルなど)
Sassについて
Railsでのリンクの作り方(link_to)
pathについて(root_pathなど)
統合テストの方法
感想
Sassは非常に便利だと思った。CSSでネスト構造OKなのは意外に効率あがりそう。
第5章は基本的に難しくない。
第4章までは駆動テスト開発(?)だったが、5章では統合テスト(?)についても学んだ。テストに関してはいまいち理解できない。
Railsチュートリアル第6章
所要時間
二時間
内容
Userモデルを作成
バリデーションについての詳しい説明
Railsで扱うパスワードについて
感想
いよいよ本格的にTwitterもどきのアプリケーションの作成が開始。
本を使って勉強した際に、モデルの作成等は経験があったので、特につまづくところはない。
Railsチュートリアルの説明は長いので読むのが大変だが、細かいところまで説明されており非常に分かりやすい。
バリデーションの部分やパスワードの部分の説明がすごく分かりやすかった。
ただ、一度読んだだけでは忘れそうなので、やっぱり復習はする必要があると思う。
Railsチュートリアル第7章
所要時間
3.5時間
内容
ユーザー登録+ユーザーの表示の機能を実装していく
Railsにおけるformの使い方
flashの使用方法
デバッグの方法
本番環境(Heroku)でのSSLの使い方とWebサーバーの変更方法
感想
ユーザー登録やその表示の機能については、progateや本で学んだとおりだった。難しくはない。formやflashも同様。
デバッグは今までやったことがなかったが、今後自分でWebサービスを開発していくのであれば必須だと思うので、ちゃんとデバッグする習慣を身につけていきたい。(テストも同様)
本番環境でSSLを使う方法(設定)や本番環境でpumaというWebサーバーを使うための方法(設定)は、とにかく見よう見まねで行ったが、その設定方法を理解はしていない。この状態でオリジナルのWebサービスを本番環境にデプロイできるのかは不安。これらの設定方法などはちゃんと勉強すべきなのか?
Railsチュートリアル第8章
所要時間
1.5時間
内容
ユーザーのログイン機能とログアウト機能を実装していく
Railsに標準で装備されているsessionを利用する
cookieは第9章で扱う。第8章ではcookieを使用しないログイン機能
感想
アプリケーションの作成という点では難しくはないが、テストの部分が難しかった。要復習。
flashではなくflash.nowを使うのはどういう時なのか、いまいち理解できていない。要復習。
ヘルパーはどういう時に使うのか。直接コントローラーに書いてはダメなのか→ヘルパーで書けばメソッドが分かりやすいし、他のコントローラーでも使えるから。かな?
Railsチュートリアル第9章
所要時間
1.5時間
内容
cookieを利用して、ユーザーのログイン状態を保持できる機能を実装(ブラウザを閉じ後もログイン状態を保持するように)
cookieのセキュアな使い方(トークンの使用など)
session(第8章で学んだ)とcookieの両方を組み合わせてログイン機能を完成させる。ログアウト機能も
感想
難しかった。第8章までに比べて、第9章の難易度は急に上がった気がする。
cookieの使い方、扱い方はなんとなく分かったが、これをもう一度自分で再現しろと言われたら不可能。
せめてcookieとsessionを使ったログイン機能の流れだけは頭に入れておきたい。(これこそ要復習。)
第9章のテストはほぼコピペした。手が回らず。
第9章に関しては一周だけでは完全に理解はできない。(もちろん私の能力の問題です。笑)
Railsチュートリアル第10章
所要時間
2.5時間
内容
ユーザーの編集(edit)の実装
ユーザーの削除(destroy)の実装
ユーザー一覧ページ(index)を作る+ページネーションも一緒に
管理ユーザーのみがユーザーの削除を行えるように、ユーザーモデルにadminの追加+before_actionで制御
感想
第10章はボリュームが結構あった。
ただ、editやdestroyなどは本で学習済みだったので問題無し。
管理ユーザーのみにユーザーの削除を許可するのは意外に大変。セキュリティの面でやらないといけないことが多い。
実際に自分でアプリケーションを作る際、ここはミスしないようにしなければ。
Railsチュートリアル第11章
所要時間
2.5時間
内容
登録されたアカウントの有効化の機能の実装(登録されたメールアドレスにアカウント有効化のためのメールを送る。ユーザーはそのメールを受け取りアカウントを有効かできる、という機能)
Mailerの使い方
本番環境でメールを送信するためにSendGridの導入(Herokuのアドオン, 無料)
感想
アカウントの有効化の機能は、これまで本などで学んだことのない領域。しかしチュートリアルの第8章や第9章で扱ったユーザーのログインやユーザーの記憶(セッションやクッキー)の部分と考え方が似ているので比較的分かりやすい。
Mailerの使い方がなんとなくわかった。実際に本番環境でも簡単にメールが送れてびっくり。
テストに関してはお手上げ状態。ほぼコピペ。まずい。
Railsチュートリアル第12章
所要時間
1時間
内容
パスワードの再設定機能の実装
感想
第11章で行ったこととすごく似ている。時間はそんなにかからない。
しかし、細かいところでなぜそのようなコードになるのか、という部分がわからなかった。(もちろんそれらについてはここまでのどこかで説明されているはず。復習しないと。)
テストの部分に関しては11章同様コピペした。まずい。
Railsチュートリアル第13章
所用時間
5時間
内容
マイクロポストの機能の実装
画像を投稿できるようにする(開発環境+本番環境)
感想
ここまでの章の中でも第13章は結構ボリュームが多く、一番時間がかかった。
本番環境ではAWSのS3というサービスを使うみたいだが、今回はこの部分はやらなかった。(それまでに時間がかかりすぎたので、一旦スルー)
ただ、今後自分でWebサービスを作るなら、画像のアップロードという機能は必須だと思うので、AWSのS3を使えるようにならなくてはいけない。
Railsチュートリアル第14章
所用時間
2時間
内容
Followの機能の実装
Ajaxを使用してフォローボタンの作成
感想
難しかった。SQLが出てきたりして、理解できないところが結構あった。
Ajaxもしかり。難しい。
第13章と第14章に関しては、コードもコピペが多くなったしまったのは反省。
14章に関してはまだ理解できていないので、少なくともあと一回は復習する必要あり。
でも、取り敢えずこれでチュートリアル完走!!!