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
cccccc
Search
moznion
July 08, 2026
Technology
2.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
cccccc
Findy オフラインシリーズ感謝祭 〜先陣たちの宴〜の発表資料です
https://findy.connpass.com/event/390197/
moznion
July 08, 2026
More Decks by moznion
See All by moznion
ブラウザアプリの継続的パフォーマンスモニタリング (序) / Continuous Browser Application Performance Monitoring; Act 1
moznion
0
120
reFACToring
moznion
1
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.6k
避けられないI/O待ちに対処する: Rails アプリにおけるSSEとasync gemの活用 / Tackling Inevitable I/O Latency in Rails Apps with SSE and the async gem
moznion
4
9.3k
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
470
地に足の付いた現実的な技術選定から魔力のある体験を得る『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
9k
Other Decks in Technology
See All in Technology
20260912_スクフェス三河
kgnkhkr
0
250
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
150
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
25k
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
140
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
300
Sigmaで作る業務アプリ
kazushiro_honma
0
110
Claude Code本って、 読む必要あるの?
oikon48
2
370
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
530
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
110
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
180
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
260
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
500
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Raft: Consensus for Rubyists
vanstee
141
7.7k
RailsConf 2023
tenderlove
30
1.5k
Test your architecture with Archunit
thirion
2
2.4k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
680
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
440
What's in a price? How to price your products and services
michaelherold
247
13k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Transcript
© Timeleap Inc. 1 CONFIDENTIAL https://timeleap.co.jp/ cccccc Thu, 25 Jun
2026 Findy オフラインシリーズ感謝祭 〜先陣たちの宴〜 @moznion
@moznion タイムリープ株式会社 ソフトウェアエンジニア プロダクト責任者
© Timeleap Inc. Cyclomatic Complexity / Cognitive Complexity 3 •
Cyclomatic Complexity - 循環的複雑度 ◦ 制御フローを使ってプログラムの複雑さを数学的に定義して 指標としたもの ▪ ソフトウェア⼯学的な理論的メトリクス ◦ ざっくり⾔うと: どれくらい分岐 (経路) があって複雑なのか • Cognitive Complexity - 認知的複雑度 ◦ ⼈間の認知負荷を数値化して指標としたもの ▪ 循環的複雑度の⾜りていない部分を補う⽬的 ▪ 開発者体験を重視した実務的メトリクス
© Timeleap Inc. Cyclomatic Complexity 4 • 分岐が増えるほど独⽴した実⾏経路が増える ◦ =>
テストすべき経路数を複雑さとして測る ◦ 理論上はコードのグラフを描画して計算して求める • 定義 ◦ M = E - N + 2P ▪ M = Cyclomatic Complexity ▪ E = Edge(辺) ▪ N = Node(ノード) ▪ P = 連結成分数 ◦ 実質上はグラフを描かず 1 + 分岐数 で計測されることが多い ▪ 分岐‧制御構⽂が発⽣するとスコアが+1
© Timeleap Inc. Cyclomatic Complexity 5 • 課題 ◦ ネストを考慮しない
これらはどちらもスコア4
© Timeleap Inc. Cyclomatic Complexity 6 • 課題 ◦ 理解容易性を測ることはできない
スコアだけでは負荷の差を考慮できない
© Timeleap Inc. Cognitive Complexity 7 • Cyclomatic Complexityを補うための指標 •
原則 ◦ 線形な流れを壊すと加点 ◦ ネストするとネスト階層ぶん加点 ◦ シンタックスシュガーは無視
© Timeleap Inc. Cyclomatic Complexity / Cognitive Complexity 8 •
Cyclomatic Complexityで⾒れるもの ◦ テスト容易性 ◦ バグ混⼊リスク • Cognitive Complexityで⾒れるもの ◦ 可読性 ◦ 保守性 ◦ (「ネストは悪い」「早期 return は良い」「switch は思った ほど悪くない」というような熟達者の経験則のスコア化)
© Timeleap Inc. 有⽤なメトリクスなのか? 9 • YES! ◦ 例) ▪
分岐経路は多い (Cyclomatic⾼) ▪ 理解は⽐較的容易 (Cognitive低) ▪ => テストケースは増えるが保守性は それほど悪くない
© Timeleap Inc. 有⽤なメトリクスなのか? 10 • YES! ◦ 例) ▪
経路数は少ない (Cyclomatic低) ▪ 理解が難しい (Cognitive⾼) ▪ => テストはそれほど⼤変ではないが コードレビューや保守は⾟い
© Timeleap Inc. • No… ◦ 現在のソフトウェアの複雑さは「関数」だけに閉じない ◦ このメトリクスの値だけを改善してもソフトウェアが 良くなるわけではない
▪ むしろいびつになる可能性がある ▪ グッドハートの法則 ™ とはいえ数値が低ければ多くの場合良いというのはそう。 有⽤なメトリクスなのか? 11
© Timeleap Inc. なぜ今? 12 • Cyclomatic Complexity は 1976
年、 Cognitive Complexity は 2017 年の概念 • 依然として有効 ◦ 関数の複雑さの測定 • ⼤規模なアーキテクチャ‧構造の変化による効果を追える ◦ ヘルスチェック的にメトリクスを追える ▪ どんな変更がどこで起こったのかがわかる ▪ ⼤きなリファクタリングをやっている間などでは有益 ◦ LLMの台頭によって⼤きな変更が容易になった ◦ (LLMにスコアを下げさせる指⽰をすることに意味は……?)
© Timeleap Inc. というわけで 13 https://github.com/moznion/cccc • Cyclomatic/Cognitive Complexity計測器‧CLI •
特徴 ◦ Rust製 ◦ ⾼速 ◦ Language agnostic (es, rust, goがdefault supported)
© Timeleap Inc. cccc 14 • GitHub Actionsでトラッキングできるようにしている ◦ https://github.com/moznion/cccc-es-action
• k1LoW/octocovを使って継続トラッキング
© Timeleap Inc. cccc 15 • コーディングエージェント華の時代 ◦ コードの治安がおかしなことになっていないかを 確認できるに越したことはない
(ヘルスチェック) ◦ 何か⼤きな変更が加えられた時に、それがどのように影響した のかを数値トレンドを追うことで認識できる ▪ 逆に数値が⼤きく変化したことから何か⼤規模な変更を 加えられたことに気付ける • コーディングエージェント⾃体にスコアは追わせていない ◦ ⼈間がこれを追うのは無意味だがAIだとどうか……?
© Timeleap Inc. 16 CONFIDENTIAL https://timeleap.co.jp/ cccccc Thu, 25 Jun
2026 Findy オフラインシリーズ感謝祭 〜先陣たちの宴〜 @moznion
© Timeleap Inc. 17 CONFIDENTIAL https://timeleap.co.jp/ cccccc Thu, 25 Jun
2026 Findy オフラインシリーズ感謝祭 〜先陣たちの宴〜 @moznion Cyclomatic Complexity & Cognitive Complexity
© Timeleap Inc. 18 CONFIDENTIAL https://timeleap.co.jp/ cccccc Thu, 25 Jun
2026 Findy オフラインシリーズ感謝祭 〜先陣たちの宴〜 @moznion Cyclomatic Complexity & Cognitive Complexity Claude Code
© Timeleap Inc. なぜこの話を????? 19 • かつてPerl::Lintというものを作っていました ◦ めっちゃ発表しました ▪
YAPC::Asia 2014 ▪ YAPC::EU 2015 ◦ 登壇って良いものですね • このPerl::Lintの中でもCyclomatic Complexity計測器を書いていた ◦ 10年ぶりに再実装 ◦ そしてここで発表 ◦ 登壇って良いものですね
© Timeleap inc. All Rights Reserved.