O Que Significa "Fatia Vertical"
Uma fatia vertical (vertical slice) é um pedaço fino da funcionalidade que atravessa todo o seu app de ponta a ponta — um pouco de interface, um pouco de lógica, um pouco de dados — em vez de construir uma camada inteira de cada vez.
Abordagem tentadora mas errada (horizontal):
- Construir o esquema de banco de dados inteiro.
- Depois construir toda a lógica de .
- Depois construir a interface toda.
Você não consegue rodar nada até as três estarem prontas, então não consegue pegar problemas cedo.
Abordagem melhor (vertical):
- Passo 1: um botão que faz a versão mais simples possível da coisa, com dados falsos.
- Passo 2: fazer com que ele use dados reais.
- Passo 3: tratar os casos extremos.
A diferença fica mais fácil de ver lado a lado. A horizontal constrói uma camada inteira de cada vez e não roda nada até o fim; a vertical constrói uma faixa fina e executável atravessando todas as camadas a cada passo:
HORIZONTAL (risky) VERTICAL (safe)
run? ▼
┌──────────────────────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐
│ UI │ │ UI │ │ UI │ │ UI │ │ UI │
├──────────────────────┤ ├────┤ ├────┤ ├────┤ ├────┤
│ LOGIC │ │logic││logic││logic││logic│
├──────────────────────┤ ├────┤ ├────┤ ├────┤ ├────┤
│ DATA │ │data│ │data│ │data│ │data│
└──────────────────────┘ └────┘ └────┘ └────┘ └────┘
build all 3, THEN run step1 step2 step3 step4
(can't run till the end) each step runs on its own
Cada fatia é executável. É isso que mantém o app sempre funcionando.
Um teste útil para saber se a fatia é boa: dá para fazer uma demonstração dela? Se você consegue apontar para a tela e dizer "olha só isso", é uma fatia vertical de verdade. Se a única demonstração honesta é "bom, o esquema já está no lugar", você construiu uma camada horizontal e só vai saber se está certo bem mais tarde — geralmente na pior hora possível.