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
440
ときめく開発体験を~デッドコードをなくして ときめきをつくる~ / ginzarails_vol33_presentation
銀座Rails#33 登壇資料
#ginzarails
リンクアンドモチベーション
May 21, 2021
Tweet
Share
More Decks by リンクアンドモチベーション
See All by リンクアンドモチベーション
VueとAIは相性悪い?そんなの都市伝説です / vuefes2025-link-and-motivation
lmi
1
410
インフラとアプリの境界を越える組織のつくり方 / Development Organizations in the AI Era
lmi
1
260
リンモチとRails / Link-and-Motivation-and-Rails
lmi
0
440
大きな目標を得た Kaigi on Rails 2025 / KoR2025-after-session-link-and-motivation
lmi
0
26
Four Keysが改善しても、生産性が上がらない不都合な真実 / pek2025-link-and-motivation
lmi
3
950
EMの仕事=余白のデザイン! / EM-Oasis-9-LMI
lmi
1
320
新卒エンジニアが挑んだ Cursor × FigmaMCPでの高速UI実装/Canly Tech Hub
lmi
1
530
EKSでManifestまでTerraformで管理するのが意外とよかった/SRE_NEXT_After_2025
lmi
0
240
PRから改善していくAI開発 / Beyond-the-Backend-Link-and-Motivation
lmi
0
390
Other Decks in Technology
See All in Technology
物体検出モデルでシイタケの収穫時期を自動判定してみた。 #devio2025
lamaglama39
0
270
ソースを読むプロセスの例
sat
PRO
15
9.8k
AI時代の開発を加速する組織づくり - ブログでは書けなかったリアル
hiro8ma
1
250
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
もう外には出ない。より快適なフルリモート環境を目指して
mottyzzz
11
8.7k
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
310
Railsの話をしよう
yahonda
0
170
Microsoft 365 の認証と承認を理解する / Understanding Microsoft 365 Authentication and Authorization
karamem0
0
110
Building a cloud native business on open source
lizrice
0
170
Data Hubグループ 紹介資料
sansan33
PRO
0
2.2k
AI-Readyを目指した非構造化データのメダリオンアーキテクチャ
r_miura
1
280
Azureコストと向き合った、4年半のリアル / Four and a half years of dealing with Azure costs
aeonpeople
1
250
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
7
290
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
990
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
The Invisible Side of Design
smashingmag
302
51k
GitHub's CSS Performance
jonrohan
1032
470k
Code Review Best Practice
trishagee
72
19k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Scaling GitHub
holman
463
140k
Site-Speed That Sticks
csswizardry
13
920
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
930
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
まとめ: 「ときめき」は技術的負債を減らす • 技術的負債返却の第一歩 ◦ デッドコードの削除は手をつけやすくコスパもいい • 効果はコード以外にも波及 ◦ 「ときめき」の浸透で開発者の主体性を後押し