Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rubyのコード削除したい時 僕がやること
Search
Hazumi Ichijo
October 31, 2023
0
240
Rubyのコード削除したい時 僕がやること
Omotesando.rb #90
https://omotesandorb.connpass.com/event/296510/
Hazumi Ichijo
October 31, 2023
Tweet
Share
More Decks by Hazumi Ichijo
See All by Hazumi Ichijo
RailsとRidgepoleの マイグレを120倍早くする
hazumirr
0
300
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
1.3k
病院の情報フローを理解して、 予約〜会計の見え方が変わった話
hazumirr
1
1.7k
テーブル駆動テストと状態
hazumirr
5
2.1k
オンラインテストしようと思った その日に開始できる環境を目指して
hazumirr
0
1k
推薦によるプロダクト改善とマイクロサービスが噛み合った話
hazumirr
2
4.5k
ChatGPTで僕が知っていることまとめ
hazumirr
3
3.1k
プロダクトチームとどう 協業し分析環境を改善するか
hazumirr
2
1.6k
bqv速習会
hazumirr
6
7.1k
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
0
2.4k
How to build a perfect <img>
jonoalderson
0
4.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
170
Git: the NoSQL Database
bkeepers
PRO
432
66k
30 Presentation Tips
portentint
PRO
1
170
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
120
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
69
Faster Mobile Websites
deanohume
310
31k
Believing is Seeing
oripsolob
0
15
Transcript
© 2023 Wantedly, Inc. Rubyのコード削除したい時 僕がやること Omotesando.rb #90 Oct. 5
2023 - Hazumi Ichijo
自己紹介 © 2023 Wantedly, Inc. 一條 端澄 @hazumirr/@rerost 略歴: 2018~
: ウォンテッドリー株式会社 趣味: テトリス・旅行 Omotesando.rb: 2回目
消せると何が嬉しいか 1. 考慮することが減る • 機能追加・変更時 • リファクタリング時 • gem update
• … 2. 利用するリソースが減らせる • CPU/メモリ • CIでのテストにかかる時間 • … © 2023 Wantedly, Inc.
デッドコードだけ削除すれば良い んでしょ? © 2023 Wantedly, Inc.
© 2023 Wantedly, Inc. https://docs.wantedly.dev/fields/dev-tools/code-coverage
oneshot coverage 便利!以上! © 2023 Wantedly, Inc.
完 © 2023 Wantedly, Inc.
削除したいコード 1. 実行されていないコード 2. 実行されているが消せるコード • 利用されない関数を生成するコード ◦ メタプロのコード自体は実行されているので検知が難 しい
• 利用されないデータを書き込む © 2023 Wantedly, Inc.
削除したいコード 1. 実行されていないコード 2. 実行されているが消せるコード • 利用されない関数を生成するコード ◦ メタプロのコード自体は実行されているので検知が難 しい
• 利用されないデータを書き込む © 2023 Wantedly, Inc.
© 2023 Wantedly, Inc. class Hoge < ActiveRecord::Base as_enum :category
CATEGORY, prefix: true CATEGORY = { category_a: 0, category_b: 1, ... } end 利用されない関数を生成するコード https://github.com/lwe/simple_enum
© 2023 Wantedly, Inc. class Hoge < ActiveRecord::Base as_enum :category
CATEGORY, prefix: true CATEGORY = { category_a: 0, category_b: 1, ... } end 利用されない関数を生成するコード 要件が変わって、Categoryの一覧をDBで定義したいが...
© 2023 Wantedly, Inc. class Hoge < ActiveRecord::Base as_enum :category
CATEGORY, prefix: true CATEGORY = { category_a: 0, category_b: 1, ... } end 利用されない関数を生成するコード # 生えてくるメソッド例 hoge.category_was? # dirty hoge.category_a? # attribute Hoge.category_as # scope =>
利用されない関数を生成するコード 1. 何が生成されているかを把握 2. 利用箇所の把握 • ひたすらgrep • ログを仕込む ©
2023 Wantedly, Inc.
利用されない関数を生成するコード 1. 何が生成されているかを把握 2. 利用箇所の把握 • ひたすらgrep • 早いが、確実とはいえない •
考慮漏れが無いか不安 © 2023 Wantedly, Inc.
利用されない関数を生成するコード 1. 何が生成されているかを把握 2. 利用箇所の把握 • 関数が呼ばれた際にログを投げる • ほぼ確実だが、集まるまで待ち時間が発生 •
呼ばれたかどうか ◦ TracePoint, prepend, … • ログの投げ先 ◦ 標準出力, BigQuery, TreasureData, … © 2023 Wantedly, Inc.
削除したいコード 1. 実行されていないコード 2. 実行されているが消せるコード • 利用されない関数を生成するコード ◦ メタプロのコード自体は実行されているので検知が難 しい
• 利用されないデータを書き込む © 2023 Wantedly, Inc.
利用されないデータを書き込む 1. BigQuery 2. PostgreSQL 3. Elasticsearch 4. … ©
2023 Wantedly, Inc.
利用されないデータを書き込む 1. BigQuery 2. PostgreSQL 3. Elasticsearch 4. … ©
2023 Wantedly, Inc.
利用されないデータを書き込む BigQueryの監査ログが便利 誰がいつデータを参照したかがわかる © 2023 Wantedly, Inc. BigQuery編 https://marketplace.looker.com/marketplace/detail/bigquery-information-schema を利用
© 2023 Wantedly, Inc.