Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
reFACToring
Search
moznion
July 25, 2026
Technology
1.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
reFACToring
大吉祥寺.pm 2026 スポンサーLTの資料です #kichijojipm
https://fortee.jp/dai-kichijojipm-2026
moznion
July 25, 2026
More Decks by moznion
See All by moznion
go-sqletch
moznion
0
160
ブラウザアプリの継続的パフォーマンスモニタリング (序) / Continuous Browser Application Performance Monitoring; Act 1
moznion
0
150
cccccc
moznion
1
3k
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
16
16k
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
11
7.8k
避けられないI/O待ちに対処する: Rails アプリにおけるSSEとasync gemの活用 / Tackling Inevitable I/O Latency in Rails Apps with SSE and the async gem
moznion
4
10k
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
500
地に足の付いた現実的な技術選定から魔力のある体験を得る『AIレシート読み取り機能』のケーススタディ / From Grounded Tech Choices to Magical UX: A Case Study of AI Receipt Scanning
moznion
7
5.3k
Chrome Extension Techniques from Hell
moznion
1
350
Other Decks in Technology
See All in Technology
リアクションエンジニア ― 小さなリアクションから、話しかけやすい組織をつくる ―
ryuguyana
1
130
ゼロから作るWebアプリの新定番!?Amplify Gen 2 × AWS Blocksで実現する「開発速度とRDBの柔軟性のいいとこ取り」
amixedcolor
1
170
AIエージェントの監視、思考を見るか行動を見るか / Monitoring AI Agents: Thoughts or Actions
yusukeshimizu
2
170
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
810
SLOを阻む不安
sraku2159
0
230
ライフワーク「猫でもわかるDirectConnect」
kentapapa
0
270
新卒エンジニア、 介護士になる
ryu1013
1
690
自律的なチームを作るためにTechPMがやらないこと
ny7760
1
530
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
450
An Introduction to Context Ontology Accelerator (teaching AI agents what your data means)
inariku
PRO
1
100
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
620
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
1
720
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.3k
A designer walks into a library…
pauljervisheath
211
25k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Darren the Foodie - Storyboard
khoart
PRO
4
4.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
390
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
740
Transcript
© Timeleap Inc. CONFIDENTIAL reFACToring Sat, 25 Jul 2026 大吉祥寺
.pm 2026 スポンサー LT https://timeleap.co.jp/ @moznion 1
@moznion タイムリープ株式会社 ソフトウェアエンジニア プロダクト責任者
None
None
None
遠隔接客サービスRURAの状況 • 開発開始してから7年が経過 ◦ その間に⾊々あった (らしい) • サービスの成⻑に伴って安定性とスケーラビリティを ⾼める必要が出てきた =>
⼤絶賛リファクタリング‧リアーキテクチャ中 © Timeleap Inc. 6
遠隔接客サービスRURAの状況 • 開発開始してから7年が経過 ◦ その間に⾊々あった (らしい) • サービスの成⻑に伴って安定性とスケーラビリティを ⾼める必要が出てきた =>
⼤絶賛リファクタリング‧リアーキテクチャ中 「かわるもの‧かわらないもの」 © Timeleap Inc. 7
リファクタリング、あなたはどこから © Timeleap Inc. 8
リファクタリング、あなたはどこから おもしろそうなところから!! © Timeleap Inc. 9
正解!!!!!! (不正解)
どこ‧なにからリファクタリングすべきか ざっくり⾔うと: ⼀番「効く」所から 効くとは? • 障害が起こりまくっている箇所 • パフォーマンスが悪い箇所 • 開放閉鎖原則が満たされていない箇所
• 理解が難しい箇所 • とにかく変更されまくっている箇所 • などなど © Timeleap Inc. 11
どこ‧なにからリファクタリングすべきか ざっくり⾔うと: ⼀番「効く」所から 効くとは? • 障害が起こりまくっている箇所 • パフォーマンスが悪い箇所 • 開放閉鎖原則が満たされていない箇所
• 理解が難しい箇所 • とにかく変更されまくっている箇所 • などなど © Timeleap Inc. 12
どこ‧なにからリファクタリングすべきか ざっくり⾔うと: ⼀番「効く」所から 効くとは? • 障害が起こりまくっている箇所 • パフォーマンスが悪い箇所 • 開放閉鎖原則が満たされていない箇所
• 理解が難しい箇所 「かわるもの‧わからないもの」 • とにかく変更されまくっている箇所 • などなど © Timeleap Inc. 13
Cyclomatic Complexity (循環複雑度) と Cognitive Complexity (認知複雑度) の ⾼速な計測ライブラリ‧CLI moznion/cccc
https://speakerdeck.com/moznion/cccccc これら複雑度が⾼いと理解が難しい傾向に ある (はず) という発想から継続的に 計測‧監視をしている……
という話をテックブログに書いてます!!!! テックブログはじめました & 継続的な循環的複雑度と認知的複雑度の 計測をしているという話題 - タイムリープ テックブログ https://techblog.timeleap.co.jp/entry/2026/07/09/093440 ©
Timeleap Inc. 15
off-topic: moznion/ccccが進化している 当初のサポート⾔語: JS, TS, Go, Rust 現在のサポート⾔語: JS, TS,
Go, Rust, Lisp (族), PHP, Ruby, Python, Perl, C, Zig, Java, Kotlin, Dart, Swift ぜひ使ってみてください! コントリビューターの皆様ありがとうございます!!! © Timeleap Inc. 16
どこ‧なにからリファクタリングすべきか ざっくり⾔うと: ⼀番「効く」所から 効くとは? • 障害が起こりまくっている箇所 • パフォーマンスが悪い箇所 • 開放閉鎖原則が満たされていない箇所
• 理解が難しい箇所 • とにかく変更されまくっている箇所 • などなど © Timeleap Inc. 17
どこ‧なにからリファクタリングすべきか ざっくり⾔うと: ⼀番「効く」所から 効くとは? • 障害が起こりまくっている箇所 • パフォーマンスが悪い箇所 • 開放閉鎖原則が満たされていない箇所
• 理解が難しい箇所 • とにかく変更されまくっている箇所 • などなど © Timeleap Inc. 18
変更されまくっている箇所は臭う 何をするにもそこが変更されるということは • 仕様変更が頻発している ◦ (もしかして: 仕様が無いかも……?) • 責務過多の気配 •
多数の機能から (不適切な) 興味を持たれている • などなど 要はホットスポットとして捉えることができそう © Timeleap Inc. 19
変更傾向を⾒ておきたい…… というわけで作った: moznion/hotcarpet 何度⽬の再発明なんだ……? © Timeleap Inc. 20
moznion/hotcarpet コミット履歴を取ってファイル単位のリーダーボードを取る © Timeleap Inc. 21
moznion/hotcarpet コミット履歴を取って関数単位のリーダーボードを取る © Timeleap Inc. 22
moznion/hotcarpet コミット履歴を取って関数単位のリーダーボードを取る これが便利! © Timeleap Inc. 23
moznion/hotcarpet コミット履歴を取って関数単位のリーダーボードを取る 👉 ファイル単位よりも細かい粒度でホットスポットを認識できる 「かわるもの‧かわらないもの」がわかる • hotcarpet中⾝の話 ◦ ⾔語ごとのAnalyzer Pluginを作って分析ができる
▪ ES/TS ▪ Rust ▪ Go ◦ Analyzer Pluginを作って組み込めば任意の⾔語で実現可能 ▪ 無ければファイル単位の解析のみで終わる © Timeleap Inc. 24
変更傾向を継続的に⾒ておきたい…… GitHub Actionsもございます: moznion/hotcarpet-action ご活⽤ください!!! © Timeleap Inc. 25
どこ‧なにからリファクタリングすべきか ざっくり⾔うと: ⼀番「効く」所から 効くとは? • 障害が起こりまくっている箇所 • パフォーマンスが悪い箇所 • 開放閉鎖原則が満たされていない箇所
• 理解が難しい箇所 • とにかく変更されまくっている箇所 • などなど © Timeleap Inc. 26
どこ‧なにからリファクタリングすべきか ざっくり⾔うと: ⼀番「効く」所から 効くとは? • 障害が起こりまくっている箇所 • パフォーマンスが悪い箇所 • 開放閉鎖原則が満たされていない箇所
• 理解が難しい箇所 • とにかく変更されまくっている箇所 • などなど これらは事実 <ファクト> © Timeleap Inc. 27
© Timeleap Inc. CONFIDENTIAL reFACToring Sat, 25 Jul 2026 大吉祥寺
.pm 2026 スポンサー LT https://timeleap.co.jp/ @moznion 28
© Timeleap Inc. CONFIDENTIAL reFACToring Sat, 25 Jul 2026 大吉祥寺
.pm 2026 スポンサー LT リファクタ (リング) は ファクトと共に やるのだぞ https://timeleap.co.jp/ @moznion ここで一句 : 29
reFACToring やはり事実に基いたリファクタリングは効果がある…… © Timeleap Inc. 30
reFACToring やはり事実に基いたリファクタリングは効果がある…… が、リファクタリング (というかソフトウェアエンジニアリング) には JOY度が必要ですよね!!!!!! © Timeleap Inc. 31
正解!!!!!! (不正解)
タイムリープでは「事実」と「JOY度」両⽅を⼤事にして 両⽴できるエンジニアを募集しています!! © Timeleap inc. All Rights Reserved.