Railsで新しいPJに入る時のコードリーディング(1)

これまで自分のWebサービスを作っているだけだったが、
既存のPJにJoinしてコードに手を加えていくことになった。

そこで既存PJのコードリーディングを、
やってみた時の足跡をメモ形式で残してみる。

コードリーディングの方向性に関しては指導を受けているものの、
Railsコードリーディングは初めて!
なので拙い内容もあるかもしれませんが、ご了承ください。

サービスの概要説明 or デモ を受ける

出来れば最初に先任者からサービスの概要説明なりデモなりを受けて、
最低限のユースケースを掴みたい。

お願いすれば大なり小なりやってくれる気がするが、
現場に入ったことの無い私にはそれが普通かどうか分からん!

環境構築

何はともかくローカルで動作させられないことには、
動作確認もデバッグもできない。
ので頑張って環境構築。

PJで環境構築のReadme等が用意されているなら、
それを参照する。

特に前提となる開発環境
(Rubyのバージョンやその他インストール必要なアプリ)
には注意。

無くてもとりあえず、
git clone, bundle install, bin/rails db:XX
あたりをやれば、ひとまず何とかなる気がする。

ER図

ER図を入手する

Webサービスではデータ(DB)が最重要っぽい。
のでとりあえずER図を作る。

ER図がプロジェクトで提供されているならそれを使う。
無いならrails-erdで作る。

https://github.com/voormedia/rails-erd

手動で作るのは多分超しんどい。 が、必要な時もいつか来るかもしれない。。。 (rails-erdがいつも使えるとは限らないし)

ER図をざっと眺めて全体を把握する

全体像を掴むのが目的。細かい話はこの段階では考えない方が良さそう。
以下の観点から、各エンティティ間の関係性をおぼろげながら掴む。

  • エンティティ
    • エンティティ名とプロパティ名から、なんとなく役割を推測する
      わからん単語(特にエンティティ名)は積極的にググる
  • リレーション
    • やたらリレーションが多いエンティティは重要っぽいので注意する。
    • rails-erd で作ったER図では、
      has_many :through を使っているリレーションが点線になる。
      (個人的には結構ヒントになった)
      https://voormedia.github.io/rails-erd/gallery.html

初期データを用いてrails c でデバッグ

初期データを用意

bin/rails db:seed で初期データを用意する。

無い場合は作ると理解がはかどる &いい感じに作れたら専任者に喜ばれるかも、しれない。(予想)

私の場合はひとまずseedを用意して貰っていたので作り方は掘り下げない。
(そもそもイマイチよく知らない)

rails c でmodelやらassociationの確認

ER図を見ながら、modelの中身や、model-association間の動作を確認する。
ER図を見ただけのイメージから、コードに一歩近づける。
(ここは結構重要なんじゃないだろうか)

情報量的に新しく得るものは無いかもしれない。

見出しではデバッグと書いたが、こういうのをデバッグと呼んでいいのかは不明。




とりあえず最初はここまで