<?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/pt/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>pt</language>
    <lastBuildDate>Wed, 04 Nov 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://spaghetti-code.net/pt/tags/software-development/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>O Que É Uma Tabela Hash? Hashing E Colisões Explicados</title>
      <link>https://spaghetti-code.net/pt/posts/fundamentals/o-que-e-uma-tabela-hash/</link>
      <pubDate>Wed, 04 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/fundamentals/o-que-e-uma-tabela-hash/</guid>
      <description>Uma tabela hash transforma uma chave em um índice de array em tempo constante, até que duas chaves colidam. Como hashing, chaining, open addressing e load factor funcionam.</description>
    </item>
    <item>
      <title>Ownership e Borrowing em Rust Explicados</title>
      <link>https://spaghetti-code.net/pt/posts/rust/ownership-e-borrowing-em-rust/</link>
      <pubDate>Tue, 03 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/rust/ownership-e-borrowing-em-rust/</guid>
      <description>As regras de ownership e borrowing do Rust evitam use-after-free e data races já na compilação. Como funcionam move, a trait Copy, referências e lifetimes.</description>
    </item>
    <item>
      <title>Mock, Stub, Fake e Spy: os Test Doubles Explicados</title>
      <link>https://spaghetti-code.net/pt/posts/testing/o-que-sao-test-doubles/</link>
      <pubDate>Mon, 02 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/testing/o-que-sao-test-doubles/</guid>
      <description>Dummy, stub, spy, fake e mock são cinco test doubles que resolvem problemas diferentes. Uma classe Python, testada das cinco formas, mostra qual usar no teste.</description>
    </item>
    <item>
      <title>ESLint vs Prettier: Diferenças e Como Combiná-los</title>
      <link>https://spaghetti-code.net/pt/posts/javascript/eslint-vs-prettier-diferencas/</link>
      <pubDate>Sun, 01 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/javascript/eslint-vs-prettier-diferencas/</guid>
      <description>ESLint encontra bugs e padrões ruins no seu código, Prettier só reformata. Por que usar os dois juntos gera conflitos e a configuração que evita isso.</description>
    </item>
    <item>
      <title>Expressões Regulares Explicadas: Como o Regex Funciona</title>
      <link>https://spaghetti-code.net/pt/posts/fundamentals/expressoes-regulares-explicadas/</link>
      <pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/fundamentals/expressoes-regulares-explicadas/</guid>
      <description>Um motor de regex não compara a string toda de uma vez: ele percorre o padrão token por token e faz backtracking quando falha. Veja por que isso trava.</description>
    </item>
    <item>
      <title>Generics em TypeScript Explicados com Exemplos</title>
      <link>https://spaghetti-code.net/pt/posts/typescript/generics-typescript-explicados/</link>
      <pubDate>Tue, 27 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/typescript/generics-typescript-explicados/</guid>
      <description>Os generics em TypeScript mantêm o tipo que você passa em vez de reduzi-lo a any. Como funcionam inferência, extends, keyof e os valores padrão em TypeScript.</description>
    </item>
    <item>
      <title>Exceptions vs Valores de Erro: Como Escolher uma Estratégia</title>
      <link>https://spaghetti-code.net/pt/posts/clean-code/exceptions-vs-valores-de-erro/</link>
      <pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/clean-code/exceptions-vs-valores-de-erro/</guid>
      <description>Exceptions e valores de erro resolvem o mesmo problema de formas diferentes. Os tradeoffs reais em Python, Go e Rust, e como escolher para o seu código.</description>
    </item>
    <item>
      <title>Rate Limiting de API: Algoritmos e Como Construir Um</title>
      <link>https://spaghetti-code.net/pt/posts/backend/rate-limiting-de-api/</link>
      <pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/backend/rate-limiting-de-api/</guid>
      <description>Como funciona o rate limiting de API: fixed window, sliding window, token bucket e leaky bucket comparados, com uma implementação em Redis e os headers 429.</description>
    </item>
    <item>
      <title>Intersection Observer: Lazy Loading e Scroll Infinito</title>
      <link>https://spaghetti-code.net/pt/posts/javascript/intersection-observer-lazy-loading/</link>
      <pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/javascript/intersection-observer-lazy-loading/</guid>
      <description>Como a Intersection Observer API substitui o scroll com debounce para lazy loading de imagens e scroll infinito, com rootMargin e threshold explicados.</description>
    </item>
    <item>
      <title>O Que São Unicode e a Codificação UTF-8</title>
      <link>https://spaghetti-code.net/pt/posts/fundamentals/o-que-sao-unicode-e-utf-8/</link>
      <pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/fundamentals/o-que-sao-unicode-e-utf-8/</guid>
      <description>Unicode dá um número a cada caractere; o UTF-8 transforma esse número em 1 a 4 bytes. Por que string.length mente e de onde vêm os bugs de codificação reais.</description>
    </item>
    <item>
      <title>Closures em JavaScript Explicadas com Exemplos</title>
      <link>https://spaghetti-code.net/pt/posts/javascript/closures-javascript-explicadas/</link>
      <pubDate>Mon, 19 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/javascript/closures-javascript-explicadas/</guid>
      <description>Uma closure em JavaScript mantém uma função ligada às variáveis do seu contexto de criação, mesmo depois que esse código termina. Como funcionam e onde falham.</description>
    </item>
    <item>
      <title>O Que É TDD e Como Funciona o Ciclo Red-Green-Refactor</title>
      <link>https://spaghetti-code.net/pt/posts/testing/o-que-e-tdd/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/testing/o-que-e-tdd/</guid>
      <description>O desenvolvimento guiado por testes escreve um teste que falha antes do código, faz ele passar e depois limpa: red-green-refactor, com um kata em Python.</description>
    </item>
    <item>
      <title>JWT vs Sessão: Qual Autenticação Escolher</title>
      <link>https://spaghetti-code.net/pt/posts/backend/diferencas-jwt-sessao/</link>
      <pubDate>Fri, 16 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/backend/diferencas-jwt-sessao/</guid>
      <description>Sessões guardam o estado de login no servidor, os JWTs o assinam dentro do token. Como cada um funciona no Node e quando escolher um ou outro para sua app.</description>
    </item>
    <item>
      <title>Tratamento de Erros com a Fetch API em JavaScript</title>
      <link>https://spaghetti-code.net/pt/posts/javascript/tratamento-erros-fetch-api-javascript/</link>
      <pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/javascript/tratamento-erros-fetch-api-javascript/</guid>
      <description>fetch() do JavaScript se resolve até em respostas 404 e 500, então o try/catch comum não pega o erro. Veja como verificar response.ok e tratar erros direito.</description>
    </item>
    <item>
      <title>Recursão Explicada: Quando Usar e Quando Evitar</title>
      <link>https://spaghetti-code.net/pt/posts/fundamentals/recursao-explicada/</link>
      <pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/fundamentals/recursao-explicada/</guid>
      <description>Recursão explicada com código real: como funcionam a pilha de chamadas e o caso base, quando ela vence um loop, por que Python e JS travam, e memoization.</description>
    </item>
    <item>
      <title>CSS Grid ou Flexbox: Quando Usar Cada Um</title>
      <link>https://spaghetti-code.net/pt/posts/css/quando-usar-css-grid-ou-flexbox/</link>
      <pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/css/quando-usar-css-grid-ou-flexbox/</guid>
      <description>Flexbox organiza uma linha ou coluna; Grid organiza linhas e colunas juntas. A regra de decisão, com código funcional para navbars, dashboards e grids de cards.</description>
    </item>
    <item>
      <title>Goroutines e Channels em Go: Guia com Exemplos</title>
      <link>https://spaghetti-code.net/pt/posts/go/goroutines-e-channels-em-go/</link>
      <pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/go/goroutines-e-channels-em-go/</guid>
      <description>Como funcionam goroutines e channels em Go: iniciar trabalho concorrente com go, channels com e sem buffer, select, e os erros que causam leaks ou deadlocks.</description>
    </item>
    <item>
      <title>Princípios SOLID Explicados com Exemplos em Python</title>
      <link>https://spaghetti-code.net/pt/posts/clean-code/principios-solid/</link>
      <pubDate>Sat, 10 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/clean-code/principios-solid/</guid>
      <description>Os princípios SOLID são cinco regras para estruturar classes para que uma mudança não se propague por todo o código, com exemplos em Python antes e depois.</description>
    </item>
    <item>
      <title>O Que É uma Race Condition e Como Corrigi-la</title>
      <link>https://spaghetti-code.net/pt/posts/fundamentals/o-que-e-uma-race-condition/</link>
      <pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/fundamentals/o-que-e-uma-race-condition/</guid>
      <description>Uma race condition acontece quando o resultado depende de timing fora do controle. Onde ela se esconde em threads, async e bancos de dados, e como corrigi-la.</description>
    </item>
    <item>
      <title>Debounce vs Throttle em JavaScript: Quando Usar Cada Um</title>
      <link>https://spaghetti-code.net/pt/posts/javascript/diferenca-debounce-throttle-javascript/</link>
      <pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/javascript/diferenca-debounce-throttle-javascript/</guid>
      <description>Debounce vs throttle em JavaScript: o debounce espera os eventos pararem, o throttle os executa em ritmo constante. Como cada um funciona e qual escolher.</description>
    </item>
    <item>
      <title>Decoradores Python Explicados com Exemplos</title>
      <link>https://spaghetti-code.net/pt/posts/python/decoradores-python-explicados/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/python/decoradores-python-explicados/</guid>
      <description>Como funcionam os decoradores em Python: sintaxe @, functools.wraps, decoradores com argumentos, decoradores baseados em classe e lru_cache, com exemplos reais.</description>
    </item>
    <item>
      <title>Por Que 0.1 &#43; 0.2 Não É 0.3: Ponto Flutuante Explicado</title>
      <link>https://spaghetti-code.net/pt/posts/fundamentals/por-que-0-1-mais-0-2-nao-e-0-3/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/fundamentals/por-que-0-1-mais-0-2-nao-e-0-3/</guid>
      <description>Ponto flutuante quase nunca guarda um decimal exato: 0.1 &#43; 0.2 retorna 0.30000000000000004 em vez de 0.3. Por que isso ocorre e como comparar esses números.</description>
    </item>
    <item>
      <title>Notação Big O Explicada com Exemplos de Código</title>
      <link>https://spaghetti-code.net/pt/posts/fundamentals/notacao-big-o/</link>
      <pubDate>Sun, 04 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/fundamentals/notacao-big-o/</guid>
      <description>A notação Big O com código real: cinco funções cronometradas conforme a entrada cresce, o que ela não diz e como identificar um O(n^2) escondido a tempo.</description>
    </item>
    <item>
      <title>Git Reset vs Revert vs Restore: Como Desfazer Mudanças</title>
      <link>https://spaghetti-code.net/pt/posts/git/git-reset-revert-restore/</link>
      <pubDate>Sat, 03 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/git/git-reset-revert-restore/</guid>
      <description>Git reset, revert e restore desfazem mudanças em estágios diferentes: working tree, index, commits locais ou já enviados. Qual comando usar em cada caso.</description>
    </item>
    <item>
      <title>O Que É Dependency Injection (Com Exemplos)</title>
      <link>https://spaghetti-code.net/pt/posts/clean-code/o-que-e-dependency-injection/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/clean-code/o-que-e-dependency-injection/</guid>
      <description>Dependency injection é passar as dependências de uma classe em vez de deixá-la criá-las. Constructor injection, lifetimes do ASP.NET Core e o que quebra tudo.</description>
    </item>
    <item>
      <title>Teste Unitário vs Teste de Integração vs End-to-End</title>
      <link>https://spaghetti-code.net/pt/posts/testing/teste-unitario-vs-integracao-vs-end-to-end/</link>
      <pubDate>Tue, 29 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/testing/teste-unitario-vs-integracao-vs-end-to-end/</guid>
      <description>Testes unitários, de integração e end-to-end pegam bugs diferentes: um cadastro em Flask testado nos três níveis, com mocks vs fakes e testes e2e instáveis.</description>
    </item>
    <item>
      <title>Async/Await e o Event Loop do JavaScript Explicados</title>
      <link>https://spaghetti-code.net/pt/posts/javascript/async-await-e-event-loop-javascript/</link>
      <pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/javascript/async-await-e-event-loop-javascript/</guid>
      <description>Como o async/await funciona no event loop do JavaScript, por que uma promise vence o setTimeout(0) e como corrigir awaits, loops lentos e async forEach.</description>
    </item>
    <item>
      <title>O Que É CORS e Como Corrigir Erros CORS</title>
      <link>https://spaghetti-code.net/pt/posts/web/o-que-e-cors-como-corrigir-erros-cors/</link>
      <pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/web/o-que-e-cors-como-corrigir-erros-cors/</guid>
      <description>Por que o navegador bloqueia sua chamada fetch com erro CORS, o que a same-origin policy restringe e como corrigir no servidor com Express e ASP.NET Core.</description>
    </item>
    <item>
      <title>Como Configurar a Depuração Remota no Visual Studio</title>
      <link>https://spaghetti-code.net/pt/posts/debugging/depuracao-remota-no-visual-studio/</link>
      <pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://spaghetti-code.net/pt/posts/debugging/depuracao-remota-no-visual-studio/</guid>
      <description>Configure a depuração remota no Visual Studio com o msvsmon: instale as remote tools, abra a porta certa, alinhe os símbolos e conecte a um processo remoto.</description>
    </item>
  </channel>
</rss>
