Muy buenas.
Read this chapter in English: EN
Este post es la puerta de entrada de la serie. La idea es que puedas leer cada capítulo con el repositorio abierto y, en lugar de quedarte en teoría, puedas seguir cada decisión en código real.
Repositorio base del proyecto:
Inspiración original del reto:
Cómo leer esta serie (sin perderte) #
Orden recomendado:
- arquitectura y límites,
- dominio y errores,
- CLI y contrato de salida,
- persistencia y testing,
- evolución a TUI con ratatui.
Ese orden no es casual. Refleja cómo se construyó el proyecto: primero decisiones estructurales, luego implementación por capas.
Capítulos de la serie #
1) Arquitectura #
- Post:
Todo CLI en Rust 1. Arquitectura hexagonal en un proyecto pequeño - Enlace recomendado: docs/architecture.md
- Complemento: docs/step-1-mvp.md
Aquí se explica por qué se eligió hexagonal + screaming architecture en un proyecto pequeño, y qué problemas evita cuando empiezas a iterar.
2) Dominio y errores #
- Post:
Todo CLI en Rust 2. Dominio inmutable y errores tipados por capa - Enlaces:
Este bloque es el corazón del sistema: invariantes, transiciones de estado y propagación de errores con contexto.
3) Capa CLI #
- Post:
Todo CLI en Rust 3. Creando el CLI con clap - Enlaces:
Aquí se conecta UX de terminal con contrato técnico: parseo fuerte, Uuid tipado y salida dual table/json.
4) Persistencia y testing #
- Post:
Todo CLI en Rust 4. Persistencia JSON, testing y decisiones para escalar - Enlaces:
Este capítulo cierra el ciclo: contrato de repositorio, adapters intercambiables, semántica de operaciones y pruebas por comportamiento.
5) Futuro: de CLI a TUI #
- Post:
Todo CLI en Rust 5. Siguiente paso, pasar de CLI a TUI con ratatui - Enlaces:
Este cierre propone la evolución natural del proyecto: añadir un nuevo adaptador de interfaz (TUI) reutilizando dominio y casos de uso actuales.
Qué te llevas si sigues la serie completa #
- cómo diseñar una CLI en Rust sin convertir
main.rsen un monolito, - cómo aislar dominio, aplicación e infraestructura,
- cómo modelar errores de forma que ayuden al usuario y al desarrollador,
- cómo preparar el proyecto para iterar sin refactors traumáticos.
Si te interesa construir herramientas de terminal que aguanten cambios reales, esta serie te va a servir bastante más que un tutorial de “todo app en 15 minutos”.