Railsアプリケーションの規模感の掴み方

既存のRailsアプリケーションの規模感を掴むためのメモです。 各ファイル毎に見ていくと規模感が掴むきっかけになりそうです。

rails routes

エンドポイント、URLの雰囲気を掴む。

  • テキストに落とすと見やすい
  • 量と種別
    • エンドポイント
    • RailsのViewの数
    • APIの数
    • よく分からないものの数
    • APIバージョニング
    • 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