Rails5速習実践ガイドを読んで

はじめに

今回は現場で使える Ruby on Rails 5速習実践ガイドを読了したので、それについての感想を記録していきます。

チェリー本で学んだ際には、文法やメソッド、クラスであったりその他諸々、決まっている事を学ぶところが多かったように思います。
それに対し、本書ではもちろんそういった面の学習もあるのですが、課題に対するテクニックや考え方などの必ずしも決まりきっていない部分の学習があったので同じページ数くらいでしたがより長い時間が掛かったように感じました。

ちなみに、読む前の知識レベルとしては、

を行ったくらいのものです。

読んで良かったこと

Rubyならではの記述方法をおさらいできた

実際にはRuby以外でも同じような処理ができる記述方法はあると思うが、

  • nilガードの記法 。getterに利用すると便利。
  • %wで文字列の配列
  • %iでシンボルの配列
  • reciever&.method のボッチ演算子(safe navigation operator)を使うとrecieverがnilでもエラーにならない。

など、個人的に特殊な書き方に感じているので再度覚え直すことができ、少なくともそういったものがあったなと調べ直せる程度に頭に入ったように思います。

先ほど上げたRailsガイドなどで登場したメソッドなどがよくわからないままでいたが、本書で要点、使用シーンを踏まえながら再学習できた

link_toparamsなど、説明はあったものの繰り返し書くことで理解が進んだように思います。
当然、これらの他にも多く紹介されており、実際にアプリを作りながらわかりやすい説明付きで学べるので利用イメージがつきました。

Railsではないが、実務で現在Webアプリ(オフライン環境ですが)を作成している中で、この考え方はすぐ使えるぞといったものをまさに速習実践することができた

partialなんかはタイミング的にもすぐに利用できる知識でした。
元々Web系の人が周りにおらず、正直知らないことだらけのまま作り始めていたので散らかり初めていました。
おかげで大分整理されてきたように思います。

その他

  • あげられている例が実際に「そういうページあるよな〜」とイメージしやすく、説明される内容が伝わりやすく感じた。
  • 実務でよく使われるgemなどについても所々で触れられており、また開発シーンの流れについてなども触れられていてWeb開発業務の働き方イメージもなんとなく伝わってきた。
  • Railsに限らず大切な要素だと感じる内容が多くあり、また使用技術も実はRailsだけのことばかりではないので知れてよかったと思う内容が盛り沢山だった。

など、多くの良かった点があげられます。

自分としては、こういった多くの人がその言語を学ぶにあたって通ってきた道をなぞることで、同じ道を通った人と共通の認識というか、考え方を持てることが実は大きなメリットなのではないかと感じています。
リーダブルコードなども非常に有名な書籍ですが、読んだことのある人同士であるかどうかでコードから伝えられる意図などに大きな差が生まれるように思うからです。

学んだこと

  • 基本的にどういった処理はどこがあるべき場所なのかを知識として知ることができた。
    • また、あるべき場所に記述していないと、将来的にどういった問題を含むコードになっていきやすいかを知ることができた。
  • 綺麗なコードを維持していくにあたってのテクニックや考え方は、Railsにだけではなく他の言語にも当然当てはまるもので、ポータビリティのある知識を知ることができた。
  • セキュリティ関連の有名どころの知識、また危険性やそれらへの対策について知ることができた。
    • 名前は知っているものの内容をよく知らない攻撃への対策など、Railsが対策への機能を持っていることも含めて学ぶことができた。
      また、これをやってしまうとせっかくの機能を無碍にするような行為についても合わせて説明があり、注意点も同時に学習できた。
  • Railsには知らなければ魔法のように見える機能が多くあるように思っていて、それらを広く知ることができた。
    • 名前から自動で探索して解釈されていたり、ヘルパーメソッドがなぜ使えるようになっているのかなど、学習前は理解不能でした。

知識として持つことはできたが、これから実践を通して何度も見返し、使える知識にしていくことが大切に感じています。
気軽に見直せるようにTyporaを使って自分のわかりやすいようにメモを取っていったので、実用時に見直しながら身につけて行きたいと思います。

良くなかったこと

ただの自分の反省になるのですが、Rails5の書籍を購入したに関わらず、知識もないのにRails7の環境で進めた結果色々とぶつかりました。。

  • 環境構築で詰まる
  • 説明されている機能がRails7では非推奨になっていて使用するまでの壁が高い(知識があれば別なのかもしれません)

とはいえ、それらの解消について調べることで知れたこと(Hotwireなど)もあって、結果的には学びになったように思います。

難しく感じたところ

初めにも述べましたが、テクニック、考え方については難しく感じました。
実用シーンで、同じ考え方を持っていたとしても、考え方への解釈や、また前提知識が誤っていたら間違った方向へ進んでしまう事もあるだろうと考えたためです。

結局のところ、これも場数を踏んで間違った方向に進んでしまった失敗ケースも通った先に本当に得られるものなのだろうと思うので、見返し繰り返しが大切な要素だと念頭に入れておきたいと思います。

最後に

Railsは、知っていれば便利かつ強力な機能が数多く用意されていると感じています。
それ故に、知らなければ魔法のように動作しているように見えるものも多くあるかと思います。

全てを知るのは難しいので、実践の中で多く登場するものや、自分が解決したい課題に対して解決できたようなものはしっかりと覚えておき、同じようなシーンに出会ったときに引き出せるようになっていきたいと思います!