#概要
Railsチュートリアル2週目を終えたので、感想を書こうと思います。
##かかった期間
10/10 ~ 10/27 (24~26を除く、約2週間)
合計:約63時間
1週目では約48時間かかったので、2週合計で110時間ほど費やしました。
##開発環境
1週目からクラウドIDEではなくローカル環境で開発に挑戦しました。
- Macbook Pro(13-inch, M1, 2020)
- Mac OS Big Sur 11.6
- VSCode (Visual Studio Code - Insiders 1.62.0)
- Ruby 3.0.2p107
- Rails 6.1.4.1
##1週目と2週目の間にやったこと
1週目を終えた時点で「Rubyのコードが読めない」「なにが書きたいのかわからない」と気づきました。恥ずかしながら。Rubyの基礎力がかなり不足していたのです…。Rubyの力を養うために、「たのしいRuby」で文法をメインに勉強しました。
2週目で心がけたこと
1週目では上記の通りコードを読めないことに加え、コードに対するコメントを全然書いていませんでした。「いま勉強している内容がこうだから…このコードはこうかな?」となんとなく理解できたコードも、2~3日経てば
なんということでしょう~、なんのためのコードか全くわからないではありませんかぁ〜!!
ということで、2週目は過剰なぐらいコードにコメントを書きました。例えば、
resources :password_resets, only: [:new, :create, :edit, :update]
# GET /password_resets/new
# new new_password_reset_path
# POST /password_resets
# create password_resets_path
# GET /password_resets/トークン/edit
# edit edit_password_reset_url(token)
# PATCH /password_resets/トークン
# update password_reset_url(token)
このように、チュートリアル内の説明をコピペしたり、
class StaticPagesControllerTest < ActionDispatch::IntegrationTest
# 各テストが実行される直前で実行
def setup
@base_title = "Ruby on Rails Tutorial Sample App"
end
test "should get home" do
# GETリクエストをhomeアクションに対して発行
get root_path
# リクエストに対するレスポンスは[成功]になるはず
assert_response :success
# titleタグの内容を検証する、homeは基本タイトルのみ表示
assert_select "title", "#{@base_title}"
end
test "should get help" do
# GETリクエストをhelpアクションに対して発行
get help_path
# リクエストに対するレスポンスは[成功]になるはず
assert_response :success
# titleタグの内容を検証する
assert_select "title", "Help | #{@base_title}"
end
テストの1行ごとに対して内容を書いてました。おかげさまで後々見返したときの理解が捗ります。コメントを書くだけで学習のスピードが1.7倍ぐらいになった気分でした。
コメントってすごい
コメントを書くようにすることで、以下のことを感じました。
- コードの内容を思い出しやすくなる
- わかりやすいコメントを書くためにコードについて調べるようになる
- 見返したときに読みにくいコメントを見つけて、コメントの書き方にも気をくばるようになる
なによりも1つ目の「思い出しやすくなる」のメリットはすごいです。新しいことを勉強している最中に、過去に書いたコードについて思い出すのってかなり労力がかかると思います。
自分本位ではありますが、「コードを書いている今、すこし一手間加えただけで未来の自分が楽になれる…ならばやらない手はない」と思いました。
これって、複数人で開発するときでも当てはまりそう!誰かに自分のコードを読んでもらうときに、わかりやすいコメントがあったら相手に労力をかけさせないで済むかもしれませんね…
コメント以外に心がけたこと
1週目にやった演習や、AWS(S3)への保存などはできる限り飛ばすようにしました。理由としては「もうすでにできることにかける時間がもったいない」のと「AWSはそのうち勉強するはず。いまチュートリアルにそってやっても身につかなさそうだし、手間とメリットが釣り合わない」と感じたからです。
その代わり、1週目でできなかった演習には時間を割きました。2週目でクリアできたときには成長できていると感じ嬉しかったです。
#これから取り組む方に向けて
コメントをいっぱい書きましょう。コードで書く処理を言語化することで、コードの意図を少しでも把握できるようになります。
私自身の理解力の無さが原因だとは思いますが、2週してもチュートリアルの半分を理解できたとは感じません。個人的には**「全部理解してやる!」と意気込むよりは「理解できなくても、一度は全部やりきってみる」**ぐらいの気持ちで挑戦するのをおすすめします。
1週目の感想はこちら → 「Railsチュートリアルを1週してみた感想」