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図を見ただけのイメージから、コードに一歩近づける。
(ここは結構重要なんじゃないだろうか)
情報量的に新しく得るものは無いかもしれない。
見出しではデバッグと書いたが、こういうのをデバッグと呼んでいいのかは不明。
とりあえず最初はここまで