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
divide and conquer
Search
achanggg
January 28, 2026
12
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
divide and conquer
achanggg
January 28, 2026
More Decks by achanggg
See All by achanggg
AIはエンジニアのスキルを伸ばすのか?奪うのか?
achanggg
0
13
品質向上のマインドセット
achanggg
0
130
爆速効率化!Claude AI ✕ ツールで変わるエンジニアの仕事術 〜MCP構築と実践勉強会〜
achanggg
0
260
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.9k
Into the Great Unknown - MozCon
thekraken
41
2.8k
How to Ace a Technical Interview
jacobian
280
24k
A Soul's Torment
seathinner
8
3.8k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
Faster Mobile Websites
deanohume
310
32k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Scaling GitHub
holman
464
140k
It's Worth the Effort
3n
188
29k
Transcript
Divide and Conquer
私の好きなアルゴリズム 私の一番好きなアルゴリズムは Divide and Conquer(分割統治) です。 なぜ好きか?応用範囲が異常に広い アルゴリズム システム設計 仕事の進め方
日常生活
今日話したいこと Divide and Conquer とは何か? なぜこの考え方がここまで強いのか? システム設計でどう使われているか 日常生活でどう使えるか そして、どこで失敗するのか
SECTION 01 Divide and Conquer とは?
Divide and Conquer の定義 大きな問題を 小さな問題に分割し それぞれを解決し 結果を統合する考え方
基本ステップ STEP 1 Divide 問題を小さくする STEP 2 Conquer 小さな問題を解く STEP
3 Combine 解をまとめる 実は Combine が一番難しい
なぜ Divide and Conquer は強いのか? 理由 ① 人間の限界に合っている 理由 ②
変更と成長に強い 理由 ③ 失敗しても致命傷になりにくい 現実世界は「一発成功」前提ではない
アルゴリズムの代表例 一気に解こうとしない
マージソート(超ざっくり) [8, 3, 5, 1] ↓ Divide [8, 3] [5,
1] ↓ Conquer [3, 8] [1, 5] ↓ Combine [1, 3, 5, 8] ✓ 分割は単純 半分に分けるだけ ✓ 統合ルールが明確 小さい順にマージ Combine が設計の肝
SECTION 02 システム設計における Divide and Conquer
システム設計は巨大な問題 要件が多い 関係者が多い 変更が前提 正解が一つではない Divide and Conquer しないと破綻する
分割の軸(よく使われる) ドメイン(業務) 責務 データのライフサイクル 同期 / 非同期 チーム構成
マイクロサービスは分割の成功例…? ✓ Divide は成功しやすい •サービス単位で分割 •チーム単位で分割 •デプロイ単位で分割 ✗ しかし Combine
が地獄 •API が増えすぎる •データ整合性が崩れる •障害調査が難しい •「結局どこが悪いの?」 分割より統合の方が難しい
Combine で必要になる設計 最初から設計するもの
分割の失敗パターン 失敗例 ① レイヤーで切りすぎる Controller → Service → Repository 変更理由が同時に変わる
→ 結局全部直す 失敗例 ② 技術都合で分割 DB ごと、言語ごとに分割 業務上の意味がない → 統合コストだけ増える 失敗例 ③ Combine を考えずに分割 API が場当たり的、責務が曖昧 分割した瞬間から 負債が始まる
分割の判断基準(実践編) どこで切るか?考え方の順序 1. この変更は何が原因で起きるか? 2. 一緒に変わるものは何か? 3. 別々に変えたいものは何か? 4. 失敗したらどこまで壊れてよいか?
良い分割のサイン ✓ 変更理由が1つ ✓ 名前で説明できる ✓ 単独でテストできる ✓ チームの境界と合っている
SECTION 03 日常生活の Divide and Conquer
実は毎日やっている 引っ越し 大掃除 仕事のタスク 勉強計画
大きすぎるタスク Before 「新機能を作る」 不安・先延ばし・停止 ✓ Divide するとこうなる 1. 要件整理 2.
設計 3. 実装 4. テスト 5. リリース 今日やることが見える 進められる
CONCLUSION まとめ
今日のメッセージ Divide and Conquer は「生き方」 分割は簡単、統合が本番 良い分割は未来の自分を助ける
難しい問題は まだ分割が足りていないだけ