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
reFACToring
Search
moznion
July 25, 2026
Technology
1.2k
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
cccccc
moznion
1
2.5k
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
16
15k
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
11
7.5k
避けられないI/O待ちに対処する: Rails アプリにおけるSSEとasync gemの活用 / Tackling Inevitable I/O Latency in Rails Apps with SSE and the async gem
moznion
4
9k
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
450
地に足の付いた現実的な技術選定から魔力のある体験を得る『AIレシート読み取り機能』のケーススタディ / From Grounded Tech Choices to Magical UX: A Case Study of AI Receipt Scanning
moznion
7
5.2k
Chrome Extension Techniques from Hell
moznion
1
330
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
4
8.9k
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
1.3k
Other Decks in Technology
See All in Technology
2026-08-05 IBM Z開発最前線!IBM Bob Premium Package for Zって何がすごいの?
yutanonaka
0
110
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
250
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
250
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.5k
ラジオの科学
frievea
0
310
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
810
Digitization部 紹介資料
sansan33
PRO
2
7.7k
LanceDB入門
mocobeta
7
500
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
170
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
390
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Deep Space Network (abreviated)
tonyrice
0
250
Making Projects Easy
brettharned
120
6.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Building the Perfect Custom Keyboard
takai
2
840
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
320
Documentation Writing (for coders)
carmenintech
77
5.4k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
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.