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
200
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
テーブル駆動テストと状態
hazumirr
4
2k
オンラインテストしようと思った その日に開始できる環境を目指して
hazumirr
0
960
推薦によるプロダクト改善とマイクロサービスが噛み合った話
hazumirr
2
4.1k
ChatGPTで僕が知っていることまとめ
hazumirr
3
3k
プロダクトチームとどう 協業し分析環境を改善するか
hazumirr
2
1.5k
bqv速習会
hazumirr
6
6.9k
Protobuf on Rails Tips
hazumirr
1
960
Before Chaos Engineering
hazumirr
1
830
推薦のためのdata pipelineのモニタリングとロギング
hazumirr
3
5.4k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
27
3.7k
Speed Design
sergeychernyshev
29
880
A better future with KSS
kneath
239
17k
Adopting Sorbet at Scale
ufuk
76
9.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
104
19k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
9
740
Practical Orchestrator
shlominoach
186
10k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Raft: Consensus for Rubyists
vanstee
137
6.9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
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.