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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
140
ブラウザアプリの継続的パフォーマンスモニタリング (序) / Continuous Browser Application Performance Monitoring; Act 1
moznion
0
140
cccccc
moznion
1
2.9k
履歴テーブル、今回はこう作りました 〜 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.7k
避けられないI/O待ちに対処する: Rails アプリにおけるSSEとasync gemの活用 / Tackling Inevitable I/O Latency in Rails Apps with SSE and the async gem
moznion
4
9.9k
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
480
地に足の付いた現実的な技術選定から魔力のある体験を得る『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
340
Other Decks in Technology
See All in Technology
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
7
2.8k
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
130
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.3k
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
0
130
パッチ更新でterraform initが落ちた日
grimoh
1
140
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
300
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
420
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
130
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
670
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
110
今さら理解するウェブフォントver.2026
takanorip
3
700
エンタメ企業のM&Aを支えるデータ基盤 ― 統合から店舗のリアルタイム分析まで / Data Engineering Summit 2026
genda
0
110
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
How to build a perfect <img>
jonoalderson
1
6.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Site-Speed That Sticks
csswizardry
13
1.6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
GraphQLとの向き合い方2022年版
quramy
50
15k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Visualization
eitanlees
153
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
470
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.