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
110
0
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.2k
履歴テーブル、今回はこう作りました 〜 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.4k
避けられないI/O待ちに対処する: Rails アプリにおけるSSEとasync gemの活用 / Tackling Inevitable I/O Latency in Rails Apps with SSE and the async gem
moznion
4
8.5k
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
440
地に足の付いた現実的な技術選定から魔力のある体験を得る『AIレシート読み取り機能』のケーススタディ / From Grounded Tech Choices to Magical UX: A Case Study of AI Receipt Scanning
moznion
7
5.1k
Chrome Extension Techniques from Hell
moznion
1
320
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
_NIKKEI_Tech_Talk__勉強会は熱量では続かない___17回続いた輪読会の設計術.pdf
_awache
1
100
複数プロダクトで進めるAI機能実装 ── 実践から得たリアルな学びとロードマップ実現への挑戦 / AICon2026_yanari
rakus_dev
1
270
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
150
『モデル + ハーネス』で読み解く AIエージェント入門
oracle4engineer
PRO
2
160
なぜ、あなたのAPIは使われないのか? AX時代の設計原則、ガードレール、運用体制
yokawasa
1
200
20260720_クラウド女子会×PyLadiesTokyoコラボ Amazon Bedrock ハンズオン用資料
yuuka51
1
110
副作用のある Lambda でも Lambda Power Tuning は使えるのか / lambda-power-tuning-side-effects
koukihosaka
1
140
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
3
930
AIが当たり前の組織で エンジニアはどう育つか
nishihira
1
950
事業成長とAI活用を止めないデータ基盤アーキテクチャの設計思想
hiracky16
0
430
AICoEでAIネイティブ組織への進化
yukiogawa
0
210
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.5k
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Cult of Friendly URLs
andyhume
79
7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Statistics for Hackers
jakevdp
799
230k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
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.