既存のRailsアプリケーションの規模感を掴むためのメモです。 各ファイル毎に見ていくと規模感が掴むきっかけになりそうです。
rails routes
エンドポイント、URLの雰囲気を掴む。
rails status
何がどのくらいか、規模感を掴む。
- モデル
- 数で規模感が分かる
- テスト
- テストが多い処理は複雑
- どこの処理がふくざつなのか
- JavaScript
- フロントの作り込み具合
- Rails
- 標準以外のディレクトリ数
- 設計思想
- 非同期処理
- 非同期処理の割合がどれぐらいか
Gemfile、package.json
どんなライブラリが使われているのか把握する。
- 作り手の意思(選択思想?)
- Gemfile
- Deviseは使われているか?
- 設計に影響の出るGemは使われているか?
- Railsのレールに乗れるのか?
- ライブラリのバージョンは?
- ファイル保存系ライブラリは何か?
- 知らないGemは?
モデルの行数
モデルで規模感を把握する。
git ls files app/models | xargs wc -l | sort
- userモデルを基準に他がどんな規模なのか?
- 多くのことをやっているモデルはどのモデルか?
- どのモデルが大きいのか?
- userモデルに匹敵するモデルはどのモデルか?
モデルのテストの行数
テストで規模感を把握する。
git ls files spec/models | xargs wc -l | sort
- テストの数で重要なモデルがどのモデルか分かる
- 複雑なモデルはどのモデルか?
- 重要なモデルはどのモデルか?
user.rb
user.rb
は殆どのアプリケーションで使われているので把握しやすい。
- コードスタイルの把握
- 実装思想を掴む
- user.rbでどれぐらいメンテナンスされているか測れる
- Rubyの書き方の癖を掴む
config/initializers/-
諸々の確認ができる。
参照
スタートアップで戦い抜いてきたRailsアプリをどう直す? 既存Railsアプリを攻略する時にCTOが見ているポイント - ログミーTech