Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

by tackeyy
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便利
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away