LoginSignup
10
8

More than 5 years have passed since last update.

本番環境の不要なコードをすべて削除したら49.6%のコードダイエットができたはなし

Last updated at Posted at 2017-10-25
1 / 12
  • Meguro.rb #8 のLT資料です

自己紹介 :sunglasses:

サンチェくん130x148x.png


今日お話する内容 :muscle:

  1. きっかけ
  2. 未使用のコードを発見するための仕込み :ramen:
  3. コードの削除 & デプロイ
  4. はまったところ
  5. まとめ

きっかけ :airplane_departure:

Screenshot from Gyazo

refs: muramurasanさんのRailsで効率的かつ安全に未使用のメソッドを削除した


要約すると・・・

  • Rubyは動的にメソッドを呼び出せるので静的解析・動的監視で未使用コードを炙りださないといけない
  • 静的解析 + 実際にメソッドが呼ばれているかのロギングを自分でやるのはだるいし本番のコードを汚染する
  • そこで okuribito_rails を使おう!

未使用のコードを発見するための仕込み :ramen:

静的解析

  • debride
  • 未使用の可能性のあるメソッドを抽出してくれる

動的監視

  • okuribito_rails
  • 監視対象のメソッドを定義したymlをおいておくとmethod callの度にカウントしてくれる

コードの削除 & デプロイ :muscle:

1ヶ月ちょっと寝かせた後に動的監視でも呼ばれていないメソッドを削除していった結果・・・



Screenshot from Gyazo


はまったことろ :alien:

  • インデックス名がながくてokuribito_railsのmigrationがこける
    • okuribito_railsのWebUIに速度をもとめないのでいったんインデックスを削除して対応
  • okueibiro_railsを入れてからきちんとテストしないエラーになるケースがある
    • 自分のリポジトリにフォークしてきてコードを修正 or ymlを整理

まとめ :sushi:

  • okuribito_rails便利
10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8