~/VibeHandbook
無料 PDF

11 · 02

「垂直スライス」とは

垂直スライスとは、一度に一つの層をまるごと作るのではなく、アプリ全体を貫いて通る機能の薄い断片 — 少しのUI、少しのロジック、少しのデータ — のことです。

魅力的だが間違ったアプローチ(水平):

  • データベーススキーマを丸ごと作る。
  • 次にバックエンドのロジックをすべて作る。
  • それからUIを丸ごと作る。

3つすべてが終わるまで何も実行できないので、問題を早期に捕まえられません。

より良いアプローチ(垂直):

  • ステップ1: そのことの、考えられる限り最も単純なバージョンを、偽のデータでやるボタン。
  • ステップ2: それを本物のデータを使うようにする。
  • ステップ3: エッジケースを処理する。

違いは、並べて見ると一番よく分かります。水平は一度に一つの層をまるごと作り、最後まで何も実行しません。垂直は各ステップで、すべての層を貫く薄い実行可能な帯を作ります:

        水平 (危険)                   垂直 (安全)
                                                          実行? ▼
   ┌──────────────────────┐    ┌────┐ ┌────┐ ┌────┐ ┌────┐
   │        UI            │    │ UI │ │ UI │ │ UI │ │ UI │
   ├──────────────────────┤    ├────┤ ├────┤ ├────┤ ├────┤
   │       LOGIC          │    │logic││logic││logic││logic│
   ├──────────────────────┤    ├────┤ ├────┤ ├────┤ ├────┤
   │        DATA          │    │data│ │data│ │data│ │data│
   └──────────────────────┘    └────┘ └────┘ └────┘ └────┘
   3つ全部作ってから実行        各ステップを個別に実行
   (最後まで実行できない)        各ステップが単独で動く

各スライスは実行可能です。それがアプリを常に動く状態に保つのです。

良いスライスを見極める便利なテスト: デモできますか? 画面を指さして「これを見て」と言えるなら、それは本物の垂直スライスです。正直なデモが「まあ、スキーマは整いました」だけなら、あなたは水平な層を作ったのであり、それが正しいかどうかはずっと後 — たいていは最悪のタイミング — でしか分かりません。

オフラインでも読みたい?

本編まるごとを PDF または EPUB で無料ダウンロード。