Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What is going on with this article?
@tackeyy

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

More than 3 years have 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便利
7
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  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
tackeyy

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
7
Help us understand the problem. What is going on with this article?