<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Diseno on Inicio</title>
    <link>https://blog.rafaelfernandez.dev/es/tags/diseno/</link>
    <description>Recent content in Diseno on Inicio</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>es</language>
    <copyright>© 2026 Rafael Fernandez</copyright>
    <lastBuildDate>Wed, 18 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.rafaelfernandez.dev/es/tags/diseno/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Hacer los estados inválidos irrepresentables 3: bugs reales por estados representables sin sentido</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/making-invalid-states-unrepresentable-3-real-bugs/</link>
      <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/making-invalid-states-unrepresentable-3-real-bugs/</guid>
      <description>Referencias nulas, spinners de carga que muestran errores y datos simultáneamente, pagos capturados y anulados a la vez. No son hipotéticos; son consecuencia directa de tipos que mienten sobre el dominio.</description>
      
    </item>
    
    <item>
      <title>Hacer los estados inválidos irrepresentables 1: por qué los flags booleanos son bugs disfrazados</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/making-invalid-states-unrepresentable-1-boolean-flags/</link>
      <pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/making-invalid-states-unrepresentable-1-boolean-flags/</guid>
      <description>Un semáforo que está en rojo y verde a la vez. Un usuario que está logueado y deslogueado simultáneamente. Los flags booleanos hacen estos estados absurdos perfectamente representables, y ese es el problema.</description>
      
    </item>
    
    <item>
      <title>Sintaxis y Semantica 1: Tu codigo tiene un problema de gramatica</title>
      <link>https://blog.rafaelfernandez.dev/es/posts/syntax-and-semantics-1-your-code-has-a-grammar-problem/</link>
      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/es/posts/syntax-and-semantics-1-your-code-has-a-grammar-problem/</guid>
      <description>Cada enum que escribes es una gramatica formal. Cada sealed trait es un conjunto de reglas de produccion. Has estado haciendo metodos formales todo este tiempo; simplemente no sabias el nombre. Trazamos la conexion desde la jerarquia de Chomsky hasta tus tipos de dominio en Rust y Scala.</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>
    
  </channel>
</rss>
