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 on Railsでデッドコードを見つけ、 消す方法@yabaibuki.de...
Search
ayumu mochizuki
November 28, 2024
Technology
0
2.5k
歴史あるRuby on Railsでデッドコードを見つけ、 消す方法@yabaibuki.dev #3
ayumu mochizuki
November 28, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
2025-07-25 NOT A HOTEL TECH TALK ━ スマートホーム開発の最前線 ━ SOFTWARE
wakinchan
0
170
Power Automate のパフォーマンス改善レシピ / Power Automate Performance Improvement Recipes
karamem0
0
270
AIに全任せしないコーディングとマネジメント思考
kikuchikakeru
0
280
TypeScript 上達の道
ysknsid25
23
4.8k
Wasmで社内ツールを作って配布しよう
askua
0
150
地域コミュニティへの「感謝」と「恩返し」 / 20250726jawsug-tochigi
kasacchiful
0
100
生成AIによる情報システムへのインパクト
taka_aki
1
200
Kiroから考える AIコーディングツールの潮流
s4yuba
1
420
Kiro Hookを Terraformで検証
ao_inoue
0
140
From Live Coding to Vibe Coding with Firebase Studio
firebasethailand
1
320
Vision Language Modelと自動運転AIの最前線_20250730
yuyamaguchi
2
720
MCPと認可まわりの話 / mcp_and_authorization
convto
2
300
Featured
See All Featured
Building an army of robots
kneath
306
45k
4 Signs Your Business is Dying
shpigford
184
22k
Navigating Team Friction
lara
187
15k
The Invisible Side of Design
smashingmag
301
51k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
How to Ace a Technical Interview
jacobian
278
23k
Building Applications with DynamoDB
mza
95
6.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
GitHub's CSS Performance
jonrohan
1031
460k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Transcript
歴史あるRuby on Railsで デッドコードを⾒つけ、 消す⽅法 2024.11.28 リブセンス アルバイト事業部 望⽉歩 Copyright
© Livesense Inc.
株式会社リブセンス アルバイト事業部開発グループ 2018年新卒で⼊社 マッハバイトの開発をしています 望⽉ 歩(ayumu838) Copyright © Livesense Inc.
• 2006年にジョブセンスとしてリリース • 2017年にマッハバイトと改名 • リリース当時はPHPだったが • 2014年からRuby on Railsにリプレイスを開始
• 2022年に完了 について Copyright © Livesense Inc.
• 2006年にジョブセンスとしてリリース • 2017年にマッハバイトと改名 • リリース当時はPHPだったが • 2014年からRuby on Railsにリプレイスを開始
• 2022年に完了 について Copyright © Livesense Inc.
• 2006年にジョブセンスとしてリリース • 2017年にマッハバイトと改名 • リリース当時はPHPだったが • 2014年からRuby on Railsにリプレイスを開始
• 2022年に完了 リプレイス開始から10年 について Copyright © Livesense Inc.
不要なコードを削除したい Copyright © Livesense Inc.
• 不要なコードを検知する • 検知したコードを継続的に消していけるようにする 何をしたらいいのか Copyright © Livesense Inc.
• 不要なコードを検知する • 検知したコードを継続的に消していけるようにする←こっちが本題 何をしたらいいのか Copyright © Livesense Inc.
不要なコードを検知する Copyright © Livesense Inc. • oneshot coverageで動的に検知 • coverbandを導⼊することにしました
• いい感じに保存や可視化をしてくれるツール https://github.com/danmayer/coverband/tree/main
不要なコードを検知する Copyright © Livesense Inc. • 実⾏されていない⾏
不要なコードを検知する Copyright © Livesense Inc. • 描画されていないView
不要なコードを検知する Copyright © Livesense Inc. • 使われていないRoute
検知はできるようになった あとは関連したコードをどう継続して消せるようにするか Copyright © Livesense Inc.
仕組み作って、CI化しよう Copyright © Livesense Inc.
消したい対象 • routesにあるが、存在しないcontroller • routesにあるが、存在しないaction • controllerはあるが、存在しないroutes 検知したコードに関連するものも消すことを継続させる Copyright ©
Livesense Inc.
消したい対象 • routesにあるが、存在しないcontroller • routesにあるが、存在しないaction • controllerはあるが、存在しないroutes 検知したコードに関連するものも消すことを継続させる Copyright ©
Livesense Inc.
理想はRouting ErrorのController#Actionを取得したい routesを取得したい Copyright © Livesense Inc.
Rails.application.routes.routesとすると ActionDispatch::Journey::Routesとなって Rails.application.routes.routes.frist.defaultsでcontrollerとactionが取れる routesを取得したい Copyright © Livesense Inc.
消したい対象 • routesにあるが、存在しないcontroller • routesにあるが、存在しないaction • controllerはあるが、存在しないroutes 検知したコードに関連するものも消すことを継続させる Copyright ©
Livesense Inc.
先ほど取得した結果のcontrollerを app/controllers/{controller}_controller.rbにしてファイル検索ができる controllerやactionを取得したい Copyright © Livesense Inc.
先ほど取得した結果のcontrollerを app/controllers/{controller}_controller.rbにしてファイル検索ができる actionも def {action}がファイルにあるかどうかで判断できる controllerやactionを取得したい Copyright © Livesense Inc.
消したい対象 • routesにあるが、存在しないcontroller • routesにあるが、存在しないaction • controllerはあるが、存在しないroutes 検知したコードに関連するものも消すことを継続させる Copyright ©
Livesense Inc.
先ほど取得した結果のcontrollerを app/controllers/{controller}_controller.rbにしてファイル検索ができる ↓ app/controllers/**/*.rb から app/controllers/ _controller.rb を消したものがcontrollerになる controllerだけあるものを取得したい Copyright ©
Livesense Inc.
仕組み作って、CI化しよう Copyright © Livesense Inc.
• GitHub Actions上で動かす • GitHub Actionsの形式に沿ったエラーメッセージを出す 検知したコードに関連するものも消すことを継続させる Copyright © Livesense
Inc.
• GitHub Actions上で動かす • GitHub Actionsの形式に沿ったエラーメッセージを出す 検知したコードに関連するものも消すことを継続させる Copyright © Livesense
Inc.
• 不要なコードを検知し、消す • controllerやaction,routesを消せばCIが落ちるように仕組み化 まとめ Copyright © Livesense Inc.
None
詳しくはアドベントカレンダーに書きます! 12/1予定です Copyright © Livesense Inc.
None
None