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
ときめく開発体験を~デッドコードをなくして ときめきをつくる~ / ginzarails_vo...
Search
リンクアンドモチベーション
May 21, 2021
Technology
1
410
ときめく開発体験を~デッドコードをなくして ときめきをつくる~ / ginzarails_vol33_presentation
銀座Rails#33 登壇資料
#ginzarails
リンクアンドモチベーション
May 21, 2021
Tweet
Share
More Decks by リンクアンドモチベーション
See All by リンクアンドモチベーション
AIが悪いんじゃないよ、君が悪いんだよ / AI-engineering-summit-link-and-motivation
lmi
1
43
生成AIを活用して一月で10万行、20倍速で新規プロダクトを形にする開発術 / 20x-product-development-link-and-motivation
lmi
0
290
生成AI活用で「一人当たり売上高140%」の実現 / generativeai-summit-5-link-and-motivation
lmi
0
74
生成AIで実現!スッキリ解決、デッドコードの整理術 /cleaning-up-dead-code-link-and-motivation
lmi
0
650
リンクアンドモチベーション 営業コンサルタント向け紹介資料 / Introduction to Link and Motivation for Sales and Consultants
lmi
0
130k
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
410k
AIとともに歩んだライブラリアップデートの道のり/ vue-fes-japan-2024-link-and-motivation
lmi
2
7.1k
Aiderとともに進めるライブラリアップデートの第一歩 / ai-agent-software-link-and-motivation
lmi
1
250
AIとともに踏み出す技術的負債返済への一歩 / Tech-Debt-Meetup-link-and-motivation
lmi
1
150
Other Decks in Technology
See All in Technology
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.6k
AIコーディング新時代を生き残るための試行錯誤 / AI Coding Survival Guide
tomohisa
8
11k
開発効率と信頼性を両立する Ubieのプラットフォームエンジニアリング
teru0x1
0
130
SwiftUI Transaction を徹底活用!ZOZOTOWN UI開発での活用事例
tsuzuki817
1
720
データ戦略部門 紹介資料
sansan33
PRO
1
3.2k
医療業界に特化した音声認識モデル構築のためのアノテーションの実態
thickstem
0
530
ハッカー視点で学ぶサイバー攻撃と防御の基本
nomizone
3
1.4k
「規約、知識、オペレーション」から考える中規模以上の開発組織のCursorルールの 考え方・育て方 / Cursor Rules for Coding Styles, Domain Knowledges and Operations
yuitosato
4
880
産業機械をElixirで制御する
kikuyuta
0
140
AWS Lambdaでサーバレス設計を学ぼう_ベンダーロックインの懸念を超えて-サーバレスの真価を探る
fukuchiiinu
4
960
Roo CodeとClaude Code比較してみた
pharma_x_tech
1
250
JavaのMCPサーバーで体験するAIエージェントの世界
tatsuya1bm
1
220
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
A Tale of Four Properties
chriscoyier
159
23k
Thoughts on Productivity
jonyablonski
69
4.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
It's Worth the Effort
3n
184
28k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
890
The Cult of Friendly URLs
andyhume
79
6.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Fireside Chat
paigeccino
37
3.5k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Transcript
ときめく開発体験を デッドコードをなくして ときめきをつくる 伊藤遼
自己紹介 伊藤 遼 • twitter, qiita: @haruka_odenkun (全然投稿していないですが...) • (株)
リンクアンドモチベーションに新卒入社 3年目 • やってきたこと ◦ エンタープライズ向け性能改善 ◦ (現在) CREチームの立ち上げ
今日話すこと 1Qで2万行ものデッドコードを削除した話
今日話すこと 1Qで2万行ものデッドコードを削除した話 デッドコード削除が開発組織作りに繋がった話
今日話すこと • プロジェクトの背景 • 苦労したこと • 何をしたか • 結果 1Qで2万行ものデッドコードを削除した話
デッドコード削除が開発組織作りに繋がった話
背景とPjtの発足 • 弊社サービスのニーズが高まり開発効率を加速したい ◦ 生産性 / 安定性 が下がっている ◦ 技術負債としてデッドコードが増えてきた
生産性の向上に対して ROIが高いのがデッドコード削除だった
なぜデッドコードが放置されるのか 1. どう進めていったらいいかわからない 2. 作業時間をまとめて確保できない 3. そもそもそういう文化がない
じゃあ何をしたか? 1. どう進めていったらいいかわからない → 作業フローの整備: ユーザー側から削除 2. 作業時間をまとめて確保できない → 仕組み作り:
定期タスクと合体 3. そもそもそういう文化がない → 文化作り: 「ときめき」の布教
参照先の参照先まで当たるのは骨が折れる ←↑ 実はデッドコードかも 1. 作業フローの整備: ユーザー側から削除 例: こんなデッドコードがありました
1. ディレクトリ構成やgrepで参照されないフロントコードの削除 2. リクエストログやapmツールを使用して不要なエンドポイントを削除 3. routes.rbとコントローラーの比較から不要なアクションの削除 4. model (service) 層の不要なメソッドにlogを仕込んで定期監視
/ 削除 5. 不要なテーブルの削除 フロントコ ード エンド ポイント コントローラー (サービス) モデル テーブル app/view/ etc. config/routes.rb app/controller/* (app/service/*) app/model/* (db/*) 1. 作業フローの整備: ユーザー側から削除
フロントコ ード エンド ポイント コントローラー (サービス) モデル テーブル app/view/ etc.
config/routes.rb app/controller/* (app/service/*) app/model/* (db/*) 1. 作業フローの整備: ユーザー側から削除 + 一時利用rake task、patchもノイズとなるため使用時期をもとに削除 + 上記コードに関連するテストコードも削除
フロントコ ード エンド ポイント コントローラー (サービス) モデル テーブル app/view/ etc.
config/routes.rb app/controller/* (app/service/*) app/model/* (db/*) 1. 作業フローの整備: ユーザー側から削除 参照順に棚卸しすることで効率よく削除できる
• 1h / week の固定時間にPjtメンバーで雑談しながら作業 • 月次タスクに仕込んだログのチェックを追加 • リリース前チェックは月次のシナリオテストに混ぜ込む 2.
仕組み作り:定期タスクにする/合体させる 「安全に」「継続的に」削除を進められるようにする
3. 文化作り: 「ときめき」の布教 引用: Netflix KonMari ~人生がときめく片づけの魔法~ コードに対しても「ときめくか?」を布教
• slackのemojiの追加 • デッドコードを見つけて起票したらbotから感謝 • リリースしたらみんなで褒め称える ときめかないなら捨てるという文化が醸成された 3. 文化作り: 「ときめき」の布教
結果: 1Qで約2万行の削除!! • ビッグバンリリース + 小さいリリース
もう一つの結果: 「ときめき」の広がり デッドコードに対してだけでなく... • 大規模機能開発時にも 「これもう消せる?」というやりとりが発生! • コードだけでなく ドキュメントやチケットの整理も進行中! or
まとめ: 「ときめき」は技術的負債を減らす • 技術的負債返却の第一歩 ◦ デッドコードの削除は手をつけやすくコスパもいい • 効果はコード以外にも波及 ◦ 「ときめき」の浸透で開発者の主体性を後押し