<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Arquitectura-Hexagonal on Inicio</title>
    <link>https://blog.rafaelfernandez.dev/es/tags/arquitectura-hexagonal/</link>
    <description>Recent content in Arquitectura-Hexagonal on Inicio</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>es</language>
    <copyright>© 2026 Rafael Fernandez</copyright>
    <lastBuildDate>Sat, 28 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.rafaelfernandez.dev/es/tags/arquitectura-hexagonal/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Todo TUI en Rust 5. Polling de eventos, el corte vertical de edición y cierre</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/todo-tui-rust-5-event-polling-edit-vertical-slice/</link>
      <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/todo-tui-rust-5-event-polling-edit-vertical-slice/</guid>
      <description>La rata sirve el último plato. Corregimos el lag de entrada con polling de eventos no bloqueante, añadimos la funcionalidad de edición como un corte vertical completo desde la capa de aplicación hasta la TUI, observamos la máquina de estados crecer de 3 a 4 variantes con seguridad guiada por el compilador, y cerramos con las conclusiones clave de toda la migración.</description>
      
    </item>
    
    <item>
      <title>Todo TUI en Rust 3. Eventos, seguridad de terminal y el momento de la verdad</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/todo-tui-rust-3-events-terminal-safety-migration/</link>
      <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/todo-tui-rust-3-events-terminal-safety-migration/</guid>
      <description>La rata conecta los oídos. Implementamos manejadores de eventos por modo con crossterm, rediseñamos el mapeo de teclas para usar un toggle en vez de teclas separadas, resolvemos el problema de restauración de terminal con un patrón de captura-limpieza-retorno, y ejecutamos cargo test para descubrir que cero líneas cambiaron fuera del adaptador.</description>
      
    </item>
    
    <item>
      <title>Todo TUI en Rust 1. Andamiaje del adaptador TUI y diseño de la máquina de estados</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/todo-tui-rust-1-scaffolding-tui-adapter-state-machine/</link>
      <pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/todo-tui-rust-1-scaffolding-tui-adapter-state-machine/</guid>
      <description>Arrancamos una nueva serie migrando el adaptador CLI a una TUI con ratatui. Configuramos las nuevas dependencias, diseñamos la estructura de módulos bajo adapters/tui/, modelamos los modos de interacción como un enum para hacer los estados inválidos irrepresentables, y resolvemos el puzzle de ownership al clonar un repositorio en una sesión persistente.</description>
      
    </item>
    
    <item>
      <title>Los traits también son gramáticas: una idea de diseño que no me soltaba</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/traits-are-grammars-too-from-contract-design-to-formal-syntax/</link>
      <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/traits-are-grammars-too-from-contract-design-to-formal-syntax/</guid>
      <description>Al volver sobre el trait TaskRepository de la serie Todo CLI, me di cuenta de que no solo estaba dibujando una frontera arquitectónica. También estaba definiendo qué podía decirse en esa frontera, y eso se parece mucho más a una gramática de lo que pensé al principio.</description>
      
    </item>
    
    <item>
      <title>Todo CLI en Rust 5. Siguiente paso, pasar de CLI a TUI con ratatui</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/todo-cli-rust-5-cli-to-tui-with-ratatui/</link>
      <pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/todo-cli-rust-5-cli-to-tui-with-ratatui/</guid>
      <description>Cerramos la serie explorando qué implica migrar de CLI a TUI con ratatui: cómo cambia el modelo de interacción, qué fricciones introduce Rust con ownership y &amp;amp;mut en un event loop persistente, y por qué la arquitectura hexagonal absorbe el cambio sin cirugía.</description>
      
    </item>
    
    <item>
      <title>Todo CLI en Rust 4. Creando el CLI con clap: parsing tipado, subcomandos y salida dual</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/todo-cli-rust-4-building-cli-with-clap/</link>
      <pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/todo-cli-rust-4-building-cli-with-clap/</guid>
      <description>Diseñamos la capa CLI con clap derive, parsing tipado de argumentos con ValueEnum y FromStr para UUIDs, subcomandos como enums, flag global &amp;ndash;output para salida dual table/json, y errores propagados por capas hasta stderr.</description>
      
    </item>
    
    <item>
      <title>Todo CLI en Rust 3.1. Estrategia de pruebas y deuda técnica explícita</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/todo-cli-rust-3-1-testing-strategy-technical-debt/</link>
      <pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/todo-cli-rust-3-1-testing-strategy-technical-debt/</guid>
      <description>Analizamos la estrategia de testing del repositorio: pruebas por comportamiento para cada adapter, aislamiento con tempdir, por qué no hay tests compartidos, y la deuda técnica que decidimos documentar en vez de esconder.</description>
      
    </item>
    
    <item>
      <title>Todo CLI en Rust 3. Persistencia JSON, contrato vs implementación</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/todo-cli-rust-3-json-persistence-contract-vs-implementation/</link>
      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/todo-cli-rust-3-json-persistence-contract-vs-implementation/</guid>
      <description>Tercera parte de la serie: definimos el contrato de persistencia con un trait genérico, implementamos dos adaptadores (in-memory y JSON a disco) y profundizamos en la diferencia entre interfaz e implementación como eje de la arquitectura hexagonal.</description>
      
    </item>
    
  </channel>
</rss>
