Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rubyのコード削除したい時 僕がやること
Search
Hazumi Ichijo
October 31, 2023
0
220
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
160
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
980
病院の情報フローを理解して、 予約〜会計の見え方が変わった話
hazumirr
0
1.5k
テーブル駆動テストと状態
hazumirr
4
2.1k
オンラインテストしようと思った その日に開始できる環境を目指して
hazumirr
0
990
推薦によるプロダクト改善とマイクロサービスが噛み合った話
hazumirr
2
4.3k
ChatGPTで僕が知っていることまとめ
hazumirr
3
3.1k
プロダクトチームとどう 協業し分析環境を改善するか
hazumirr
2
1.5k
bqv速習会
hazumirr
6
7k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Facilitating Awesome Meetings
lara
55
6.5k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Into the Great Unknown - MozCon
thekraken
40
2k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
A designer walks into a library…
pauljervisheath
207
24k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
BBQ
matthewcrist
89
9.8k
Rails Girls Zürich Keynote
gr2m
95
14k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Six Lessons from altMBA
skipperchong
28
4k
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.