<?xml version="1.0" encoding="UTF-8"?>
      <rss version="2.0"
        xmlns:atom="http://www.w3.org/2005/Atom"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        xmlns:dc="http://purl.org/dc/elements/1.1/">
        <channel>
          <title>Dev Code Software — Codeshort</title>
          <link>https://devcodeweb.online/blog</link>
          <description>Artigos sobre desenvolvimento de software, ferramentas e tecnologia.</description>
          <language>pt-BR</language>
          <lastBuildDate>Sun, 05 Jul 2026 03:18:48 GMT</lastBuildDate>
          <atom:link href="https://devcodeweb.online/blog/feed" rel="self" type="application/xml" />
          
    <item>
      <title>Idempotência em APIs: o que é e por que ignorar isso vai te dar dor de cabeça</title>
      <link>https://devcodeweb.online/blog/idempotencia-em-apis</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/idempotencia-em-apis</guid>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
      <description>Idempotência não é buzz word de tech lead. É o que separa uma API confiável de uma que duplica pedidos em produção.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_ayi6hm" length="0" type="image/png" />
    </item>
    <item>
      <title>Validação de dados no backend com Zod: prático e tipado</title>
      <link>https://devcodeweb.online/blog/validacao-de-dados-no-backend-com-zod-pratico-e-tipado</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/validacao-de-dados-no-backend-com-zod-pratico-e-tipado</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <description>Pare de validar dados no chute. Zod resolve validação e tipagem ao mesmo tempo, com zero overhead de configuração.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_jpwtix" length="0" type="image/png" />
    </item>
    <item>
      <title>Race Conditions em JavaScript Assíncrono: como identificar e corrigir antes que o bug vá a produção</title>
      <link>https://devcodeweb.online/blog/race-conditions-em-javascript</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/race-conditions-em-javascript</guid>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
      <description>Race conditions em JS assíncrono são silenciosas e destrutivas. Veja como identificar, reproduzir e corrigir os casos mais comuns antes que eles derrubem sua aplicação.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_pk94bn" length="0" type="image/png" />
    </item>
    <item>
      <title>Git stash: o comando que vai te salvar mais do que você imagina</title>
      <link>https://devcodeweb.online/blog/git-stash-o-comando-que-vai-te-salvar</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/git-stash-o-comando-que-vai-te-salvar</guid>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <description>git stash não é só um escape de emergência. Quando você entende o que ele realmente faz, vira parte do seu fluxo diário.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_vjqxf4" length="0" type="image/png" />
    </item>
    <item>
      <title>Como organizar rotas em Express.js para não virar espaguete</title>
      <link>https://devcodeweb.online/blog/como-organizar-rotas-em-expressjs</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/como-organizar-rotas-em-expressjs</guid>
      <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
      <description>Rotas soltas no index.js funcionam no tutorial. Em produção, viram pesadelo. Veja como estruturar de verdade.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_bj1xy0" length="0" type="image/png" />
    </item>
    <item>
      <title>Next.js: quando usar SSR, SSG e ISR (e quando não usar nenhum)</title>
      <link>https://devcodeweb.online/blog/nextjs-quando-usar-ssr-ssg-e-isr</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/nextjs-quando-usar-ssr-ssg-e-isr</guid>
      <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
      <description>SSR, SSG e ISR não são intercambiáveis. Escolha errada e você paga com latência, custo de servidor ou dados velhos no pior momento.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_hq2bbm" length="0" type="image/png" />
    </item>
    <item>
      <title>Como documentar sua API com Swagger (OpenAPI) sem dor</title>
      <link>https://devcodeweb.online/blog/como-documentar-sua-api-com-swagger-openapi</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/como-documentar-sua-api-com-swagger-openapi</guid>
      <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
      <description>Chega de documentação desatualizada e contratos mentirosos. Veja como configurar Swagger do jeito certo, do zero ao decorador.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_n7secw" length="0" type="image/png" />
    </item>
    <item>
      <title>Herança Prototípica no JavaScript: prototype chain, Object.create e classes de uma vez por todas</title>
      <link>https://devcodeweb.online/blog/heranca-prototipica-no-javascript-prototype-chain-objectcreate-e-classes-de-uma-vez-por-todas</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/heranca-prototipica-no-javascript-prototype-chain-objectcreate-e-classes-de-uma-vez-por-todas</guid>
      <pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate>
      <description>Prototype chain, __proto__, Object.create e class são a mesma coisa com rostos diferentes. Entenda o mecanismo real antes que um bug em produção te ensine.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_runqxh" length="0" type="image/png" />
    </item>
    <item>
      <title>Variáveis de Ambiente no Node.js: o guia que evita vazamento de segredos</title>
      <link>https://devcodeweb.online/blog/variaveis-de-ambiente-no-nodejs-o-guia-que-evita-vazamento-de-segredos</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/variaveis-de-ambiente-no-nodejs-o-guia-que-evita-vazamento-de-segredos</guid>
      <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
      <description>Do .env ao Secrets Manager: como configurar, validar e proteger variáveis de ambiente em cada etapa — local, staging e produção.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_mernif" length="0" type="image/png" />
    </item>
    <item>
      <title>SQL vs NoSQL: Como Escolher o Banco Certo Antes de Se Arrepender em Produção</title>
      <link>https://devcodeweb.online/blog/sql-vs-nosql-quando-usar-cada-um</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/sql-vs-nosql-quando-usar-cada-um</guid>
      <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
      <description>Postgres em tudo parece seguro até a query de feed levar 4 segundos com 300k usuários. Entenda os sinais reais de que você está usando o banco errado.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_wzae2q" length="0" type="image/png" />
    </item>
    <item>
      <title>Closures em JavaScript: o conceito que parece difícil mas não é</title>
      <link>https://devcodeweb.online/blog/closures-javascript-explicado</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/closures-javascript-explicado</guid>
      <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
      <description>Closure não é magia. É só uma função que lembra do escopo onde foi criada — e entender isso muda como você escreve JavaScript.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_yz33g8" length="0" type="image/png" />
    </item>
    <item>
      <title>Deploy Node.js no Railway: guia completo do zero ao domínio próprio</title>
      <link>https://devcodeweb.online/blog/deploy-nodejs-railway</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/deploy-nodejs-railway</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <description>Do npm install ao domínio próprio com SSL: veja como fazer deploy de app Node.js no Railway sem configurar servidor, nginx ou VPS.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_svrpd1" length="0" type="image/png" />
    </item>
    <item>
      <title>Tailwind CSS em Produção: Armadilhas Reais e Como Evitar Cada Uma</title>
      <link>https://devcodeweb.online/blog/tailwind-na-pratica</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/tailwind-na-pratica</guid>
      <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
      <description>Classes sumindo no build, @apply recriando o problema que você veio resolver, configuração virando monstro: os erros que só aparecem depois que você commitou.&quot;</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_ecek7u" length="0" type="image/png" />
    </item>
    <item>
      <title>Tipagem TypeScript na Prática: Objetos, Funções e Generics Sem `any`</title>
      <link>https://devcodeweb.online/blog/typescript-tipagem-objetos-funcoes</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/typescript-tipagem-objetos-funcoes</guid>
      <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
      <description>Guia técnico completo para tipar objetos aninhados, funções com sobrecarga e generics no TypeScript — com exemplos reais, armadilhas comuns e os padrões que separam código que dura de código que vira dívida.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_sphcts" length="0" type="image/png" />
    </item>
    <item>
      <title>Jest no JavaScript e TypeScript: guia prático de testes unitários</title>
      <link>https://devcodeweb.online/blog/testes-unitarios-jest</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/testes-unitarios-jest</guid>
      <pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
      <description>Do setup ao mock, passando pelos erros que travam todo dev no começo — tudo que você precisa para rodar seus primeiros testes com Jest.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_sazcul" length="0" type="image/png" />
    </item>
    <item>
      <title>Docker com Node.js do zero: Dockerfile, Compose e os erros que vão te poupar horas</title>
      <link>https://devcodeweb.online/blog/docker-para-devs-javascript</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/docker-para-devs-javascript</guid>
      <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
      <description>Configure Docker do zero em projetos Node.js: Dockerfile otimizado, Docker Compose com Postgres, hot reload e os 4 erros que todo dev JS comete no início.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_pjdh8e" length="0" type="image/png" />
    </item>
    <item>
      <title>useEffect no React: evite memory leaks, loops infinitos e dependências erradas</title>
      <link>https://devcodeweb.online/blog/useeffect-quando-usar-evitar-memory-leak</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/useeffect-quando-usar-evitar-memory-leak</guid>
      <pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
      <description>O modelo mental errado do useEffect causa race conditions, re-renders infinitos e memory leaks silenciosos. Veja como corrigir de vez com exemplos reais.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_skusvp" length="0" type="image/png" />
    </item>
    <item>
      <title>Offset vs Cursor vs Keyset: qual paginação usar na sua API Node.js</title>
      <link>https://devcodeweb.online/blog/paginacao-api-sem-dor-de-cabeca</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/paginacao-api-sem-dor-de-cabeca</guid>
      <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
      <description>Offset, cursor, keyset — cada estratégia tem um custo que só aparece em produção. Veja benchmarks reais e código pronto para Node.js.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_gj65ov" length="0" type="image/png" />
    </item>
    <item>
      <title>JWT em Node.js: como funciona, 5 erros que comprometem sua API e refresh token com rotação</title>
      <link>https://devcodeweb.online/blog/autenticacao-jwt-como-funciona</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/autenticacao-jwt-como-funciona</guid>
      <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
      <description>JWT é fácil de implementar e mais fácil ainda de implementar errado. Estrutura, erros reais, armazenamento seguro e refresh token com rotação — do jeito que funciona em produção.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_lqknco" length="0" type="image/png" />
    </item>
    <item>
      <title>Conventional Commits na prática: do git log bagunçado ao CHANGELOG automático</title>
      <link>https://devcodeweb.online/blog/conventional-commits</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/conventional-commits</guid>
      <pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate>
      <description>Aprenda a escrever commits que seu time (e você daqui a seis meses) consegue entender — e automatize CHANGELOG e versionamento de quebra.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_hhtnws" length="0" type="image/png" />
    </item>
    <item>
      <title>Erros com React Hooks que derrubam código em produção (e como corrigir)</title>
      <link>https://devcodeweb.online/blog/react-hooks-erros-comuns</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/react-hooks-erros-comuns</guid>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <description>useEffect com closure stale, useState desnecessário, useMemo sem sentido — veja os erros reais que qualquer dev comete e como identificar antes do PR.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_nrnnws" length="0" type="image/png" />
    </item>
    <item>
      <title>Variáveis de Ambiente no Node.js: do .env ao Deploy Seguro</title>
      <link>https://devcodeweb.online/blog/variaveis-ambiente-nodejs</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/variaveis-ambiente-nodejs</guid>
      <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
      <description>Aprenda a estruturar variáveis de ambiente no Node.js da forma certa — do arquivo .env local até o deploy em produção sem expor segredos.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_m7gf2f" length="0" type="image/png" />
    </item>
    <item>
      <title>SQL vs NoSQL: como escolher o banco de dados certo (e evitar erros caros em produção)</title>
      <link>https://devcodeweb.online/blog/sql-vs-nosql-quando-relacional-e-escolha-errada</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/sql-vs-nosql-quando-relacional-e-escolha-errada</guid>
      <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
      <description>Escolher entre SQL e NoSQL no início do projeto parece simples. Mas essa decisão silenciosa vai aparecer em produção — em queries lentas, schemas impossíveis de manter e migrações que custam semanas.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_z0omwi" length="0" type="image/png" />
    </item>
    <item>
      <title>Event Loop do JavaScript: o que realmente acontece quando seu código roda</title>
      <link>https://devcodeweb.online/blog/como-funciona-o-event-loop-do-javascript</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/como-funciona-o-event-loop-do-javascript</guid>
      <pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate>
      <description>Entenda de vez o event loop — call stack, microtasks, macrotasks e por que seu setTimeout(fn, 0) não executa quando você pensa.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_slbpj8" length="0" type="image/png" />
    </item>
    <item>
      <title>Promises em JavaScript: estados, encadeamento e os erros que derrubam produção</title>
      <link>https://devcodeweb.online/blog/promises-javascript</link>
      <guid isPermaLink="true">https://devcodeweb.online/blog/promises-javascript</guid>
      <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
      <description>Entenda como Promises funcionam por dentro — estados imutáveis, encadeamento correto, erros silenciosos e os bugs que só aparecem em produção.</description>
      <enclosure url="https://devcodeweb.online/api/media/devcodesoftware/file_jtmdgg" length="0" type="image/png" />
    </item>
        </channel>
      </rss>
    