~/VibeHandbook
PDF бесплатно

Глава 11 · 02

Что значит «вертикальный срез»

Вертикальный срез — это тонкий кусок функции, который проходит насквозь через всё приложение — немного UI, немного логики, немного данных — вместо построения одного целого слоя за раз.

Заманчивый, но неправильный подход (горизонтальный):

  • Построить всю схему базы данных.
  • Затем построить всю бэкенд-логику.
  • Затем построить весь UI.

Вы не можете запустить ничего, пока все три не готовы, поэтому не можете отлавливать проблемы рано.

Лучший подход (вертикальный):

  • Шаг 1: кнопка, делающая простейшую возможную версию задуманного, с фейковыми данными.
  • Шаг 2: заставить её использовать настоящие данные.
  • Шаг 3: обработать краевые случаи.

Разница виднее всего бок о бок. Горизонтальный строит один целый слой за раз и не запускает ничего до самого конца; вертикальный на каждом шаге строит тонкую запускаемую полосу через все слои:

    ГОРИЗОНТАЛЬ (риск)           ВЕРТИКАЛЬ (безопасно)
                                                       запуск? ▼
   ┌──────────────────────┐    ┌────┐ ┌────┐ ┌────┐ ┌────┐
   │        UI            │    │ UI │ │ UI │ │ UI │ │ UI │
   ├──────────────────────┤    ├────┤ ├────┤ ├────┤ ├────┤
   │       LOGIC          │    │logic││logic││logic││logic│
   ├──────────────────────┤    ├────┤ ├────┤ ├────┤ ├────┤
   │        DATA          │    │data│ │data│ │data│ │data│
   └──────────────────────┘    └────┘ └────┘ └────┘ └────┘
   собрать все 3, ПОТОМ запуск  каждый шаг по отдельности
   (нельзя запустить до конца)   каждый шаг работает сам по себе

Каждый срез запускаем. Именно это удерживает приложение всегда-работающим.

Полезная проверка хорошего среза: можете ли вы его продемонстрировать? Если вы можете показать на экран и сказать «смотри», это настоящий вертикальный срез. Если единственная честная демонстрация — «ну, схема теперь на месте», вы построили горизонтальный слой и не узнаете, правилен ли он, ещё долго — обычно в самый неподходящий момент.

Хотите офлайн-версию?

Скачайте всю книгу в PDF или EPUB — бесплатно.