Upgrade to Pro — share decks privately, control downloads, hide ads and more …

divide and conquer

Avatar for achanggg achanggg
January 28, 2026
0

divide and conquer

Avatar for achanggg

achanggg

January 28, 2026
Tweet

Transcript

  1. なぜ Divide and Conquer は強いのか? 理由 ① 人間の限界に合っている 理由 ②

    変更と成長に強い 理由 ③ 失敗しても致命傷になりにくい 現実世界は「一発成功」前提ではない
  2. マージソート(超ざっくり) [8, 3, 5, 1] ↓ Divide [8, 3] [5,

    1] ↓ Conquer [3, 8] [1, 5] ↓ Combine [1, 3, 5, 8] ✓ 分割は単純 半分に分けるだけ ✓ 統合ルールが明確 小さい順にマージ Combine が設計の肝
  3. マイクロサービスは分割の成功例…? ✓ Divide は成功しやすい •サービス単位で分割 •チーム単位で分割 •デプロイ単位で分割 ✗ しかし Combine

    が地獄 •API が増えすぎる •データ整合性が崩れる •障害調査が難しい •「結局どこが悪いの?」 分割より統合の方が難しい
  4. 分割の失敗パターン 失敗例 ① レイヤーで切りすぎる Controller → Service → Repository 変更理由が同時に変わる

    → 結局全部直す 失敗例 ② 技術都合で分割 DB ごと、言語ごとに分割 業務上の意味がない → 統合コストだけ増える 失敗例 ③ Combine を考えずに分割 API が場当たり的、責務が曖昧 分割した瞬間から 負債が始まる
  5. 大きすぎるタスク Before 「新機能を作る」 不安・先延ばし・停止 ✓ Divide するとこうなる 1. 要件整理 2.

    設計 3. 実装 4. テスト 5. リリース 今日やることが見える 進められる