<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Software Development on Spaghetti Code 🍝</title>
    <link>https://spaghetti-code.net/es/tags/software-development/</link>
    <description>Recent content in Software Development on Spaghetti Code 🍝</description>
    <image>
      <title>Spaghetti Code 🍝</title>
      <url>https://spaghetti-code.net/images/og-default.png</url>
      <link>https://spaghetti-code.net/images/og-default.png</link>
    </image>
    <generator>Hugo -- 0.160.0</generator>
    <language>es</language>
    <lastBuildDate>Wed, 04 Nov 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://spaghetti-code.net/es/tags/software-development/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>¿Qué Es una Tabla Hash? Hashing y Colisiones Explicados</title>
      <link>https://spaghetti-code.net/es/posts/fundamentals/que-es-una-tabla-hash/</link>
      <pubDate>Wed, 04 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/fundamentals/que-es-una-tabla-hash/</guid>
      <description>Una tabla hash convierte una clave en un índice de array en tiempo constante, hasta que dos claves colisionan. Cómo funcionan hashing, chaining y load factor.</description>
    </item>
    <item>
      <title>Ownership y Borrowing en Rust Explicados</title>
      <link>https://spaghetti-code.net/es/posts/rust/ownership-y-borrowing-en-rust/</link>
      <pubDate>Tue, 03 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/rust/ownership-y-borrowing-en-rust/</guid>
      <description>Las reglas de ownership y borrowing de Rust evitan use-after-free y data races en compilación. Cómo funcionan move, el trait Copy, referencias y lifetimes.</description>
    </item>
    <item>
      <title>Mock, Stub, Fake y Spy: los Test Doubles Explicados</title>
      <link>https://spaghetti-code.net/es/posts/testing/que-son-los-test-doubles/</link>
      <pubDate>Mon, 02 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/testing/que-son-los-test-doubles/</guid>
      <description>Dummy, stub, spy, fake y mock comprueban cosas distintas. Una clase Python, probada de las cinco formas, muestra qué test double usar en tu próximo test.</description>
    </item>
    <item>
      <title>ESLint vs Prettier: Diferencias y Cómo Combinarlos</title>
      <link>https://spaghetti-code.net/es/posts/javascript/eslint-vs-prettier-diferencias/</link>
      <pubDate>Sun, 01 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/javascript/eslint-vs-prettier-diferencias/</guid>
      <description>ESLint detecta bugs y patrones incorrectos en tu código, Prettier solo lo reformatea. Por qué usarlos juntos genera conflictos y la configuración que los evita.</description>
    </item>
    <item>
      <title>Expresiones Regulares Explicadas: Cómo Funciona el Regex</title>
      <link>https://spaghetti-code.net/es/posts/fundamentals/expresiones-regulares-explicadas/</link>
      <pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/fundamentals/expresiones-regulares-explicadas/</guid>
      <description>Un motor regex no escanea toda la cadena de una vez. Recorre el patrón token a token y hace backtracking al fallar. Cómo funciona y por qué a veces se cuelga.</description>
    </item>
    <item>
      <title>Generics en TypeScript Explicados con Ejemplos</title>
      <link>https://spaghetti-code.net/es/posts/typescript/generics-typescript-explicados/</link>
      <pubDate>Tue, 27 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/typescript/generics-typescript-explicados/</guid>
      <description>Los generics en TypeScript conservan el tipo que pasas en vez de reducirlo a any. Cómo funcionan la inferencia, extends, keyof y los valores por defecto.</description>
    </item>
    <item>
      <title>Excepciones vs Valores de Error: Cómo Elegir una Estrategia</title>
      <link>https://spaghetti-code.net/es/posts/clean-code/excepciones-vs-valores-de-error/</link>
      <pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/clean-code/excepciones-vs-valores-de-error/</guid>
      <description>Excepciones y valores de error resuelven el mismo problema de formas distintas. Compromisos reales en Python, Go y Rust, y cómo elegir para tu código.</description>
    </item>
    <item>
      <title>Rate Limiting de APIs: Algoritmos y Cómo Construir Uno</title>
      <link>https://spaghetti-code.net/es/posts/backend/rate-limiting-api/</link>
      <pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/backend/rate-limiting-api/</guid>
      <description>Cómo funciona el rate limiting de APIs: fixed window, sliding window, token bucket y leaky bucket comparados, con una implementación en Redis y los headers 429.</description>
    </item>
    <item>
      <title>Intersection Observer: Lazy Loading y Scroll Infinito</title>
      <link>https://spaghetti-code.net/es/posts/javascript/intersection-observer-lazy-loading/</link>
      <pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/javascript/intersection-observer-lazy-loading/</guid>
      <description>Cómo la Intersection Observer API sustituye al scroll con debounce para lazy loading de imágenes y scroll infinito, con rootMargin y threshold explicados.</description>
    </item>
    <item>
      <title>Qué Son Unicode y la Codificación UTF-8</title>
      <link>https://spaghetti-code.net/es/posts/fundamentals/que-son-unicode-y-utf-8/</link>
      <pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/fundamentals/que-son-unicode-y-utf-8/</guid>
      <description>Unicode asigna un número a cada carácter; UTF-8 convierte ese número en 1 a 4 bytes. Por qué string.length miente y de dónde vienen los bugs de codificación.</description>
    </item>
    <item>
      <title>Closures en JavaScript Explicadas con Ejemplos</title>
      <link>https://spaghetti-code.net/es/posts/javascript/closures-javascript-explicadas/</link>
      <pubDate>Mon, 19 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/javascript/closures-javascript-explicadas/</guid>
      <description>Una closure en JavaScript liga una función a las variables de su contexto de creación, incluso tras terminar ese código. Cómo funcionan y dónde fallan.</description>
    </item>
    <item>
      <title>Qué Es el TDD y Cómo Funciona el Ciclo Red-Green-Refactor</title>
      <link>https://spaghetti-code.net/es/posts/testing/que-es-el-tdd/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/testing/que-es-el-tdd/</guid>
      <description>El desarrollo guiado por pruebas escribe un test que falla antes del código, lo hace pasar y luego limpia. El ciclo red-green-refactor, con una kata en Python.</description>
    </item>
    <item>
      <title>JWT vs Sesión: Qué Autenticación Elegir</title>
      <link>https://spaghetti-code.net/es/posts/backend/diferencias-jwt-sesion/</link>
      <pubDate>Fri, 16 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/backend/diferencias-jwt-sesion/</guid>
      <description>Las sesiones guardan el estado de login en el servidor, los JWT lo firman dentro del token. Cómo funciona cada uno en Node y cuándo elegir uno u otro.</description>
    </item>
    <item>
      <title>Manejo de Errores con la Fetch API en JavaScript</title>
      <link>https://spaghetti-code.net/es/posts/javascript/manejo-errores-fetch-api-javascript/</link>
      <pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/javascript/manejo-errores-fetch-api-javascript/</guid>
      <description>fetch() resuelve la promesa incluso en 404 y 500, así que un manejo de errores con try/catch simple no los detecta. Cómo usar response.ok y añadir timeouts.</description>
    </item>
    <item>
      <title>La Recursividad Explicada: Cuándo Usarla y Cuándo No</title>
      <link>https://spaghetti-code.net/es/posts/fundamentals/recursividad-explicada/</link>
      <pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/fundamentals/recursividad-explicada/</guid>
      <description>La recursividad explicada con código real: cómo funcionan la pila de llamadas y el caso base, cuándo gana a un bucle, por qué Python y JS fallan y memoization.</description>
    </item>
    <item>
      <title>CSS Grid o Flexbox: cuándo usar cada uno</title>
      <link>https://spaghetti-code.net/es/posts/css/cuando-usar-css-grid-o-flexbox/</link>
      <pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/css/cuando-usar-css-grid-o-flexbox/</guid>
      <description>Flexbox reparte el espacio en una fila o columna; Grid coloca filas y columnas a la vez. La regla para decidir, con código para navbars, dashboards y tarjetas.</description>
    </item>
    <item>
      <title>Goroutines y Channels en Go: Guía con Ejemplos</title>
      <link>https://spaghetti-code.net/es/posts/go/goroutines-y-channels-en-go/</link>
      <pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/go/goroutines-y-channels-en-go/</guid>
      <description>Cómo funcionan las goroutines y los channels en Go: trabajo concurrente con go, channels con y sin buffer, select, y los errores que causan leaks o deadlocks.</description>
    </item>
    <item>
      <title>Principios SOLID Explicados con Ejemplos en Python</title>
      <link>https://spaghetti-code.net/es/posts/clean-code/principios-solid/</link>
      <pubDate>Sat, 10 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/clean-code/principios-solid/</guid>
      <description>Los principios SOLID son cinco reglas para estructurar clases de forma que un cambio no se propague a todo el código, con ejemplos en Python antes y después.</description>
    </item>
    <item>
      <title>Qué Es una Race Condition y Cómo Solucionarla</title>
      <link>https://spaghetti-code.net/es/posts/fundamentals/que-es-una-race-condition/</link>
      <pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/fundamentals/que-es-una-race-condition/</guid>
      <description>Una race condition ocurre cuando el resultado depende de un timing que no controlas: dónde se esconde en threads, async, bases de datos y cómo arreglarla.</description>
    </item>
    <item>
      <title>Debounce vs Throttle en JavaScript: Cuándo Usar Cada Uno</title>
      <link>https://spaghetti-code.net/es/posts/javascript/diferencia-debounce-throttle-javascript/</link>
      <pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/javascript/diferencia-debounce-throttle-javascript/</guid>
      <description>Debounce vs throttle en JavaScript: el debounce espera a que los eventos paren, el throttle los ejecuta a ritmo constante. Cómo funciona cada uno y cuál usar.</description>
    </item>
    <item>
      <title>Decoradores de Python Explicados con Ejemplos</title>
      <link>https://spaghetti-code.net/es/posts/python/decoradores-python-explicados/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/python/decoradores-python-explicados/</guid>
      <description>Cómo funcionan los decoradores en Python: sintaxis @, functools.wraps, decoradores con argumentos, decoradores de clase y lru_cache, con ejemplos reales.</description>
    </item>
    <item>
      <title>Por Qué 0.1 &#43; 0.2 No Es 0.3: la Coma Flotante Explicada</title>
      <link>https://spaghetti-code.net/es/posts/fundamentals/por-que-0-1-mas-0-2-no-es-0-3/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/fundamentals/por-que-0-1-mas-0-2-no-es-0-3/</guid>
      <description>La coma flotante casi nunca guarda un decimal exacto: 0.1 &#43; 0.2 da 0.30000000000000004 en vez de 0.3. Por qué ocurre y cómo compararlos con seguridad.</description>
    </item>
    <item>
      <title>Notación Big O Explicada con Ejemplos de Código</title>
      <link>https://spaghetti-code.net/es/posts/fundamentals/notacion-big-o/</link>
      <pubDate>Sun, 04 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/fundamentals/notacion-big-o/</guid>
      <description>La notación Big O medida con código real: cinco funciones cronometradas al crecer la entrada, lo que la notación no dice y cómo detectar un O(n^2) oculto.</description>
    </item>
    <item>
      <title>Git Reset vs Revert vs Restore: Cómo Deshacer Cambios</title>
      <link>https://spaghetti-code.net/es/posts/git/diferencias-git-reset-revert-restore/</link>
      <pubDate>Sat, 03 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/git/diferencias-git-reset-revert-restore/</guid>
      <description>Git reset, revert y restore deshacen cambios en una etapa distinta: ediciones sueltas, archivos en el index o commits ya subidos. Cuál usar en cada caso.</description>
    </item>
    <item>
      <title>Qué Es la Dependency Injection (con Ejemplos)</title>
      <link>https://spaghetti-code.net/es/posts/clean-code/que-es-la-dependency-injection/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/clean-code/que-es-la-dependency-injection/</guid>
      <description>La dependency injection pasa a una clase sus dependencias en vez de que las construya. Constructor injection, lifetimes en ASP.NET Core y qué la rompe.</description>
    </item>
    <item>
      <title>Pruebas Unitarias vs de Integración vs End-to-End</title>
      <link>https://spaghetti-code.net/es/posts/testing/pruebas-unitarias-vs-integracion-vs-end-to-end/</link>
      <pubDate>Tue, 29 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/testing/pruebas-unitarias-vs-integracion-vs-end-to-end/</guid>
      <description>Pruebas unitarias, de integración y end-to-end atrapan bugs distintos: un registro en Flask probado en los tres niveles, con mocks vs fakes y e2e inestables.</description>
    </item>
    <item>
      <title>Async/Await y el Event Loop de JavaScript Explicados</title>
      <link>https://spaghetti-code.net/es/posts/javascript/async-await-y-event-loop-javascript/</link>
      <pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/javascript/async-await-y-event-loop-javascript/</guid>
      <description>Cómo async/await funciona en el event loop de JavaScript, por qué una promise gana a setTimeout(0) y arreglar awaits olvidados, bucles lentos y async forEach.</description>
    </item>
    <item>
      <title>Qué Es CORS y Cómo Arreglar los Errores CORS</title>
      <link>https://spaghetti-code.net/es/posts/web/que-es-cors-como-arreglar-errores-cors/</link>
      <pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/web/que-es-cors-como-arreglar-errores-cors/</guid>
      <description>Por qué el navegador bloquea tu fetch con un error CORS, qué restringe la same-origin policy y cómo arreglarlo en el servidor con Express y ASP.NET Core.</description>
    </item>
    <item>
      <title>Cómo Configurar la Depuración Remota en Visual Studio</title>
      <link>https://spaghetti-code.net/es/posts/debugging/depuracion-remota-en-visual-studio/</link>
      <pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/es/posts/debugging/depuracion-remota-en-visual-studio/</guid>
      <description>Depuración remota en Visual Studio con msvsmon: instala las herramientas, abre el puerto correcto, haz coincidir los símbolos y conecta a un proceso remoto.</description>
    </item>
  </channel>
</rss>
