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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
リンクアンドモチベーション
PRO
May 21, 2021
Technology
470
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ときめく開発体験を~デッドコードをなくして ときめきをつくる~ / ginzarails_vol33_presentation
銀座Rails#33 登壇資料
#ginzarails
リンクアンドモチベーション
PRO
May 21, 2021
More Decks by リンクアンドモチベーション
See All by リンクアンドモチベーション
「作っても使われない」を防ぐための工夫
lmi
PRO
0
32
RPAを1000個作る前に、 1000パターンを減らして 40% の工数削減を実現した話
lmi
PRO
0
39
初めて要件定義をして大失敗した私が、 AIと一緒にやったら上手くいった話
lmi
PRO
0
39
築地 Tech Night 〜 AI活用、実例で語る現場のリアル 〜/ai-efficiency-human-productivity_link-and-motivation
lmi
PRO
0
32
AIに性能改善をさせたけど、 実は何も分かっていなかった話/ai-performance-improvement_link-and-motivation
lmi
PRO
0
85
余白の作法 〜AI時代の、余白の使いかた〜 / emoasis-12-link-and-motivation
lmi
PRO
0
340
SFDCはなぜ"高額なDB"になるのか 〜現場が変わる運用設計とAI活用の実践〜/sfdc-operation-design-ai-utilization_link-and-motivation
lmi
PRO
0
50
経験より先に、役割がきた —何を学べば、役割に追いつけるか/エンジニアの役割の変化に向き合うConference 2026
lmi
PRO
0
650
AI架電FBでIS新人を3ヶ月で戦力化した話 /ai-feedback-3month-rampup_link-and-motivation
lmi
PRO
0
140
Other Decks in Technology
See All in Technology
モダンフロントエンド 開発研修
recruitengineers
PRO
4
650
システム思考で問題に対処する
yussak
0
290
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
5.4k
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.6k
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.5k
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
220
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
200
Genie Codeハンズオン基礎編
taka_aki
1
120
モバイルアプリ開発概論2026
recruitengineers
PRO
5
590
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
830
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
250
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9k
Featured
See All Featured
Side Projects
sachag
455
43k
Exploring anti-patterns in Rails
aemeredith
3
460
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
Typedesign – Prime Four
hannesfritz
42
3.1k
Marketing to machines
jonoalderson
1
5.7k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
890
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Practical Orchestrator
shlominoach
191
12k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Faster Mobile Websites
deanohume
310
32k
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
まとめ: 「ときめき」は技術的負債を減らす • 技術的負債返却の第一歩 ◦ デッドコードの削除は手をつけやすくコスパもいい • 効果はコード以外にも波及 ◦ 「ときめき」の浸透で開発者の主体性を後押し