現場で使えるRuby on Rails 5 速習実践ガイドを読んでみて

この記事は「現場で使えるRuby on Rails 5 速習実践ガイド」を読んだ感想を綴ったものです。

 

書籍の発行時期は2018年と少し時間が経っており、Rails 5 も現行の Rails 7 から遅れているので、書籍の内容に則ってアプリを作る時は下記の環境で制作しました。

 

Ruby: 3.2.1

Ruby on Rails: 7.0.0

PostgreSQL: 14

 

・良かったところ

書籍を読み進めることでタスク管理ツールを作りながらアプリの制作過程を学ぶことができた。最近は開発環境としてDockerを使った環境構築が多かったが、本書では直接ローカルPCにインストールしていくやり方だったので、ちょっと新鮮に感じられた。

 

・悪かったところ

悪かったところではないれど、刊行されてから時間が経っているので最新の内容ではなく現行の内容に合わないのでRails 7 で対応していた。記載された内容はRails 5を前提に書かれているのでRails 7 に合わないこともあり、エラー解決がそこそこ大変だった。

 

・学んだこと

アプリケーションの複雑性に対応するという点で

1、適切な場所にコードを書く

2、上手に共通化する

3、新しい構造を追加して役割を分担する

という記述があったが、詳細を含めて実際にコードを書いていく際に大事にしたいと思った。

1、適切な場所にコードを書く

では、モデル、コントローラー、ビュー等にそれぞれ置くべきコードを書いて、一つのファイルやメソッドにコードが集中してメンテナンス性や可読性が低いコードにならないようにとの注意点があった。特に最初は動けば良い、と考えてしまいがちなので念頭に置いて後からコードを見直した時に自分が楽できるように気をつけていきたい。

 

2、上手に共通化する

では、DRY(Don't Repeat Yourself)の精神でコーディングにあたり、共通項を見つけたら早目に共通化の作業をするようにとの考え方。

モデルであれば、ApllicationRecordや親クラス(中間)を作成してクラスを継承することで共通化。コントローラーであればモジュールを使用して同じメソッドを共通化。ビューであればパーシャルを使っての同じ内容を共通化。といった具合に共通化できれば無駄なコードを書いて冗長にならずに済むので、共通化できるところに出会ったら率先して取り組んでいきたい。

 

3、新しい構造を追加して役割を分担する

では、例えば新しい機能を作る必要がある場合、必ずしも既存のクラス内に入れることが正しいとは限らないということでした。処理やデータを整理する際には意味のまとまりで分けることが好ましく、既存のグループにあてはまらない新しい機能を作る場合は新しいクラスなどを作ることでも見やすいコードになりますよ、という考え方でした。

コーディングが進んでいくとクラスやメソッドもいくつか作られていると思うので、新たに作らずにどこかに追加する考え方で進めてしまいそうだけど、意味のまとまりで考えてみて既存のグループにあてはまるかどかという視点でとらえられるようにしていきたい。

 

・難しかったこと

Rspecを使ったテストの導入

書籍に倣ってテストコードを書いてやってみたが、理解度があまり高くないと感じている。

苦手意識の残る分野なので、今後は足を引っ張る可能性が高く、課題となりそうだ。