Qué significa "rebanada vertical"
Una rebanada vertical (vertical slice) es una porción delgada de la función que atraviesa toda tu aplicación de punta a punta —un poco de interfaz, un poco de lógica, un poco de datos— en lugar de construir una capa entera a la vez.
Enfoque tentador pero equivocado (horizontal):
- Construir todo el esquema de la .
- Luego construir toda la lógica del .
- Luego construir toda la interfaz.
No puedes ejecutar nada hasta que las tres estén terminadas, así que no puedes detectar problemas a tiempo.
Mejor enfoque (vertical):
- Paso 1: un botón que hace la versión más simple posible de la función, con datos falsos.
- Paso 2: hacer que use datos reales.
- Paso 3: manejar los casos límite.
La diferencia se ve más fácil lado a lado. El enfoque horizontal construye una capa entera a la vez y no ejecuta nada hasta el final; el vertical construye una franja delgada y ejecutable a través de todas las capas en cada paso:
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 rebanada es ejecutable. Eso es lo que mantiene la aplicación siempre funcionando.
Una prueba útil para saber si una rebanada es buena: ¿puedes hacer una demo? Si puedes señalar la pantalla y decir "mira esto", es una rebanada vertical de verdad. Si la única demo honesta es "bueno, ya está listo el esquema", construiste una capa horizontal y no sabrás si está bien hasta mucho después, casi siempre en el peor momento posible.