<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: He4rt Developers</title>
    <description>The latest articles on DEV Community by He4rt Developers (he4rt).</description>
    <link>https://dev.to/he4rt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F5490%2Fef471ad5-dbd9-40be-9951-743a6026d59c.png</url>
      <title>DEV Community: He4rt Developers</title>
      <link>https://dev.to/he4rt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/he4rt"/>
    <language>en</language>
    <item>
      <title>Programação Criativa: Vamos desenhar com código?</title>
      <dc:creator>Sara Aniceto</dc:creator>
      <pubDate>Sun, 02 Aug 2026 01:36:54 +0000</pubDate>
      <link>https://dev.to/he4rt/programacao-criativa-vamos-desenhar-com-codigo-4a1</link>
      <guid>https://dev.to/he4rt/programacao-criativa-vamos-desenhar-com-codigo-4a1</guid>
      <description>&lt;p&gt;Quem acha que a discussão entre arte gerada por computadores começou com a popularização das ferramentas de IA provavelmente perdeu boa parte das discussões envolvidas em arte generativa, arte computacional e design paramétrico que surgiram ainda no século passado. A Programação Criativa, que vamos entender melhor nesse artigo, é uma das formas possíveis de gerar arte a partir de algoritmos que vai muito além de mandar um prompt pra IA e esperar sua arte ser gerada. É construção, linha a linha, onde o programador faz da tela do computador e das linhas de código seu papel e pincel. Vem comigo entender melhor como usar suas habilidades de desenvolvimento para se divertir, experimentar e deixar a criatividade rolar solta.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3tvy3qaij4mb4caju7gj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3tvy3qaij4mb4caju7gj.gif" alt="Animação no estilo partículas com fundo preto e partículas brancas" width="540" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é Programação Criativa?
&lt;/h2&gt;

&lt;p&gt;Uma das coisas mais legais que ouvi me adentrando nos estudos de &lt;em&gt;creative coding&lt;/em&gt; (termo em inglês para programação criativa) é que existem muitas pessoas que programam, mas que não são necessariamente "programadoras". A programação não precisa estar presa apenas à sua carreira, ela pode ser uma paixão, um hobby ou um playground lúdico.&lt;/p&gt;

&lt;p&gt;A Programação Criativa é exatamente isso: usar o código para desenhar, criar animações e "brincar" com o computador. Em vez de focar apenas na criação de sistemas ou análise de dados o objetivo aqui é a exploração visual.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz8fzc3ntg9wbly6dmaya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz8fzc3ntg9wbly6dmaya.png" alt="Imagem de busto de escultura com efeito no estilo halftone" width="800" height="798"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Você consegue acreditar que a imagem acima foi gerada com 0 linhas de um código Java? Em seguida vou te explicar melhor sobre o Processing e outras ferramentas de programação criativa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Processing e p5.js: Onde o desenho encontra o algoritmo
&lt;/h2&gt;

&lt;p&gt;Processing e o p5.js são duas das ferramentas mais populares criadas para facilitar o contato de artistas, ilustradores, designers e pessoas não programadoras em geral que queiram criar arte usando código.&lt;/p&gt;

&lt;p&gt;A lógica entre eles é a mesma, o que muda são especificidades da sintaxe de cada linguagem. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Processing: Criado em 2001, é baseado em Java e é o "pai" de tudo isso. É um software gratuito, no formato de IDE, no qual você consegue escrever, executar e compilar os seus códigos, ou melhor suas obras (aqui chamadas de &lt;em&gt;sketches&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;p5.js: É uma versão do Processing baseada em JavaScript, mais popular atualmente e feita para rodar direto na web.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hoje em dia também é possível usar o modelo do Processing baseado em Python e para a criação de aplicativos Android. O mais importante é entender que, enquanto no Photoshop você usa o mouse para desenhar, aqui você começa a desenhar escrevendo em uma página em branco.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Anatomia Básica do Código (Para quem já coda entender)
&lt;/h2&gt;

&lt;p&gt;Diferente de um script tradicional, a estrutura básica nessas ferramentas é muito simples e visual:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;setup()&lt;/code&gt;&lt;/strong&gt;: É a função que roda uma única vez assim que o programa inicia. É aqui que você define configurações importantes da sua arte, como o tamanho do seu "papel" (canvas).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;draw()&lt;/code&gt;&lt;/strong&gt;: Aqui é onde a mágica acontece. Essa função é um &lt;strong&gt;loop infinito&lt;/strong&gt;. Ela é lida ciclicamente enquanto o programa roda. Se você desenhar algo aqui, pode criar animações ou responder a eventos, como o movimento do mouse.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Com essa estrutura pronta, vale acessar a documentação e entender as inúmeras possibilidades de formas, elementos tipográficos, animações, etc que é possível criar com essas ferramentas. Esse pedaço de código abaixo é o que gerou a imagem que eu mostrei no início do artigo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;draw&lt;/span&gt;&lt;span class="o"&gt;(){&lt;/span&gt;
  &lt;span class="n"&gt;background&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;fill&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;noStroke&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

  &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;tiles&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mouseX&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;tileSize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;tiles&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

  &lt;span class="n"&gt;translate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tileSize&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="n"&gt;tileSize&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;tiles&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;++){&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;tiles&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;++){&lt;/span&gt;

      &lt;span class="c1"&gt;//Picks the color based on the pixel, in which the pixel is the size of the tiles&lt;/span&gt;
      &lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;tileSize&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;tileSize&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
      &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;brightness&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

      &lt;span class="n"&gt;ellipse&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;tileSize&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;tileSize&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;};&lt;/span&gt;
  &lt;span class="o"&gt;};&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Uma ferramenta visual de aprendizado de programação
&lt;/h2&gt;

&lt;p&gt;É possível que você ainda não tenha sido convencido de explorar o Processing e a programação criativa para despertar o lado artista que mora em você? Se sim, eu te faço uma pergunta: quando é que você parou de desenhar e virou um adulto chato sem criatividade?&lt;/p&gt;


&lt;div&gt;
    &lt;iframe src="https://www.youtube.com/embed/6IFl-H9lPII"&gt;
    &lt;/iframe&gt;
  &lt;/div&gt;


&lt;p&gt;Brincadeiras à parte, talvez então você seja convencido de que a programação criativa pode também servir como um facilitador para o aprendizado técnico porque transforma conceitos abstratos (como laços de repetição e condicionais) em resultados visuais e imediatos na sua tela.&lt;/p&gt;

&lt;p&gt;É como um "debug visual". Afinal, ver um &lt;code&gt;for loop&lt;/code&gt; gerando 100 bolinhas coloridas na sua tela em tempo real é a melhor forma de "debugar" sua lógica mental.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão: Experimente!
&lt;/h2&gt;

&lt;p&gt;Se você sente que a programação às vezes fica um pouco "rígida" ou mecânica demais, tente criar um sketch no Processing ou p5.js. É uma forma de usar sua lógica para algo puramente estético e divertido.&lt;/p&gt;

&lt;p&gt;Abaixo deixo alguns links para encontrar referências de projetos, materiais gratuitos e comunidades pra quem quiser conhecer mais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://openprocessing.org/" rel="noopener noreferrer"&gt;OpenProcessing&lt;/a&gt;: Plataforma de hospedagem de projetos em Processing, é o GitHub da Programação Criativa&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/arteprog/programacao-criativa" rel="noopener noreferrer"&gt;Curso gratuito de Programação Criativa&lt;/a&gt;: Repositório no GitHub de curso por Monica Rizzolli e Alexandre Villares&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codigotranscendente.github.io/livro/livro/lindex.html" rel="noopener noreferrer"&gt;Código Transcendente : Uma introdução prática à programação e arte gerativa&lt;/a&gt;: Livro de Mateus Paresqui Berruezo &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.instagram.com/compoeticabr/" rel="noopener noreferrer"&gt;Compoética&lt;/a&gt; - Encontro Brasileiro de Programação Criativa&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://t.me/programacaocriativa" rel="noopener noreferrer"&gt;Comunidade de Programação Criativa no Brasil no Telegram&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faf25yz4cg94uhg3te23l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faf25yz4cg94uhg3te23l.png" alt="Ilustração tipográfica com a palavra Explore repetida diversas vezes" width="800" height="897"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>creativecoding</category>
      <category>p5js</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Pensar demais nem sempre ajuda e o que eu aprendi com isso</title>
      <dc:creator>Yuri Souza</dc:creator>
      <pubDate>Sat, 01 Aug 2026 10:57:53 +0000</pubDate>
      <link>https://dev.to/he4rt/pensar-demais-nem-sempre-ajuda-e-o-que-eu-aprendi-com-isso-49pp</link>
      <guid>https://dev.to/he4rt/pensar-demais-nem-sempre-ajuda-e-o-que-eu-aprendi-com-isso-49pp</guid>
      <description>&lt;p&gt;Às vezes, a maior barreira para começar um projeto não é a complexidade do problema, mas a busca por uma solução perfeita antes mesmo da primeira linha de código.&lt;/p&gt;

&lt;p&gt;Na semana passada decidi criar um pacote Laravel para integrar a API do Asaas.&lt;/p&gt;

&lt;p&gt;A ideia parecia simples: construir algo reutilizável para projetos futuros e, de quebra, aprender mais sobre desenvolvimento de pacotes.&lt;/p&gt;

&lt;p&gt;Foi então que eu:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Abri a IDE e comecei a criar um cliente HTTP simples para a API da Asaas.&lt;/li&gt;
&lt;li&gt;15 minutos depois, eu já estava pesquisando sobre arquitetura de pacotes open source.&lt;/li&gt;
&lt;li&gt;Pensei em DTOs.&lt;/li&gt;
&lt;li&gt;Pensei em interfaces.&lt;/li&gt;
&lt;li&gt;Pensei em Services&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  O que eu entendia por "perfeito"?
&lt;/h2&gt;

&lt;p&gt;Na minha cabeça, um projeto bem feito precisava nascer parecido com os grandes projetos open source que eu admirava.&lt;/p&gt;

&lt;p&gt;Antes mesmo de validar a ideia, eu já pensava na arquitetura, na escalabilidade e em como aquele pacote pareceria para quem abrisse o repositório. E em outros cenários como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pensar na mesma arquitetura que grandes projetos usam antes de ter o primeiro caso de uso funcionando;&lt;/li&gt;
&lt;li&gt;tentar abordar todos os pontos da API da Asaas logo no começo, mesmo sem saber quais eu realmente ia usar;&lt;/li&gt;
&lt;li&gt;imaginar os atrativos que meu pacote teria para outros quererem usá-lo, antes de ele fazer qualquer coisa útil.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No papel, parecia que eu estava pensando como alguém mais experiente, mas na prática, eu estava:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;apenas adiando a parte mais importante que era escrever código que resolvesse um problema real.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  O custo disso na prática
&lt;/h2&gt;

&lt;p&gt;O curioso é que eu terminava o dia com a sensação de que tinha trabalhado bastante. Tinha lido sobre arquitetura, desenhado camadas, esboçado interfaces.&lt;/p&gt;

&lt;p&gt;Só que, olhando para o projeto, praticamente nada tinha sido construído:  nenhuma requisição enviada, nenhum teste rodando, nenhuma prova de que qualquer uma daquelas decisões fazia sentido.&lt;/p&gt;

&lt;p&gt;Com o tempo, isso começou a gerar um padrão: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mais tempo buscando a estrutura "perfeita" do que resolvendo o problema real; &lt;/li&gt;
&lt;li&gt;Código difícil de entender por estar "bem arquitetado" demais, cedo demais;&lt;/li&gt;
&lt;li&gt;Medo de refatorar algo que ainda nem tinha provado valor; &lt;/li&gt;
&lt;li&gt;Uma frustração crescente por sentir que eu não estava evoluindo, só girando em torno da mesma decisão de design.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Não era falta de qualidade. Era complexidade antecipada.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7k149dylxa01anrsh8v2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7k149dylxa01anrsh8v2.png" alt="Infográfico comparando duas abordagens no desenvolvimento de software: planejar abstrações e arquitetura antes da implementação versus resolver primeiro o problema real e deixar a arquitetura evoluir conforme o projeto cresce." width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  O que eu estava realmente evitando?
&lt;/h3&gt;

&lt;p&gt;Foi só depois que comecei a me perguntar outra coisa: por que eu estava tão preso nisso?&lt;/p&gt;

&lt;p&gt;Algumas hipóteses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Eu estava evitando escrever código que eu soubesse, de antemão, que ia precisar refatorar depois?&lt;/li&gt;
&lt;li&gt;  Eu tinha medo de escrever algo "ruim" e isso aparecer publicamente num repositório open source?&lt;/li&gt;
&lt;li&gt;  Eu queria provar, pra mim mesmo, que conseguia arquitetar "como um sênior" antes mesmo de ter o problema resolvido?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A resposta provavelmente era um pouco de cada uma. E nenhuma delas tinha relação com o problema que o pacote deveria resolver.&lt;/p&gt;

&lt;p&gt;Só bem depois entendi que, no fundo, eu confundia complexidade com maturidade técnica.&lt;/p&gt;




&lt;h2&gt;
  
  
  O aprendizado que começou a aparecer
&lt;/h2&gt;

&lt;p&gt;Enquanto refletia sobre isso, lembrei de uma frase que minha mãe repetia desde que eu era pequeno:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Antes feito do que perfeito."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sempre achei que essa frase servia para tarefas do dia a dia, como arrumar o quarto, terminar um trabalho da escola. Nunca imaginei que ela fizesse tanto sentido ao escrever software.&lt;/p&gt;

&lt;p&gt;Junto com ela, veio outra ideia:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Bons sistemas não nascem perfeitos. Eles evoluem.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nenhum dos projetos open source que eu admirava nasceu com a arquitetura que tem hoje; todos passaram por versões mais simples, mais cruas, que foram se modificando à medida que o uso real foi aparecendo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Qualidade não está em prever todos os cenários.&lt;/p&gt;

&lt;p&gt;Qualidade está em escrever código que consiga mudar quando esses cenários realmente aparecerem.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Foi só quando parei de procurar a arquitetura perfeita que finalmente escrevi minha primeira requisição de verdade para a API.&lt;/p&gt;

&lt;p&gt;Antes mesmo de escrever a primeira integração, era assim que eu imaginava o pacote:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;CustomerService&lt;/span&gt;
        &lt;span class="err"&gt;↓&lt;/span&gt;
&lt;span class="nc"&gt;AsaasClient&lt;/span&gt;
        &lt;span class="err"&gt;↓&lt;/span&gt;
&lt;span class="nc"&gt;CreateCustomerDTO&lt;/span&gt;
        &lt;span class="err"&gt;↓&lt;/span&gt;
&lt;span class="nc"&gt;Response&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mas não comecei com uma arquitetura cheia de camadas. Comecei com algo assim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$asaas&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;customers&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Yuri Souza'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'cpfCnpj'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'12345678909'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Desde então, passei a repensar algumas atitudes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  resolver o problema atual com clareza antes de pensar no próximo;&lt;/li&gt;
&lt;li&gt;  manter o código simples, legível e testável;&lt;/li&gt;
&lt;li&gt;  criar abstrações apenas quando um padrão se repete de fato, não quando eu imagino que ele vai se repetir;&lt;/li&gt;
&lt;li&gt;  aceitar que refatorar faz parte do processo, não uma falha dele.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Não se trata de abandonar boas práticas, mas de aplicá-las &lt;strong&gt;no momento certo&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  O equilíbrio que estou buscando hoje
&lt;/h2&gt;

&lt;p&gt;Hoje tento encontrar um equilíbrio entre dois extremos: nem escrever código sem critério, nem criar uma arquitetura complexa antes que ela seja necessária.&lt;/p&gt;

&lt;p&gt;No próprio pacote do Asaas isso já mudou a forma como estou trabalhando.&lt;/p&gt;

&lt;p&gt;Hoje, a decisão que tomei foi outra: começar pelo caminho mais curto possível.&lt;/p&gt;

&lt;p&gt;Primeiro quero que o pacote consiga conversar com a API e validar os casos de uso mais importantes. Só então vou descobrir quais abstrações realmente fazem sentido.&lt;/p&gt;

&lt;p&gt;Em vez de tentar prever a arquitetura que o projeto terá daqui a um ano, prefiro deixar que ela se desenvolva à medida que novos problemas surgirem.&lt;/p&gt;

&lt;p&gt;Foi aí que entendi uma coisa importante:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arquitetura não é algo que eu preciso descobrir antes de começar. É algo que o próprio projeto vai mostrando à medida que cresce.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Ainda estou no começo desse pacote, e ainda estou aprendendo isso na prática, errando e ajustando no caminho.&lt;/p&gt;

&lt;p&gt;Mas entender que "perfeição antecipada" pode virar um problema já foi um passo importante na minha evolução como desenvolvedor. O projeto do pacote Asaas não precisa da arquitetura perfeita logo de início; precisa apenas da primeira implementação. O resto vai aparecer conforme o uso real for mostrando o caminho.&lt;/p&gt;

&lt;p&gt;Hoje prefiro um código simples que aceite mudanças a uma arquitetura impecável que resista a qualquer alteração.&lt;/p&gt;

&lt;p&gt;Se você também já caiu nessa armadilha da arquitetura perfeita antes da hora, quero saber: como você percebeu e o que fez para sair dela?&lt;/p&gt;

&lt;p&gt;A discussão continua nos comentários. Quero muito conhecer outras experiências e perspectivas sobre esse tema.&lt;/p&gt;




&lt;p&gt;Agradecimentos: obrigado a &lt;a class="mentioned-user" href="https://dev.to/vitoriazzp"&gt;@vitoriazzp&lt;/a&gt; pelo feedback sincero e pelas sugestões que ajudaram a tornar este artigo mais claro e útil.&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>productivity</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Se eu pudesse recomeçar em TI, evitaria estes erros.</title>
      <dc:creator>Aline Santana</dc:creator>
      <pubDate>Wed, 29 Jul 2026 13:39:48 +0000</pubDate>
      <link>https://dev.to/he4rt/se-eu-pudesse-recomecar-em-ti-evitaria-estes-erros-3bl8</link>
      <guid>https://dev.to/he4rt/se-eu-pudesse-recomecar-em-ti-evitaria-estes-erros-3bl8</guid>
      <description>&lt;h2&gt;
  
  
  Prólogo
&lt;/h2&gt;

&lt;p&gt;No início da faculdade, séculos atrás (&lt;em&gt;papo de 2021, foi quando entrei na he4rt developers inclusive&lt;/em&gt;) estava extremamente ansiosa e com isso cometi &lt;strong&gt;MUITOS ERROS&lt;/strong&gt;, me levou ao bornout ficando &lt;strong&gt;SEM ESTUDAR&lt;/strong&gt; por meses, até hoje vejo as pessoas cometendo a mesma coisa que eu no passado e isso atrasa MUITO os estudos! Como sempre meus artigos são super rápidos de ler, espero que gostem! &lt;/p&gt;

&lt;h2&gt;
  
  
  1º Não dê ouvidos as pessoas da área (depende)
&lt;/h2&gt;

&lt;p&gt;Acho que o maior erro na internet, inclusive através de influenciadores, é o alarme negativo pra cima de áreas na tecnologia e até mesmo linguagens de programação, fazendo com que iniciantes tenham incertezas sobre o que está estudando.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo 1 :&lt;/strong&gt; "&lt;em&gt;Você estudando frontend? vai passar fome.&lt;/em&gt;"&lt;br&gt;
&lt;strong&gt;Exemplo 2 :&lt;/strong&gt; "&lt;em&gt;A IA vai roubar teu emprego como desenvolvedor xxx&lt;/em&gt;"&lt;br&gt;
&lt;strong&gt;Exemplo 3 :&lt;/strong&gt; "Flutter vai morrer esse ano de xxx"&lt;/p&gt;

&lt;p&gt;Sendo bem sincera, nem ligue pra isso, tá? até hoje tem emprego pra &lt;strong&gt;COBOL&lt;/strong&gt;, imagine pra tecnologias super modernas que muitas empresas usam, escolheu frontend (&lt;strong&gt;exemplo&lt;/strong&gt;) ? estude, se esforce, converse com pessoas mais experientes nesse segmento e vai fundo, não desista por terceiros! Escolheu &lt;strong&gt;Python&lt;/strong&gt;? cai dentro, a opinião da galera não pode definir teu futuro não.&lt;/p&gt;

&lt;h2&gt;
  
  
  2º Não pula de galho em galho
&lt;/h2&gt;

&lt;p&gt;FOCA NO QUE ESCOLHEU E NÃO PULA, pois foi algo que cometi bastante, eu fui de dados até mobile com Flutter (&lt;em&gt;tô escrevendo isso e rindo alto&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vocês no outro lado da tela&lt;/strong&gt; : "&lt;em&gt;Aline, o que você faria hoje?&lt;/em&gt;"&lt;/p&gt;

&lt;p&gt;Simples, &lt;a href="https://dev.to/he4rt/2-metodos-que-usei-e-uso-nos-estudos-de-programacao-4n1f"&gt;como disse no primeiro artigo&lt;/a&gt;, &lt;em&gt;&lt;strong&gt;autoconhecimento é importante&lt;/strong&gt;&lt;/em&gt;, o que você gosta? isso que você gosta é evidência no mercado? &lt;em&gt;pesquise&lt;/em&gt;, &lt;em&gt;sai na busca&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Gosta de Matemática?&lt;/strong&gt; _&lt;em&gt;Ciência de Dados seria uma boa&lt;/em&gt;._&lt;br&gt;
&lt;strong&gt;2. Gosta de celular?&lt;/strong&gt; &lt;em&gt;Por que não se envolve com criação de aplicativos?&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;3. É mais de "arte"?&lt;/strong&gt; &lt;em&gt;Já ouviu falar de UX/UI?&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;4. É visual?&lt;/strong&gt; &lt;em&gt;e desenvolvimento frontend?&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Entende isso? é normal se perder com tantas informações e tantas áreas dentro de tecnologia, vai pesquisando com calma e veja qual se identifica. &lt;/p&gt;

&lt;h2&gt;
  
  
  3º IA é sua amiga, não inimiga, tenha medo não
&lt;/h2&gt;

&lt;p&gt;Não me venha com o argumento : "&lt;em&gt;Aline, não quero ser de TI pois a IA vai roubar meu emprego&lt;/em&gt;", vai nada amigo(a), LLMs em geral são feitas dentro de &lt;em&gt;pesquisas&lt;/em&gt; e trabalhadas no que chamamos de &lt;em&gt;probabilidade&lt;/em&gt;, é mais fácil tu acertar algo do que ela (&lt;em&gt;risos&lt;/em&gt;), não vou ser hipócrita em dizer que IA não ajuda em algo, CLARO que ajuda, inclusive quando se trata de &lt;em&gt;automação de tarefas&lt;/em&gt;, mas o que quero dizer é que &lt;strong&gt;&lt;em&gt;VOCÊ TEM QUE SABER O QUE TÁ FAZENDO&lt;/em&gt;&lt;/strong&gt; E &lt;strong&gt;&lt;em&gt;NÃO DEIXAR A BASE DE LADO&lt;/em&gt;&lt;/strong&gt;, ou seja : "&lt;em&gt;Ai, não vou estudar programação, vou pular pro Claudinho&lt;/em&gt;", vai nessa, prejuízo é enorme.&lt;/p&gt;

&lt;p&gt;"&lt;em&gt;Mas fulano de tal usa&lt;/em&gt;", é que o "&lt;em&gt;fulano de tal&lt;/em&gt;" já tem uma base muito sólida no conhecimento daquela linguagem, estamos entendidos? quando passei pela stack de Frontend, era um alarme com Inteligência Artificial gigantesco, tive muito medo e troquei de área, me atrasou muito. (na época)&lt;/p&gt;

&lt;h2&gt;
  
  
  4º Marca Pessoal galera, é importantíssimo!
&lt;/h2&gt;

&lt;p&gt;Depois de um bom período me tratando psicologicamente (depressão), voltarei com o linkedin, mas vejo que muita gente faz descaso com essa rede, principalmente iniciantes! Motivos? talvez timidez (comum), não gosta, preguiça? talvez, eu não sei, só você sabe. &lt;/p&gt;

&lt;p&gt;De forma geral, tenha uma marca pessoal trabalhada, isso é importante até mesmo dentro de comunidades, como os recrutadores podem analisar além do seu currículo destacado? acho um cristal quem faz conteúdo de tecnologia nessa rede, lá estão a maioria dos recrutadores e donos de empresas, seja visto!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dica geral :&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Escolha cores que lhe representam ou que você quer transmitir&lt;/li&gt;
&lt;li&gt;Traga experiência real nos seus conteúdos&lt;/li&gt;
&lt;li&gt;Não seja um personagem&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Espero que tenham gostado desse artigo, eu poderia listar TANTAS COISAS que me atrasaram ou podem atrasar vocês, mas listei as mais importantes da minha vivência e que afeta iniciantes como eu.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Agradeço a He4rt Developers por essa iniciativa dentro da comunidade em instigar membros dentro da escrita&lt;/em&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>2 métodos que usei (E USO) nos estudos de programação.</title>
      <dc:creator>Aline Santana</dc:creator>
      <pubDate>Mon, 27 Jul 2026 14:58:19 +0000</pubDate>
      <link>https://dev.to/he4rt/2-metodos-que-usei-e-uso-nos-estudos-de-programacao-4n1f</link>
      <guid>https://dev.to/he4rt/2-metodos-que-usei-e-uso-nos-estudos-de-programacao-4n1f</guid>
      <description>&lt;h2&gt;
  
  
  Prólogo
&lt;/h2&gt;

&lt;p&gt;Para uma pessoa que tem TDAH (eu), é extremamente difícil e desafiador encontrar uma maneira mais “confortável” de estudar, ainda mais quando tal assunto é de exatas (&lt;em&gt;sou de humanas e tô em TI, pasmem&lt;/em&gt;), então resolvi encontrar algumas maneiras e que claro, deu super certo pra mim e espero muitíssimo que dê certo pra vocês. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observação (dica)&lt;/strong&gt; : vai testando cada método, &lt;strong&gt;não pegue&lt;/strong&gt; um como verdade absoluta, o que ficar confortável, use &amp;lt;3 &lt;/p&gt;

&lt;p&gt;Nem todos vão se dar bem com o método X e Y, cada cérebro funciona de uma maneira diferente, alguns de vocês vão se adaptar com vídeos, textos (&lt;em&gt;artigos como esse&lt;/em&gt;), presencial ou online, o melhor jeito de encontrar o método “perfeito” é ter autoconhecimento, eu por exemplo : tem que ser mais prática do que teoria, vídeo aula ? tem que ser curto (&lt;em&gt;longo demais me perco&lt;/em&gt;), o estudo tem que ser mais ativo do que passivo, revisão ? 0 aplicativo, &lt;em&gt;&lt;strong&gt;revisão pra mim é prática&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Vamos ser bem rápidos com os métodos para usar como um mini caderno.&lt;/p&gt;

&lt;h2&gt;
  
  
  Método Feynman
&lt;/h2&gt;

&lt;p&gt;Criado pelo físico (&lt;em&gt;vencedor do prêmio nobel, tá?&lt;/em&gt;) &lt;strong&gt;Richard Feynman&lt;/strong&gt;, seu método é basicamente fazer autoexplicação usando palavras e analogias de forma mais simples, sem esse jargão técnico que pode mais atrapalhar do que ajudar (&lt;em&gt;ainda mais pra nós, meros iniciantes&lt;/em&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  1.1 Já pega seu conteúdo que estuda.
&lt;/h3&gt;

&lt;p&gt;O primeiro passo é escolher o que você está estudando, especialmente o que está travando seu cérebro, aquela parte do estudo que mesmo entendendo ainda sente falta de alguma coisa.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.2 Explique de forma &lt;em&gt;“leiga”&lt;/em&gt;.
&lt;/h3&gt;

&lt;p&gt;Imagina que você é uma criança, primo(a), esse momento é importante que tire os conceitos técnicos que possivelmente pode “impedir” de aprender de forma fácil e explique do seu jeitinho, sem conceitos técnicos, sem palavras difíceis. Um prompt que é meme, mas eu uso bastante é : “&lt;em&gt;Explique assunto xxx como se eu fosse uma criança de xxx anos, sem conceitos técnicos para que eu entenda de forma fácil e rápido&lt;/em&gt;”, após isso (&lt;em&gt;novamente como disse&lt;/em&gt;) explique para si mesmo.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.3 Lacunas.
&lt;/h3&gt;

&lt;p&gt;Primo(a), em algum momento da explicação vai perceber que teve algumas lacunas na sua explicação (&lt;em&gt;isso é normal, tá? você tá aprendendo, eu lembro que ficava muito chateada também rs&lt;/em&gt;), anote essas lacunas e até mesmo suas dúvidas, vamos para o último passo.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.4 Refinamento.
&lt;/h3&gt;

&lt;p&gt;Último passo (&lt;em&gt;é bem simples&lt;/em&gt;), tudo que encontrou de lacunas e dúvidas você vai achar no material que estudou, anote, identifique e volte novamente ao passo 1.2, onde vai explicar com as lacunas preenchidas. (&lt;em&gt;caso ainda tiver dúvida, repita o mesmo processo até aprender&lt;/em&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  2° Active Recall - Meu querido (&lt;em&gt;O que eu faço&lt;/em&gt;)
&lt;/h2&gt;

&lt;p&gt;Active recall seria o “&lt;em&gt;método ativo&lt;/em&gt;”, iria forçar seu cérebro a relembrar assunto que estudou minutos ou horas atrás, um dos exemplos bem legais é o método feynman que expliquei anteriormente, mas vou explicar a forma que faço. &lt;/p&gt;

&lt;h3&gt;
  
  
  2.1 - Assista o vídeo até determinado ponto.
&lt;/h3&gt;

&lt;p&gt;Se for uma videoaula (&lt;em&gt;ou qualquer material que esteja usando viu&lt;/em&gt;), sempre que o professor concluir a explicação de um tópico e iniciar outro, pause o vídeo e anote apenas os principais tópicos.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/em&gt; o professor começa contando como foi a experiência dele na faculdade de &lt;em&gt;Engenharia de Software&lt;/em&gt;. Em seguida, ele passa a explicar por que utilizou determinada linguagem de programação durante o curso. Assim que ele concluir esse assunto e antes de iniciar o próximo, &lt;em&gt;pause o vídeo&lt;/em&gt; e anot*&lt;em&gt;e os pontos PRINCIPAIS&lt;/em&gt;*, não sua explicação ainda. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Exemplo 2 (anotação)&lt;/strong&gt;&lt;/em&gt; : Aqui ele explicou sobre sua experiência na faculdade. (pronto, escreve mais nada)&lt;/p&gt;

&lt;h3&gt;
  
  
  2.2 - Torra seu cérebro.
&lt;/h3&gt;

&lt;p&gt;Não volte na sua vídeo aula, documentação e afins, olhe para o tópico anotado e tente lembrar com suas próprias palavras o que ele disse, sim, funciona até com código (é muito bom, mas dá um leve estresse kkk), você escolhe se fará anotação ou explicar com suas próprias palavras (feynman). &lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusão
&lt;/h3&gt;

&lt;p&gt;Na realidade existem vários métodos de estudos para cada cabeça, como disse no prólogo, autoconhecimento na jornada de programação já é um passo maravilhoso, não se cobre ou até mesmo se estressa demais durante os estudos, é NORMAL não saber de primeira, só não desista.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Agradeço a toda comunidade por sempre instigar a compartilhar nossos conhecimentos.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>aprendizado</category>
      <category>estudos</category>
    </item>
    <item>
      <title>Como eu venci o medo da transição de carreira</title>
      <dc:creator>Bárbara Martins da Silveira</dc:creator>
      <pubDate>Sun, 26 Jul 2026 19:12:49 +0000</pubDate>
      <link>https://dev.to/he4rt/como-eu-venci-o-medo-da-transicao-de-carreira-4b3c</link>
      <guid>https://dev.to/he4rt/como-eu-venci-o-medo-da-transicao-de-carreira-4b3c</guid>
      <description>&lt;p&gt;Migrar de carreira para a área de tecnologia pode parecer difícil no início. O mercado está cada vez mais concorrido, além de estar passando por muitas transformações. Realizar a transição não é um processo fácil, mas é totalmente possível, mesmo que você esteja em uma área completamente diferente, ou atue há muitos anos em outro setor. Nesse artigo, compartilho como foi o meu processo, além de dar algumas dicas para quem está em transição ou pensando em iniciar a mudança de carreira. &lt;/p&gt;




&lt;h2&gt;
  
  
  Sumário
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; O início da jornada&lt;/li&gt;
&lt;li&gt; Reconhecendo a insatisfação&lt;/li&gt;
&lt;li&gt; Os primeiros medos&lt;/li&gt;
&lt;li&gt; Lidando com críticas&lt;/li&gt;
&lt;li&gt; A conquista da primeira vaga&lt;/li&gt;
&lt;li&gt; Dicas para quem está em transição de carreira:&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  O início da jornada
&lt;/h2&gt;

&lt;p&gt;Nessa semana completo 1 ano da minha transição de carreira. Sei que, para quem acompanha de fora, pode parecer que foi fácil ou que tive sorte em algum momento. Mas quem está na área de TI sabe o quanto esse processo é complexo. Ao olhar para trás, sinto como se passasse um filme na minha cabeça.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reconhecendo a insatisfação
&lt;/h2&gt;

&lt;p&gt;Desde o começo, a transição foi difícil: reconhecer que eu não estava satisfeita na carreira atual, lidar com rotina dupla, exaustão, críticas de pessoas próximas e o medo de recomeçar. Antes de iniciar meus estudos em tecnologia, minha rotina era insana e eu dormia poucas horas por noite. Até que percebi que não estava evoluindo e que a carreira para a qual me preparava já não fazia sentido. Foi então que decidi tirar do papel uma vontade que surgiu na pandemia, mas que o medo de começar havia travado: estudar tecnologia.&lt;/p&gt;




&lt;h2&gt;
  
  
  Os primeiros medos
&lt;/h2&gt;

&lt;p&gt;No início, eu tinha medo de tudo: baixar uma IDE, mexer em código, enviar algo para o git, errar e falhar. Criar um post em rede social como o LinkedIn, então? Parecia absurdo compartilhar que eu estava tentando migrar de área. Mas mesmo com medo, iniciei e não deixei que minhas inseguranças me paralisassem. Consegui começar minha graduação online, muito mais flexível e adaptada aos meus horários, e descobri algo novo: a felicidade em evoluir e aprender sobre um assunto que eu realmente gostava.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lidando com críticas
&lt;/h2&gt;

&lt;p&gt;As críticas vieram. Algumas pessoas diziam que seria apenas um interesse passageiro, que eu estava desperdiçando meu curso anterior na federal, que era loucura iniciar algo novo nessa altura da carreira. Trabalhei isso em terapia e aprendi a ignorar opiniões que não acrescentavam nada.&lt;/p&gt;




&lt;h2&gt;
  
  
  A conquista da primeira vaga
&lt;/h2&gt;

&lt;p&gt;Depois de 3 meses estudando, comecei a aplicar para processos seletivos, entender como funcionava o LinkedIn, criar posts, realizar conexões e focar nas áreas que realmente me interessavam. Foi um processo construído aos poucos, mas perdi o medo de escrever e meu perfil deixou de ser invisível. Aos poucos, as oportunidades começaram a aparecer e, em 6 meses de busca, conquistei minha tão sonhada vaga (claro que depois de muitos &lt;strong&gt;nãos&lt;/strong&gt;). Mais do que isso: pude ajudar outras meninas que me procuraram em busca de dicas para ingressar na área, e isso é motivo de muito orgulho para mim.&lt;/p&gt;




&lt;h2&gt;
  
  
  Dicas para quem está em transição de carreira:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Comece com medo mesmo:&lt;/strong&gt; no início, o processo é assustador, mas comece com medo mesmo. A primeira vaga é a mais difícil de conseguir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aceite que nem todos os dias serão bons:&lt;/strong&gt; cada dia passado é um passo a menos até conquistar seu espaço. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mantenha o LinkedIn ativo:&lt;/strong&gt; mesmo que você não goste da rede, hoje praticamente todas as vagas passam por lá. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Invista em networking:&lt;/strong&gt; em uma área tão concorrida, relacionamentos são até mais importantes que conhecimento técnico. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Participe de comunidades tech:&lt;/strong&gt; as comunidades tech como a &lt;a href="https://heartdevs.com/" rel="noopener noreferrer"&gt;He4rt&lt;/a&gt; são espaços de troca de ideias, colaboração, eventos, engajamento e projetos open source. É o melhor lugar para trocar ideias, conversar com pessoas que estão passando pelo mesmo processo que você, além de participar de projetos reais que podem somar muito ao seu currículo. &lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Se você pensa em migrar de carreira ou está passando por esse momento agora, lembre-se: essa fase exige paciência e persistência, mas cada projeto, cada conexão e cada tentativa te aproximam do tão sonhado &lt;strong&gt;sim&lt;/strong&gt;. Para quem já passou ou está passando pela transição para TI, quais foram seus maiores desafios e aprendizados? Compartilhe nos comentários! A sua experiência pode inspirar outras pessoas.&lt;/p&gt;

</description>
      <category>carreira</category>
      <category>aprendizado</category>
      <category>networking</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Começando com Redes: Camadas de uma conexão TCP/IP</title>
      <dc:creator>Cristian Magalhães</dc:creator>
      <pubDate>Fri, 24 Jul 2026 12:37:44 +0000</pubDate>
      <link>https://dev.to/he4rt/comecando-com-redes-camadas-de-uma-conexao-tcpip-1bjn</link>
      <guid>https://dev.to/he4rt/comecando-com-redes-camadas-de-uma-conexao-tcpip-1bjn</guid>
      <description>&lt;p&gt;Eae gente bonita, beleza? Depois de um longo período, resolvi voltar aqui e continuar compartilhando a minha trilha de estudos com vocês. Hoje vou começar (tentar pelo menos) uma série sobre redes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia2.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExMm8yMG9wdnJzc3dnbnpiYjQwM242NjJjaDNpaG5jeWJvbW5heDdndSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2Fm12EDnP8xGLy8%2Fgiphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia2.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExMm8yMG9wdnJzc3dnbnpiYjQwM242NjJjaDNpaG5jeWJvbW5heDdndSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2Fm12EDnP8xGLy8%2Fgiphy.gif" alt="child fixing a server?" width="480" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que estudar redes
&lt;/h2&gt;

&lt;p&gt;Começaremos com o porquê de aprofundar os estudos em redes. Conforme a sua senioridade vai aumentando, você vai ganhando novas responsabilidades para si e também dentro do ambiente de trabalho. Levando isso em consideração, ter o conhecimento básico de redes para poder ter mais autonomia e autoridade quando falar de cloud, arquitetura e coisas do tipo realmente não me parece ser uma má ideia. "Ah, mas na minha empresa tem devops que cuida disso", ainda assim, é necessário o mínimo de conhecimento teórico para conversar e até mesmo ajudar a entender o seu problema e criar soluções.&lt;/p&gt;

&lt;h2&gt;
  
  
  TCP/IP
&lt;/h2&gt;

&lt;p&gt;Explicando a sigla basicamente, o modelo TCP/IP é um conjunto de protocolos de comunicação que permite a conexão e a troca de informações na internet.&lt;/p&gt;

&lt;h2&gt;
  
  
  O conjunto recebe o nome de seus dois protocolos principais:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;IP (Internet Protocol)&lt;/strong&gt; = Responsável pelo roteamento dos pacotes e endereçamento para que as informações cheguem ao seu destino.&lt;br&gt;
&lt;strong&gt;TCP (Transmission Control Protocol)&lt;/strong&gt; = Está presente na camada de transporte garantindo que nenhum pacote seja perdido ou corrompido.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como funciona o modelo TCP/IP
&lt;/h2&gt;

&lt;p&gt;Gosto muito de sair do escopo macro para o micro. Basicamente, uma conexão ocorre quando duas máquinas estão trocando informações (pacotes) entre si. E não precisa ser sempre dessa forma; também temos o caso (mais comum) em que uma máquina (cliente) pede informações a outra (servidor).&lt;/p&gt;

&lt;p&gt;Ficou simples até demais, né? Para que a troca de informações funcione, existe uma série de passos a serem seguidos. Dentro de uma conexão existem algumas camadas, pelas quais a informação passa antes de chegar ao seu destino.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L7&lt;/strong&gt; = É a camada de aplicação, onde a aplicação roda e também onde roda o protocolo HTTP, SMTP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L4&lt;/strong&gt; = Camada de transporte: responsável por garantir a entrega confiável dos dados entre a origem e o destino (é aqui que atua o TCP).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L3&lt;/strong&gt; = Camada de rede: responsável pelo roteamento dos pacotes e endereçamento até o destino (é aqui que atua o IP).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L2&lt;/strong&gt; = Camada de enlace: responsável por transmitir os quadros de dados entre dispositivos dentro da mesma rede, através do endereço MAC.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Isso é uma regra geral. A camada de cima sempre usa os recursos da camada de baixo para enviar as informações.&lt;/p&gt;

&lt;p&gt;Importante lembrar: caso uma camada de baixo não funcione, a camada de cima também não funcionará.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp4b4m28pww7ag2tebsx4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp4b4m28pww7ag2tebsx4.png" alt=" " width="774" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é um pacote
&lt;/h2&gt;

&lt;p&gt;Basicamente um pacote é uma carta ou mesmo uma "caixa" por onde as informações são trafegadas na internet. Além das informações requisitadas, nele constam também o remetente e o destinatário, da mesma forma que em uma carta.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por fim...
&lt;/h2&gt;

&lt;p&gt;Hoje falei um pouco sobre como funciona uma conexão, como é estruturada e como funciona todo o processo de troca de informações. Em breve trarei mais tópicos sobre o que existe dentro de uma mensagem HTTP e coisas do tipo.&lt;/p&gt;




&lt;p&gt;Se chegou até aqui, me segue lá nas &lt;a href="https://cristianm.dev/" rel="noopener noreferrer"&gt;redes vizinhas&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/uWlpPGquhGZNFzY90z/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/uWlpPGquhGZNFzY90z/giphy.gif" alt="thank you dog" width="478" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>aws</category>
      <category>cloud</category>
      <category>programming</category>
    </item>
    <item>
      <title>Contribuir para a comunidade: como destacar isso no seu LinkedIn e currículo</title>
      <dc:creator>vitoriazzp</dc:creator>
      <pubDate>Wed, 22 Jul 2026 18:11:09 +0000</pubDate>
      <link>https://dev.to/he4rt/contribuir-para-a-comunidade-como-destacar-isso-no-seu-linkedin-e-curriculo-4cgl</link>
      <guid>https://dev.to/he4rt/contribuir-para-a-comunidade-como-destacar-isso-no-seu-linkedin-e-curriculo-4cgl</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Como eu mostro que estou contribuindo?&lt;/li&gt;
&lt;li&gt;Posso colocar no meu LinkedIn?&lt;/li&gt;
&lt;li&gt;E no meu currículo, como faço?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Foi a partir dessas dúvidas que eu elaborei esse guia pra você que quer contribuir do seu jeito e mostrar às empresas e às pessoas, de forma clara e estratégica, o que você está fazendo.&lt;/p&gt;

&lt;p&gt;Vamos lá? 👇&lt;/p&gt;




&lt;h2&gt;
  
  
  Por que eu deveria mostrar no LinkedIn?
&lt;/h2&gt;

&lt;p&gt;LinkedIn é a porta de entrada para o mundo corporativo no Brasil e no mundo. É por meio dele que você mostra "trabalho". E tem mais: não é só experiência remunerada que conta como evidência de que você tem conhecimento e prática, mas também &lt;em&gt;tudo o que você constrói de forma voluntária&lt;/em&gt;, seja tirando dúvida de alguém, participando de um projeto open-source ou escrevendo sobre o que aprendeu. Recrutador não lê currículo pensando só em carteira assinada. &lt;strong&gt;Lê pensando em capacidade&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Você contribui com algo para a comunidade e quer colocar isso no seu perfil. Existem 3 formas que você pode usar, e elas podem ser usadas todas juntas ou só uma.&lt;/p&gt;

&lt;p&gt;Escolha aquela que fizer mais sentido pro seu perfil ou busque por outras pessoas que você admira dentro da comunidade e veja como elas colocaram no próprio perfil.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Seção de &lt;strong&gt;Experiência&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl4jtif8f89vj9q6e55e4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl4jtif8f89vj9q6e55e4.png" alt="linkedin-experience" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use como experiência sempre que estiver contribuindo de forma profissional pra uma área que você busca. Se você participa de contribuições no GitHub, seja através de código, documentação ou outra forma, use como experiência.&lt;/p&gt;

&lt;p&gt;Pessoas que também estão ajudando na moderação ou administração (community managers) podem destacar as responsabilidades ou resultados das suas ações por aqui.&lt;/p&gt;

&lt;p&gt;Exemplo de como preencher no LinkedIn:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cargo: [cargo que você faz] Open Source
Empresa: [Nome do projeto/organização]
Tipo de emprego: Meio período (ou Voluntário)
Local: Remoto, Brasil

Descrição:
- Contribuí com [X] pull requests na documentação do projeto [Nome],
  focando em clareza para novos contribuidores.
- Revisei issues abertas e sugeri melhorias de acessibilidade em
  componentes de UI usando [ferramenta/stack].
- Participei de reuniões semanais de planejamento com o time core
  do projeto.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;Se estiver em dúvida sobre a sua atuação em algum projeto ou até especificamente sobre como colocar, comenta aqui ou chama a gente no Discord; ficaremos felizes em te ajudar.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  2. Seção de &lt;strong&gt;voluntariado&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FAfPTCeC.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FAfPTCeC.gif" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esse espaço é um pouco mais livre. Você pode usar pra mostrar que é membro da comunidade, moderador ou outro cargo que faça sentido e descreva sua participação. Não é necessário listar ou descrever o que você faz, só se quiser 🫣&lt;/p&gt;

&lt;p&gt;Exemplo simples:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Organização: He4rt Developers
Função: Devloper Advocated
Causa: Ciência e tecnologia
Período: Março de 2025 - Presente

Descrição (opcional):
- Lidero o programa de advocacia da comunidade, conectando
  membros a oportunidades de conteúdo e mentoria.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Exemplo mínimo, sem descrição:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Organização: Friends of Figma Porto Alegre
Função: Voluntária (fotografia e recepção de convidados)
Período: 2025 - Presente
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Seção de &lt;strong&gt;Projetos&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk1tv5093gq41qikb5z5z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk1tv5093gq41qikb5z5z.png" alt="linkedin-projects" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Participa de um projeto específico da comunidade?&lt;/strong&gt; Essa seção é a mais indicada pra você nesse caso, porque dá visibilidade às suas stacks e skills. Por isso é importante estruturar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nome do projeto&lt;/li&gt;
&lt;li&gt;Prévia (print ou link do repositório)&lt;/li&gt;
&lt;li&gt;Descrição do que é&lt;/li&gt;
&lt;li&gt;Stacks que você aplica durante as suas contribuições&lt;/li&gt;
&lt;li&gt;(opcional) Marque quem está no projeto com você&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Nome do projeto: Plataforma da He4rt 
Link: github.com/he4rt/heartdevs.com

Descrição:
Landing page da comunidade He4rt Developers,
Construída com identidade visual própria (roxo He4rt, dark mode).

Minha contribuição:
Design e desenvolvimento front-end da página, do wireframe
À implementação em PHP.

Stacks: Figma, React, Tailwind CSS, Claude Design
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Depara: quem tem experiência x quem não tem
&lt;/h2&gt;

&lt;p&gt;Um erro comum é achar que sem carteira assinada não tem o que mostrar. Não é bem assim. Muda a forma de descrever, não a legitimidade do que você fez.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flz7e8s6hr7d9k5ggqzpo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flz7e8s6hr7d9k5ggqzpo.png" alt="tabela comparativa entre quem tem e não tem experiência" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nos dois casos, a régua é a mesma: se você fez, pode mostrar. O que muda é o quanto de contexto você precisa dar pra quem está lendo confiar no que está escrito.&lt;/p&gt;


&lt;h2&gt;
  
  
  Segunda parada: currículo
&lt;/h2&gt;

&lt;p&gt;É importante manter as mesmas informações que você tem no LinkedIn. Caso não tenha experiência formal, mas contribua pra comunidade, pode colocar diretamente na seção de experiência, com pelo menos 2 bullets do que você fez, como fez e qual foi o resultado.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;He4rt Developers (Tecnologia)
UI/UX Designer | Remoto, Brasil | Março 2026 - Presente

- Desenvolvi microcopy e fluxos de UI para funcionalidades internas
  da comunidade, aplicando princípios de acessibilidade e clareza.
- Colaborei com o time de desenvolvimento na construção da landing
  page de artigos, do wireframe em Figma à entrega final em React.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Exemplo pra quem já tem experiência formal em outra área e quer somar a contribuição:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Friends of Figma Porto Alegre (Comunidade)
Voluntária | Porto Alegre, Brasil | 2025 - Presente

- Apoiei a organização de eventos presenciais, atuando na recepção
  de convidados e registro fotográfico do evento.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Um modelo pra chamar de seu
&lt;/h2&gt;

&lt;p&gt;Pra facilitar essa parte do currículo, criei um modelo que passa tanto pela leitura de um recrutador humano quanto por um ATS (o robô que filtra currículo antes de chegar em alguém). Ele serve tanto pra quem já tem experiência formal e quer só organizar melhor, quanto pra quem está usando a comunidade como primeira experiência pra registrar no papel.&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://docs.google.com/document/d/1F1GGFeAQKwobE1RKpjlIpkGpFfByFsm2-WKVtAZ97es/edit?usp=sharing" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh7-us.googleusercontent.com%2Fdocs%2FAHkbwyICbYc0yX6x1XAvqC0PywI_y517J8MJdsMS2wjO_ZttPVdacaZOLy6m3SwxdVvWErszJQTGep2rNv8utmEFASxp7UF0kgNEAeAFssP1GgQgjGNxKc9Y%3Dw1200-h630-p" height="630" class="m-0" width="1200"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://docs.google.com/document/d/1F1GGFeAQKwobE1RKpjlIpkGpFfByFsm2-WKVtAZ97es/edit?usp=sharing" rel="noopener noreferrer" class="c-link"&gt;
            Modelo Currículo (com e sem experiência) - Google Docs
          &lt;/a&gt;
        &lt;/h2&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fssl.gstatic.com%2Fdocs%2Fdocuments%2Fimages%2Fdocs-favicon-2026-v2.ico" width="256" height="256"&gt;
          docs.google.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;






&lt;p&gt;Contribuir pra comunidade é trabalho, mesmo sem salário no fim do mês. E o &lt;strong&gt;trabalho merece estar registrado&lt;/strong&gt; em algum lugar que outras pessoas possam ver.&lt;/p&gt;

&lt;p&gt;Se esse guia te ajudou a organizar como colocar sua contribuição no LinkedIn ou no currículo, conta aqui nos comentários: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Qual a sua maior dor hoje pra mostrar as suas contribuições no LinkedIn ou no currículo?&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>braziliandevs</category>
      <category>career</category>
      <category>discuss</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Produto 4 Devs</title>
      <dc:creator>Renan Vidal Rodrigues</dc:creator>
      <pubDate>Thu, 16 Jul 2026 13:43:06 +0000</pubDate>
      <link>https://dev.to/he4rt/produto-4-devs-pbp</link>
      <guid>https://dev.to/he4rt/produto-4-devs-pbp</guid>
      <description>&lt;p&gt;Todo Dev tem que entender que "ou tu aprende sobre Produto e Regras de Negócio ou tu vai ficar pra trás", o código é só 30% da resolução do problema!&lt;/p&gt;

&lt;h2&gt;
  
  
  Tabela de Conteúdo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;1. Prólogo &lt;/li&gt;
&lt;li&gt;2. O que é um Produto? (Sem enrolação) &lt;/li&gt;
&lt;li&gt;3. Por que um dev deveria se importar? &lt;/li&gt;
&lt;li&gt;4. Diferença entre Projeto e Produto &lt;/li&gt;
&lt;li&gt;5. Ciclo de vida do Produto &lt;/li&gt;
&lt;li&gt;6. O que importa o Dev entender do ciclo de vida do produto? &lt;/li&gt;
&lt;li&gt;7. Conclusão &lt;/li&gt;
&lt;li&gt;8. Se interessou?
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Prólogo&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Cada vez mais vejo que é essencial para um Dev ou para um time de desenvolvedores entenderem sobre Produtos e Regras de Negócio, pois é isso que mercado espera.&lt;/p&gt;

&lt;p&gt;É como o Daniel &lt;strong&gt;(He4rt)&lt;/strong&gt; Reis sempre fala o mercado espera Devs &lt;strong&gt;desenrolados&lt;/strong&gt; que buscam entender as regras de negocio, do produto em si! Pois código é só 30% do trabalho, os outros 70% são a capacidade de entender o produto e debater sobre o mesmo.&lt;/p&gt;

&lt;p&gt;Pensando nisso decidi escrever uma série de artigos focados em Produtos para Devs, buscando preencher uma lacuna comum nas equipes de desenvolvimento, buscando aproximar desenvolvimento e produto sem jargões ou excesso de teoria. Para ajudar aqueles que querem aprender sobre e também uma forma de sintetizar meus conhecimentos.&lt;/p&gt;

&lt;p&gt;Mas você deve estar ai pensando: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;"Mas Renan esse conteúdo faz sentido pra mim que estou começando a estudar programação agora?&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;E minha resposta é &lt;strong&gt;Sim&lt;/strong&gt;, esse conhecimento é fundamental para você, seja você uma pessoa que começou a estudar programação agora, um júnior, um pleno, um sênior, ou simplesmente alguém que está pensando em migrar de área. E novamente &lt;strong&gt;Sim&lt;/strong&gt; esse conteúdo é para &lt;strong&gt;você ai&lt;/strong&gt;, que quer se destacar e sair na frente de muita gente que pensa que hoje é só &lt;em&gt;vibecodar e tudo vai dar bom!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fna4hef9x9n65j24cvcss.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fna4hef9x9n65j24cvcss.png" alt="Daniel He4rt apontando para tela dizendo " width="274" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Portanto vamos começar abordando o tópico que acredito ser o que é mais sentido para iniciarmos essa jornada que é:   &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. O que é um Produto? &lt;em&gt;(Sem enrolação)&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Mas e ai &lt;strong&gt;o que é um produto de verdade?&lt;/strong&gt; Um produto não é um software, pois um software pode ser apenas uma ferramenta, um &lt;strong&gt;produto é o valor real entregue ao usuário!&lt;/strong&gt; Um produto é resolver um problema de negocio de forma sustentável!&lt;/p&gt;

&lt;p&gt;Um Produto sempre, mais &lt;strong&gt;sempre&lt;/strong&gt; mesmo só ira surgir para resolver um problema, uma dor, uma necessidade ou simplesmente satisfazer um desejo de um usuário ou um cliente. Seja esse usuário uma empresa ou um simples cliente.  &lt;/p&gt;

&lt;p&gt;Mas vale ressaltar que nem todo produto resolve uma &lt;strong&gt;dor&lt;/strong&gt; intensa, muitas vezes alguns apenas amenizam essa necessidade, alguns ganham tempo, outros geram status ou entretenimento.  Mas o mais importante é que sempre um produto entregam algum &lt;strong&gt;valor&lt;/strong&gt; ao usuário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mas e o produto digital?&lt;/strong&gt;&lt;br&gt;
Agora que já entendemos o conceito básico de produto, podemos dizer que um &lt;strong&gt;Produto digital&lt;/strong&gt; é qualquer software que tenha usuários e entregam algum tipo de valor a esse.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;3. Por que um dev deveria se importar?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Essa é a pergunta de milhões que faz toda diferença e sua resposta é bem simples quando paramos para pensar que decisões técnicas que são tomadas pelo time tech impactam no negócio, que toda divida técnica também é uma decisão de de produto e que a performance, segurança e escalabilidade também são uma entrega de &lt;strong&gt;valor&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tendo isso em vista podemos entender que um dev que se importa em entender as &lt;strong&gt;Regras do Negocio&lt;/strong&gt; e entender o &lt;strong&gt;Valor que o Produto busca entregar&lt;/strong&gt;, consegue enxergar qual caminho deve seguir, quais decisões devem ser levadas em consideração na construção da arquitetura de um produto, quais funcionalidades agregaram mais valor a experiencia do usuário, como um banco de dados deve ser modelado para poder atender a necessidade deste produto.&lt;/p&gt;

&lt;p&gt;Além disso essa compreensão permite o dev questionar, debater e a elaborar planos de ação muito mais eficientes e que muitas vezes evitam muito retrabalho e refatoração de código, que muitas vezes aparecem pelo fato de você ter simplesmente ter "codado" uma funcionalidade sem entender todo o escopo do que o produto se propõem através da mesma.&lt;/p&gt;

&lt;p&gt;Então jovens lembrem-se, entender o Produto evita retrabalho, e evitar retrabalho significa menos esforço e mais tempo para outras coisas que realmente valem a pena!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34i9bdwl9l337l23ymfr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34i9bdwl9l337l23ymfr.png" alt="fluxo de produto" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;4. Diferença entre Projeto e Produto:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Agora que acredito que já desenvolvemos uma visão legal do que é Produto, podemos debater um pouco sobre a diferença entre um &lt;strong&gt;Projeto&lt;/strong&gt; e um &lt;strong&gt;Produto&lt;/strong&gt;. Claro que neste momento você deve estar se questionando: &lt;strong&gt;"Mais não é tudo a mesma coisa no final?"&lt;/strong&gt; e foi esse mesmo pensamento que tive até entender que:&lt;/p&gt;

&lt;h3&gt;
  
  
  Projeto:
&lt;/h3&gt;

&lt;p&gt;Tem seu escopo é fechado, muito bem delimitado e definido no planejamento, tendo um começo, meio e fim claramente definidos e desenhados, tem um foco na entrega com um caminho bem documentado e claro pode funcionar em cenários previsíveis. &lt;/p&gt;

&lt;h3&gt;
  
  
  Produto:
&lt;/h3&gt;

&lt;p&gt;Já um produto tem um escopo mais aberto pois seu foco inicial é resolver uma &lt;strong&gt;problema&lt;/strong&gt; e não o como, geralmente ele tem um começo e meio que podem ser identificáveis, mas seu fim não. Seu foco esta no resultado, tendo um objetivo bem definido, e para isso faz uso de experimentação, testes e validação de ideias (Discovery), que servem de guia para o caminho a ser seguido. E é indicado para cenários e contextos voláteis.&lt;/p&gt;

&lt;p&gt;Então &lt;strong&gt;"não"&lt;/strong&gt;, uma nova funcionalidade não é um novo produto e sim um projeto, um produto é algo maior que vai possuir durante seu &lt;strong&gt;Ciclo de Vida&lt;/strong&gt; alguns projetos &lt;em&gt;(novas funcionalidades)&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;5. Ciclo de vida de Produto:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Por fim quero aborda um ponto que acho relevante de se ter pelo menos o conhecimento básico sobre. O &lt;strong&gt;Ciclo de vida do produto&lt;/strong&gt; este descreve todas as etapas pelas quais um produto passa dentro do mercado, desde seu lançamento até o seu fim por assim dizer.&lt;/p&gt;

&lt;p&gt;Basicamente temos a fase &lt;strong&gt;Inovação&lt;/strong&gt; que engloba desde o desenvolvimento do produto até sua entrada no mercado, onde seu foco inicial no mercado é buscar o &lt;strong&gt;Product Market Fit&lt;/strong&gt; &lt;em&gt;(Bem resumidamente são os clientes que se identificam com o produto)&lt;/em&gt;, nessa etapa o perfil de usuário é composto por aqueles que são do grupo dos &lt;strong&gt;Inovadores&lt;/strong&gt; &lt;em&gt;(Pessoas que estão usando o produto apenas por ele ser novo ou por apenas querer somente testa-lo)&lt;/em&gt;  e os do grupo de &lt;strong&gt;Primeiros Adeptos&lt;/strong&gt; &lt;em&gt;(São aqueles que realmente se identificam com o problema que o produto resolve logo de cara e servem muitas vezes como propagadores)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Temos também a fase &lt;strong&gt;Crescimento&lt;/strong&gt; onde o foco é o &lt;strong&gt;Growth&lt;/strong&gt; &lt;em&gt;(Processo contínuo de crescimento do produto no mercado por meio de melhorias no produto, novas funcionalidades e otimização da experiência do usuário).&lt;/em&gt; Aqui temos dois grupos de usuários o que chamamos de &lt;strong&gt;Maioria Inicial&lt;/strong&gt; que são aqueles que vem junto logo quando o produto começa a se popularizar no mercado e temos também a &lt;strong&gt;Maioria Tardia&lt;/strong&gt; que são aqueles que chegam depois que o produto já se estabilizou e começou a se consolidar. &lt;/p&gt;

&lt;p&gt;E por fim temos a fase de &lt;strong&gt;Maturidade&lt;/strong&gt; aqui nosso produto já se consolidou, mantem uma boa base de clientes fieis e continua entregando valor, deste ponto ou o produto se mantem no mercado ou entra em &lt;strong&gt;Declínio&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No processo inicial de um produto logo após a chegada dos Primeiros Adeptos antes da Maioria Inicial, temos um &lt;strong&gt;Abismo&lt;/strong&gt; onde muitos produtos morrem, por não conseguirem cruzar esse abismo. E temos também um abismo após a maturidade uma &lt;strong&gt;quarta fase&lt;/strong&gt; que é quando o produto não consegue seguir inovando e não consegue mais agregar*&lt;em&gt;"valor"&lt;/em&gt;&lt;em&gt;, que é a fase de *Descontinuar um produto&lt;/em&gt; ou &lt;em&gt;Morrer, matar o produto, ou sunset&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw27opqop5be2yqprfnga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw27opqop5be2yqprfnga.png" alt="ciclo de vida do produto" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;6. Mas o que importa o Dev entender do ciclo de vida do produto?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Saber o ciclo de vida do produto pode te ajudar a entender em que fase o produto em que você vai estar trabalhando pode estar e o quanto de esforço e investimento será empregado em cada fase. O quanto o processo de Discovery será necessário para mapear novas funcionalidades e melhorias de fluxos. E o que pra mim faz bastante sentido que é saber quando você pode propor alguma melhoria, nova funcionalidade ou até mesmo a ideia de um novo produto! &lt;/p&gt;

&lt;p&gt;Pois um Dev que tem capacidade de ajudar um produto crescer ou até mesmo a capacidade de propor um novo produto, sempre será um Dev diferenciado no mercado! &lt;strong&gt;&lt;em&gt;(Claro quando esse tipo de atitude é valorizada)!!!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;7. Conclusão:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Nesse artigo entendemos um pouco mais sobre produtos, o que impacta na vida do Dev entender sobre o assunto, a diferença entre um projeto e um produto e compreendemos um pouco sobre o ciclo de vida do produto.&lt;/p&gt;

&lt;p&gt;Tudo isso para tentar ajudar você a ser um pouco mais um Dev &lt;strong&gt;Desenrolado&lt;/strong&gt;, que tem uma visão mais macro do processo, que vai muito além do Código.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;8. Se interessou?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Eu sou o Renan Vidal, trabalho como Product Owner já a algum tempo e agora estou estudando para migrar mais ainda para a área de produto, e com tudo que venho estudando e com toda experiencia que já tenho de mercado, e posso te dizer com alguma certeza que um Dev que se preocupa entender sobre Produtos e Regras de Negocio está na frente de muita, mas muita gente mesmo.&lt;/p&gt;

&lt;p&gt;Espero que tudo que escrevi aqui tenha algum sentido para pelo menos uma pessoa, e no caso de duvidas ou se deseja que eu aborde algum tópico de produto mais aprofundada é só deixar seu comentário!&lt;/p&gt;

</description>
      <category>product</category>
      <category>productivity</category>
      <category>career</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Métricas de qualidade de software na era da IA</title>
      <dc:creator>Alicia Marianne Gonçalves</dc:creator>
      <pubDate>Thu, 16 Jul 2026 00:12:21 +0000</pubDate>
      <link>https://dev.to/he4rt/metricas-de-qualidade-de-software-na-era-da-ia-334o</link>
      <guid>https://dev.to/he4rt/metricas-de-qualidade-de-software-na-era-da-ia-334o</guid>
      <description>&lt;p&gt;Não é novidade para ninguém que estamos passando por uma transformação na área de desenvolvimento de software, em que a IA está assumindo diversas atividades. E isso me faz pensar: o que vamos medir, ou o que teremos como parâmetro para qualidade de software daqui pra frente? É sobre isso que vou falar neste texto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Antes das métricas: entenda o momento do seu time
&lt;/h2&gt;

&lt;p&gt;Antes de entrarmos nas métricas em si, precisamos entender o momento em que o nosso time está. É muito fácil eu simplesmente jogar métricas aqui e você aplicá-las ao seu time de maneira automática — mas será que elas fazem sentido para o seu contexto?&lt;/p&gt;

&lt;p&gt;Uma coisa que eu falo bastante aos meus alunos da mentoria que dou na He4rt Developers é: &lt;strong&gt;pra que eu quero isso?&lt;/strong&gt; Softwares representam necessidades do mundo real, logo, medir o sucesso e a qualidade deles vai depender muito das necessidades que eles buscam suprir.&lt;/p&gt;

&lt;p&gt;Partindo agora para as métricas, eu gosto de dividi-las em dois grupos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Métricas para stakeholders&lt;/li&gt;
&lt;li&gt;Métricas para o time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Qualidade de software não se resume a número de bugs — ela se aplica tanto em como o software é recebido pelo cliente final, quanto em como ele é desenvolvido.&lt;/p&gt;

&lt;h2&gt;
  
  
  Métricas para stakeholders
&lt;/h2&gt;

&lt;p&gt;Uma coisa que eu aprendi neste tempo na empresa em que tenho atuado, principalmente com a transformação digital, é que mostrar número de bugs abertos ou resolvidos não mostra para o público o que realmente importa: como está a qualidade do produto. E, para me ajudar nisso, eu sempre tento me colocar no lugar de um cliente que não tem conhecimento profundo sobre o ciclo de desenvolvimento de software.&lt;/p&gt;

&lt;p&gt;A primeira coisa que eu gostaria de ver quando um QA, ou o time, vier me mostrar os resultados de uma sprint ou de um quarter é: quantos problemas eu tenho em produção — mas não só isso, quanto tempo tenho levado para resolvê-los.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mean Time to Resolve/Repair (MTTR)
&lt;/h3&gt;

&lt;p&gt;Essa é a famosa métrica que vai mostrar o tempo que leva desde que o problema é identificado até ele ser resolvido em produção. Dependendo de como é o seu processo de desenvolvimento, isso pode ser medido de formas diferentes. Se você tem um processo em que o cliente primeiro reporta para o suporte, o suporte faz uma pré-avaliação e só depois disso o problema vai para o time resolver, você pode medir em dois momentos: o tempo que o suporte leva para avaliar o problema e dar um primeiro parecer, e o tempo em que esse ticket de suporte de fato se torna um bug e entra na esteira de resolução.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cobertura de testes automatizados
&lt;/h3&gt;

&lt;p&gt;Outra métrica interessante de se mostrar para um time de stakeholders é a quantidade de testes automatizados — porém, não isolada. Acho que você já deve estar cansado de ouvir que ter 99% de cobertura de testes não significa qualidade, mas como posso apresentar essa métrica ao stakeholder de forma que ele veja o valor do investimento em automação que o seu time está fazendo?&lt;/p&gt;

&lt;p&gt;Uma coisa importante a analisar nesse contexto é se a cobertura de testes está realmente pegando os cenários importantes do sistema. Exemplo: se, no seu contexto, o seu MTTR está alto mas a sua cobertura de testes está alta, isso significa que a sua cobertura não está cobrindo o que realmente precisa ser coberto.&lt;/p&gt;

&lt;h3&gt;
  
  
  DORA Metrics
&lt;/h3&gt;

&lt;p&gt;Além dessas, as &lt;strong&gt;DORA Metrics&lt;/strong&gt; são grandes aliadas para auxiliar nesse diagnóstico.&lt;/p&gt;

&lt;p&gt;As DORA Metrics (DevOps Research and Assessment, hoje parte do Google Cloud) nasceram para medir a performance de entrega de software, mas, na prática, funcionam como um termômetro da qualidade do processo como um todo — porque times que entregam rápido &lt;em&gt;e&lt;/em&gt; com poucos incidentes são times com um pipeline de qualidade (testes, revisão, observabilidade) bem construído.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Fonte oficial:&lt;/strong&gt; &lt;a href="https://dora.dev/" rel="noopener noreferrer"&gt;dora.dev&lt;/a&gt; — pesquisa contínua do DORA (Google Cloud) sobre as métricas e capacidades que diferenciam times de alta performance. Vale a leitura direta da fonte para acompanhar atualizações do modelo, como a inclusão de Reliability como quinta métrica.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Deployment Frequency (Frequência de Deploy)&lt;/strong&gt;&lt;br&gt;
Com que frequência o time coloca código em produção. Deploys menores e mais frequentes são mais fáceis de testar e, se algo der errado, mais fáceis de isolar a causa — menos mudanças acumuladas por deploy significa menos variáveis para investigar. Uma frequência de deploy caindo pode ser sintoma de um time com medo de quebrar produção, geralmente por falta de confiança nos testes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lead Time for Changes (Tempo entre o commit e a produção)&lt;/strong&gt;&lt;br&gt;
Tempo desde que uma mudança é commitada até ela estar rodando em produção. Um lead time alto muitas vezes esconde um gargalo em etapas de validação manual demoradas, ou retrabalho por bugs encontrados tarde no ciclo. É uma métrica que expõe se o teste está acontecendo cedo (shift-left) ou só no fim, represando a entrega.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Change Failure Rate (Taxa de Falha em Mudanças)&lt;/strong&gt;&lt;br&gt;
Percentual de deploys que causam falha em produção (incidente, rollback, hotfix). É, de longe, a métrica DORA mais diretamente ligada à qualidade do processo de teste. Está diretamente relacionada à cobertura de testes: se essa métrica está alta, significa que a sua cobertura de testes está baixa ou, como dito anteriormente, não está cobrindo o que realmente precisa ser coberto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time to Restore Service (Tempo de Restauração)&lt;/strong&gt;&lt;br&gt;
Tempo médio para restaurar o serviço depois de um incidente em produção (rollback, hotfix, correção de configuração). Mede a capacidade do time de reagir quando — não &lt;em&gt;se&lt;/em&gt; — algo dá errado. QA pode influenciar diretamente essa métrica ajudando a desenhar testes de rollback, feature flags e smoke tests pós-deploy que aceleram a detecção e a decisão de reverter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability (Confiabilidade — métrica mais recente do modelo DORA)&lt;/strong&gt;&lt;br&gt;
O quanto o sistema atende às expectativas de disponibilidade e performance do usuário no dia a dia, não só durante incidentes. Conecta a qualidade percebida pelo usuário com o trabalho de teste não funcional (performance, disponibilidade) — é o lembrete de que qualidade não é só "não ter bug", é o sistema se comportar bem sob uso real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Métricas para o time
&lt;/h2&gt;

&lt;p&gt;As métricas para stakeholders ajudam bastante o time a ver o estado daquilo que estão produzindo, mas, às vezes, você quer enxergar a qualidade no próprio processo de desenvolvimento do software. Aqui podemos ter métricas mais pontuais.&lt;/p&gt;

&lt;h3&gt;
  
  
  Root Cause Analysis
&lt;/h3&gt;

&lt;p&gt;São métricas que ajudam a ver os padrões dos problemas que acontecem no software ou durante o desenvolvimento e, a partir delas, pensar em planos de ação. Exemplo: se eu tenho muitos problemas relacionados a falta de requisitos, posso deixar os requisitos mais explícitos nas tarefas e, daqui a 2 ou 3 sprints, validar se esse tipo de root cause se tornou menos frequente ou não.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bugs identificados antes do lançamento
&lt;/h3&gt;

&lt;p&gt;Existem algumas métricas que você também pode extrair relacionadas a bugs, como: quantos bugs foram identificados antes mesmo de lançarmos a feature em produção? Isso pode ser alimentado tanto pela execução de testes manuais quanto por testes automatizados que falharam ao adicionar uma nova feature.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retrabalho
&lt;/h3&gt;

&lt;p&gt;É possível também calcular o retrabalho, uma métrica que vai te ajudar tanto a ver se o número de bugs está aumentando ou não quanto no planejamento. Quando o seu time costuma ter uma taxa de retrabalho de 10%, é possível alinhar com os Product Owners 10% de margem dentro de uma sprint para possíveis bugs. Assim, o planejamento se torna mais realista, as expectativas ficam alinhadas, e o cliente e o time ficam mais felizes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Com essa transformação digital, é importante entendermos que temos métricas que podem nos auxiliar a medir o ciclo de desenvolvimento e a qualidade do produto — e o principal é que nenhuma delas, isoladamente, traz valor. Elas precisam ser lidas em conjunto, cruzadas entre si, e sempre voltando para aquela pergunta inicial: pra que eu quero isso?&lt;/p&gt;

&lt;p&gt;Com a IA aumentando a produção de código, a tendência é termos mais código sendo escrito, mais features sendo entregues e mais decisões sendo tomadas em menos tempo. E é justamente por isso que medir vai se tornar ainda mais importante do que já é hoje: se antes um time levava dias para gerar uma quantidade de código que hoje pode ser gerada em horas, os erros também podem se multiplicar na mesma velocidade — só que muitas vezes invisíveis até chegarem em produção.&lt;/p&gt;

&lt;p&gt;Por isso, acho que o papel do QA nesse novo cenário não é só testar mais rápido para acompanhar o ritmo da IA, mas também ser a pessoa que garante que estamos olhando para os números certos. Não adianta ganhar velocidade e perder visibilidade sobre o que está sendo entregue. Então, o convite que eu deixo é: olhe para essas métricas não como números para preencher um dashboard, mas como perguntas que elas estão te fazendo sobre o seu processo. E use a IA para te ajudar a responder essas perguntas mais rápido — não para substituir o hábito de perguntar.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>qa</category>
      <category>testing</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Como escolher eventos de tecnologia para participar</title>
      <dc:creator>vitoriazzp</dc:creator>
      <pubDate>Mon, 13 Jul 2026 17:45:47 +0000</pubDate>
      <link>https://dev.to/he4rt/como-escolher-eventos-de-tecnologia-para-participar-55kf</link>
      <guid>https://dev.to/he4rt/como-escolher-eventos-de-tecnologia-para-participar-55kf</guid>
      <description>&lt;p&gt;Quando comecei a ir a eventos de tecnologia, estava na faculdade e ia a todos os gratuitos ou que custavam, no máximo, 100 reais. Porém, eu estava começando em TI e sabia tão pouco sobre a área em que eu queria atuar, logo qualquer evento despertava minha curiosidade.&lt;/p&gt;

&lt;p&gt;Os anos passaram e eu me tornei frontend e passei a participar de eventos como front in (sampa, floripa, poa), TDCs, Roadsec (the mind sec) entre outros aí.&lt;/p&gt;




&lt;h2&gt;
  
  
  Por que ir a esses eventos?
&lt;/h2&gt;

&lt;p&gt;Desde que comecei a fazer freelance e me formei, percebo que é onde eu descubro as tecnologias e os problemas que as pessoas têm percebido. Também é uma forma prática de eu sair da minha zona de conforto e conhecer pessoas, visões de mundo diferentes e voltar com ideias pros meus serviços.&lt;/p&gt;

&lt;p&gt;Quando eu estava na faculdade, era muito mais simples ter essas duas "pontes" de &lt;em&gt;comunicação&lt;/em&gt; e também de &lt;em&gt;venda de solução&lt;/em&gt;. Após me formar e começar a trabalhar, percebi que a prospecção de clientes seria muito mais difícil se eu não estivesse nesses eventos.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Mas Vih, eu estou estudando, não estou mirando em freelance, do que me adianta ir?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Adianta que você conhece pessoas, faz amigos ou pessoas que vão te contratar ou indicar em trabalhos futuros. Além das palestras que podem te mostrar uma área dentro de TI que você ainda não conhecia e pode acabar gostando.&lt;/p&gt;




&lt;h2&gt;
  
  
  Como eu escolhia os eventos que iam fazer diferença pra mim?
&lt;/h2&gt;

&lt;p&gt;1) Eu tinha uma lista de assuntos e áreas de que eu gostava ou que acompanhava já nas redes sociais, exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- frontend: flutter, react, html/css, boas práticas, realidade aumentada
- segurança da informação: hacks, boas práticas, curiosidades etc
- backend: qualquer stack pra se atualizar
- design ihc, ux, produto, estratégia, marketing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;2) Seguia no Instagram as pessoas dessas áreas, que às vezes eram as mesmas que participavam dos eventos, por exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;@juliallabs&lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/stherzada"&gt;@stherzada&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/danielhe4rt"&gt;@danielhe4rt&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/spacecoding"&gt;@spacecoding&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/nataliafdev"&gt;@nataliafdev&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;@omarcusdev &lt;/li&gt;
&lt;li&gt;@dessadev &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Esses são alguns dos exemplos que eu mais acompanhava no Instagram, algumas pessoas também têm perfil nesta plataforma, mas o conteúdo sobre eventos está no Insta!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;3) Tinha uma noção do custo de alguns eventos, e quais eu podia arcar, quais eu precisava pra me atualizar ou fazer networking específico:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conferências até R$ 1.500;&lt;/li&gt;
&lt;li&gt;Eventos/meetups de R$ 0 a 600;
&amp;gt; Ter a meia-entrada ou o ingresso solidário ajudava a pagar menos; às vezes, a faculdade ou o emprego pagava a entrada em troca de trazer o conteúdo aplicado. Vale consultar a disponibilidade pra economizar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Mas qual a diferença entre conferência, eventos, meetups?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Conferência&lt;/em&gt;&lt;/strong&gt; costuma ser um evento amplo; faz-se pra apresentar conteúdos específicos, e o público costuma ser de empresas que levam o funcionário ou de pessoas que já estão no mercado e conseguem arcar com o custo do ingresso.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Eventos&lt;/em&gt;&lt;/strong&gt; podem ser pagos ou gratuitos; costumam ser organizados por empresas, mas às vezes comunidades também.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Meetups&lt;/em&gt;&lt;/strong&gt; são frequentemente organizados por comunidades e podem ou não ter custo; depende do lugar em que acontecem.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Onde eu posso achar eventos de tecnologia?
&lt;/h2&gt;

&lt;p&gt;Existem os sites de venda de ingresso como &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.sympla.com.br/eventos?s=tecnologia" rel="noopener noreferrer"&gt;Sympla&lt;/a&gt;, &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.meetup.com/find/?keywords=Technology&amp;amp;source=EVENTS" rel="noopener noreferrer"&gt;Meetup&lt;/a&gt;, &lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/agenda-tech-brasil/agenda-tech-brasil" rel="noopener noreferrer"&gt;Repositório no Github (amo esse)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://startups.com.br/eventos/agenda-2026-35-eventos-de-tecnologia-e-inovacao-para-ficar-de-olho/" rel="noopener noreferrer"&gt;Startup &lt;/a&gt;(é um jornal digital) &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Summits&lt;/em&gt;&lt;/strong&gt; são mais voltados para  empresas ou empreendedores; os valores são bem altos, mas consegue desconto dependendo da tua empresa ou faculdade. Vale a pena se pretende atuar em algum setor muito específico.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  E você? Como costuma escolher quais eventos de tecnologia ir?
&lt;/h2&gt;

</description>
      <category>beginners</category>
      <category>braziliandevs</category>
      <category>networking</category>
      <category>career</category>
    </item>
    <item>
      <title>Ownership: do "temos um rojão na mão" até "não precisa mais pensar nisso"</title>
      <dc:creator>Daniel Reis</dc:creator>
      <pubDate>Wed, 08 Jul 2026 17:25:50 +0000</pubDate>
      <link>https://dev.to/he4rt/ownership-do-temos-um-rojao-na-mao-ate-nao-precisa-mais-pensar-nisso-3ki7</link>
      <guid>https://dev.to/he4rt/ownership-do-temos-um-rojao-na-mao-ate-nao-precisa-mais-pensar-nisso-3ki7</guid>
      <description>&lt;p&gt;É aquele famoso "ou faz direito ou não faz" que todo dev deveria respeitar desde o inicio dos seus estudos. &lt;/p&gt;

&lt;h2&gt;
  
  
  Tabela de Conteúdo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;1. Prólogo&lt;/li&gt;
&lt;li&gt;2. Entenda o problema real&lt;/li&gt;
&lt;li&gt;3. Projete antes de codar&lt;/li&gt;
&lt;li&gt;4. Execute&lt;/li&gt;
&lt;li&gt;5. Verifique (em produção)&lt;/li&gt;
&lt;li&gt;6. Comunique&lt;/li&gt;
&lt;li&gt;7. Acompanhe&lt;/li&gt;
&lt;li&gt;É muita coisa. E olha que ainda tem mais.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Prólogo
&lt;/h2&gt;

&lt;p&gt;Acho que toda vez que eu vejo um dev iniciante, meu primeiro pensamento é: a hora de "criar" responsabilidade é literalmente agora, no inicio da carreira. Por exemplo: quando eu era junior eu pegava task, escrevia o código, mandava o Pull Request, que era mergeado e ia dormir feliz. Três dias depois o problema voltava, do mesmo jeito, e adivinha quem teve que mexer de novo? Eu. Por anos eu continuei fazendo aquilo, esquecendo daquela frase clichê de que: "30% do trabalho é de fato código". Mas ai de fato, quais são os outros 70%?&lt;/p&gt;

&lt;p&gt;Quando comecei a me perguntar isso, simplesmente entendi que: eu tinha entregado um &lt;strong&gt;código&lt;/strong&gt;, por &lt;strong&gt;anos&lt;/strong&gt; não tinha resolvido um &lt;strong&gt;problema&lt;/strong&gt;. E é sobre isso que a gente vai falar hoje.&lt;/p&gt;

&lt;p&gt;Eu uso muito a palavra &lt;em&gt;ownership&lt;/em&gt;. Vivo falando "você pode assumir isso?", "consegue cuidar disso?", "tá com você?" e faz um tempão que eu não paro pra explicar o que &lt;em&gt;ownership&lt;/em&gt; significa &lt;strong&gt;pra mim&lt;/strong&gt;. Então bora lá, que hoje o assunto é esse.&lt;/p&gt;

&lt;p&gt;Quando eu te pergunto "você pode assumir isso?", presta atenção: eu &lt;strong&gt;não&lt;/strong&gt; tô te pedindo pra escrever um código e mandar um PR. Eu tô te pedindo pra ser &lt;strong&gt;dono da solução de um problema, de ponta a ponta&lt;/strong&gt;. Do "temos um problema" até o "não precisa mais pensar nisso".&lt;/p&gt;

&lt;p&gt;E cara, isso muda TUDO. Assumir uma tarefa é entregar um código. Assumir um &lt;em&gt;problema&lt;/em&gt; é garantir que ele deixou de existir, e que ninguém, você inclusive, vai precisar voltar a pensar nele nunca mais. Quando você fala que tá &lt;em&gt;resolvendo&lt;/em&gt; alguma coisa, a expectativa é que você faça essa porra toda que vem abaixo. E ó, não é papo de gestão não: dominar isso é o que faz o time te dar problema cada vez maior sem medo. É basicamente o cheat code pra virar sênior de verdade, não sênior de tempo de casa.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Entenda o problema real
&lt;/h2&gt;

&lt;p&gt;Antes de qualquer linha de código, tenha CERTEZA de que você sabe o que tá resolvendo.&lt;/p&gt;

&lt;p&gt;O erro mais comum do mundo é começar pela solução. Você provavelmente já tem uma na cabeça sem ter parado 5 minutos pra pensar no que a gente tá de fato tentando resolver. Se você acha que "o problema é que precisamos migrar de X pra Y", pera aí mano, isso não é um problema, isso é uma &lt;strong&gt;solução&lt;/strong&gt;. O problema de verdade é algo tipo "a performance tá uma merda", "não é estável", "quebra pro cliente X".&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Migrar do MySQL pro Postgres" é solução.&lt;br&gt;
"A busca de membros da comunidade demora 8 segundos" é problema.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sacou a diferença? Beleza. Uma vez que você tem o problema real na mão, a próxima pergunta é: &lt;strong&gt;será que existem outras soluções possíveis?&lt;/strong&gt; Pensa nelas. Um índice resolve? Um cache resolve? Reescrever aquela query zoada resolve, antes de trocar o banco INTEIRO? Cada caminho tem seus tradeoffs. Qual é o melhor levando isso em conta?&lt;/p&gt;

&lt;p&gt;Se você pular essa fase, você corre o risco de passar duas semanas construindo a solução perfeita pro problema errado. E aí não tem PLAU que salve.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nosso caso (a busca de 8s):&lt;/strong&gt; o problema não é "migrar pro Postgres". É "a busca de membros demora 8 segundos". Antes de trocar de banco, será que um índice não mata isso?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  3. Projete antes de codar
&lt;/h2&gt;

&lt;p&gt;É aqui que a maioria dos problemas de produção nasce: nas perguntas que ninguém fez antes de começar. Então vamo fazer elas agora.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pensa nos edge cases.&lt;/strong&gt; Quais são? Quais são importantes? Quais dá pra ignorar de propósito (e deixar registrado que você ignorou)? Membro sem avatar, nome com emoji, lista vazia, fuso horário diferente do servidor. Escolher o que ignorar é uma decisão consciente; ignorar sem perceber é um bug esperando a hora de estourar na sua cara.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pensa nas falhas.&lt;/strong&gt; Falha de rede, por exemplo, é GARANTIDA. Como a gente lida com ela? Retry? Tá, mas com que frequência? Por quanto tempo? O webhook caiu: retry com backoff? três tentativas? e depois, descarta ou joga numa fila de reprocesso?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pensa no fluxo de dados.&lt;/strong&gt; Quanto dado tá envolvido? Precisa migrar algo? Limpar algo? Como você consegue dado de verdade pra testar direito? Quais invariantes existem nos dados? E principalmente: quais premissas sobre o formato dos dados você tem e ainda &lt;strong&gt;não confirmou&lt;/strong&gt;? "Todo membro tem e-mail"... você checou isso na base ou só assumiu e foi feliz?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pensa em como você vai testar.&lt;/strong&gt; Como você vai saber se o que construiu tá certo? Testes automatizados bastam? Precisa cutucar na mão? A diferença aparece num screenshot ou num vídeo? Um bug de dark mode não aparece em teste unitário, meu amigo. Aparece num print.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pensa em como isso vai ser anunciado.&lt;/strong&gt; Como a gente comunicaria? Você consegue visualizar o anúncio? Como isso se encaixa no quadro maior do roadmap? Dúvida ou preocupação nessa área? &lt;strong&gt;Questiona, pergunta, dá um push back.&lt;/strong&gt; Se você não consegue escrever o anúncio em duas frases, o escopo provavelmente ainda tá bagunçado.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nosso caso:&lt;/strong&gt; e se o membro não tiver avatar? E se a busca vier vazia? E se caírem 50 mil membros de uma vez? Anota tudo isso ANTES de codar.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4. Execute
&lt;/h2&gt;

&lt;p&gt;A fase mais curta de descrever e a mais longa de viver. O padrão é um só, e é simples.&lt;/p&gt;

&lt;p&gt;Faça o trabalho com precisão, com cuidado, com senso de urgência e com calma. Não faça nada pela metade. E ó, urgência aqui não é pressa afobada não: é não deixar o problema esperando por você, sem sacrificar o cuidado no caminho.&lt;/p&gt;

&lt;p&gt;E tem um teste antes de dar merge, o meu favorito:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Eu tenho orgulho disso?&lt;br&gt;
Eu mostraria isso pro John Carmack (o lendário programador do Doom e Quake) e falaria: "foi isso que eu construí, com essas restrições, com esses tradeoffs"?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Se a resposta for não, sinto muito, mas ainda não terminou.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nosso caso:&lt;/strong&gt; boto o índice, reescrevo a query zoada, testo local. Caiu de 8s pra 120ms. Tenho orgulho disso? Tenho.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  5. Verifique (em produção)
&lt;/h2&gt;

&lt;p&gt;Terminar de codar NÃO é terminar. Terminar é o problema resolvido, rodando, no ar. Anota isso.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testa na mão.&lt;/strong&gt; Sim, existem testes automatizados. Mas Daniel, se eu tenho teste automatizado, pra quê testar na mão? Porque teste passa e feature quebra, meu amigo. São coisas diferentes. Em 99% dos casos você consegue confirmar na unha que o que construiu funciona: rodando você mesmo, pedindo pra um agente percorrer os cenários, cutucando os dados antes e depois, tirando screenshots, gravando uma demo. Você tem &lt;em&gt;certeza&lt;/em&gt; que resolveu o problema? Roda o fluxo inteiro como se fosse o usuário: cria a conta, dispara a ação, confere o resultado no banco.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Garanta que chegou em produção e funciona lá.&lt;/strong&gt; Tá deployado? O deploy quebrou? Precisa ativar alguma feature flag? A flag funciona mesmo? Dá pra usar em produção? Você consegue confirmar que tá de fato no ar? "Mergeou" não é "shipou", tá ligado? Abre a produção e usa a feature você mesmo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nosso caso:&lt;/strong&gt; subo pra produção, abro EU MESMO e busco "daniel". Os 8s viraram instantâneo de verdade, com dado real, não só no meu localhost feliz.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  6. Comunique
&lt;/h2&gt;

&lt;p&gt;Código que ninguém sabe que existe gera bug que ninguém sabe explicar. Comunicação é parte do trabalho, não é um extra que você faz se sobrar tempo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Seus colegas precisam saber?&lt;/strong&gt; É uma feature nova que todo mundo deveria testar? Uma convenção nova no código? Uma coisa traiçoeira que todos precisam conhecer? Avisa. Não subestima a visão periférica do time: saber que a pessoa X mudou ontem o comportamento de como Z funciona pode economizar TRÊS HORAS de debug da pessoa Y amanhã. Mudou como o cache de sessão funciona? Uma mensagenzinha no canal do time hoje vale três horas de debug de outra pessoa amanhã. É de graça, faz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Os clientes precisam saber?&lt;/strong&gt; Quem reportou o bug? Quem tá bloqueado esperando isso? Avisa essas pessoas. Responde a thread de quem abriu a issue: "saiu na versão de hoje, pode testar aí".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O mundo precisa saber?&lt;/strong&gt; Anuncia que saiu. Changelog, post no canal de announcements, tweet, o formato que fizer sentido pro tamanho da mudança.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nosso caso:&lt;/strong&gt; mando no canal do time: "a busca de membros tava 8s, agora tá instantânea, quem reclamou pode testar". E respondo a thread de quem abriu a issue.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  7. Acompanhe
&lt;/h2&gt;

&lt;p&gt;Ownership não termina no deploy. Termina quando NINGUÉM mais precisa pensar naquilo, você incluso.&lt;/p&gt;

&lt;p&gt;Tem follow-ups? Você precisa dar uma olhada nos logs pra ver como tá aquilo que shipou? Uma semana depois, quem sabe? Agenda um lembrete: "conferir a taxa de erro do endpoint novo na sexta". O ciclo só fecha de verdade quando você tem certeza que o problema ficou resolvido e &lt;strong&gt;continuou&lt;/strong&gt; resolvido.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nosso caso:&lt;/strong&gt; sexta que vem eu volto no log pra confirmar que a busca continuou rápida mesmo com a base crescendo. Aí sim o ciclo fechou.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  É muita coisa. E olha que ainda tem mais.
&lt;/h2&gt;

&lt;p&gt;Sim, é muita coisa, eu sei. E na real ainda tem mais, porque com certeza a gente esqueceu algum item aqui no meio.&lt;/p&gt;

&lt;p&gt;Mas mano, é assim que se constrói produto em time pequeno. A gente não tem PM, não tem departamento de QA pra passar a bola. Somos pequenos, mas somos bons, e a gente dá conta dessa porra toda.&lt;/p&gt;

&lt;p&gt;E ó, é SEMPRE ok pedir ajuda. É ok fazer pergunta. É ok refazer e conferir três vezes. &lt;strong&gt;O que não é ok é assumir, lá no fundo sem falar pra ninguém, que outra pessoa vai fazer as coisas que você não pensou.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Da comunidade para a comunidade.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Bebe água, me segue nas redes sociais e a gente se vê no próximo artigo!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>beginners</category>
      <category>braziliandevs</category>
      <category>career</category>
    </item>
    <item>
      <title>De 6 horas para 40 segundos: como um índice de banco de dados salvou um job crítico de produção</title>
      <dc:creator>Fernando Andrade</dc:creator>
      <pubDate>Sat, 06 Jun 2026 20:19:13 +0000</pubDate>
      <link>https://dev.to/he4rt/de-6-horas-para-40-segundos-como-um-indice-de-banco-de-dados-salvou-um-job-critico-de-producao-c90</link>
      <guid>https://dev.to/he4rt/de-6-horas-para-40-segundos-como-um-indice-de-banco-de-dados-salvou-um-job-critico-de-producao-c90</guid>
      <description>&lt;h1&gt;
  
  
  De 6 horas para 40 segundos: como um índice de banco de dados salvou um job crítico de produção
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Às vezes, a solução mais elegante não está no código está em ensinar o banco de dados a encontrar o que ele já tem."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Índice
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;O cenário: um job noturno que virou um problema diurno&lt;/li&gt;
&lt;li&gt;O problema cresceu junto com a tabela&lt;/li&gt;
&lt;li&gt;O diagnóstico: o Azure Application Insights apontou o caminho&lt;/li&gt;
&lt;li&gt;A solução: um índice bem posicionado&lt;/li&gt;
&lt;li&gt;O impacto real: economia de tempo total por dia&lt;/li&gt;
&lt;li&gt;Mas afinal: o que é um índice de banco de dados?&lt;/li&gt;
&lt;li&gt;Como identificar quando você precisa de um índice&lt;/li&gt;
&lt;li&gt;Anatomia do índice que resolveu o problema&lt;/li&gt;
&lt;li&gt;Conclusão&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  O cenário: um job noturno que virou um problema diurno
&lt;/h2&gt;

&lt;p&gt;Todo sistema que lida com monitoramento contínuo eventualmente enfrenta o mesmo desafio: &lt;strong&gt;quanto mais dados acumulam, mais lenta fica a análise&lt;/strong&gt;. Foi exatamente isso que aconteceu em um projeto no qual trabalhei.&lt;/p&gt;

&lt;p&gt;A arquitetura era simples na teoria: um job agendado rodava durante a madrugada, disparando &lt;strong&gt;N processos paralelos&lt;/strong&gt; cada um cadastrado individualmente pelo cliente. A lógica de cada processo era fazer uma comparação entre o resultado do dia atual (&lt;strong&gt;D+0&lt;/strong&gt;) com o resultado do dia anterior (&lt;strong&gt;D-1&lt;/strong&gt;), algo como:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"O que mudou desde ontem?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Para isso, cada processo precisava buscar &lt;strong&gt;seu último resultado registrado&lt;/strong&gt;, usando uma query com &lt;code&gt;ORDER BY last_execution DESC&lt;/code&gt; filtrada pelo identificador do processo. Parece trivial. E durante um bom tempo, foi.&lt;/p&gt;

&lt;h2&gt;
  
  
  O problema cresceu junto com a tabela
&lt;/h2&gt;

&lt;p&gt;Com o tempo, a tabela de resultados foi crescendo naturalmente, afinal, cada processo registra um novo resultado a cada execução. O que antes demorava milissegundos começou a demorar segundos. Depois, dezenas de segundos. Até que um dia percebemos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A janela de execução do job, que deveria ser de até 4 horas, estava chegando a 12 horas.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Isso significava que um job que deveria terminar antes do horário comercial estava ainda em execução quando os usuários começavam a trabalhar de manhã, gerando inconsistências, bloqueios e reclamações.&lt;/p&gt;

&lt;p&gt;A pergunta era: &lt;strong&gt;onde estava o gargalo?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O diagnóstico: o Azure Application Insights apontou o caminho
&lt;/h2&gt;

&lt;p&gt;Ao analisar as métricas de performance no &lt;strong&gt;Azure Application Insights&lt;/strong&gt;, ficou evidente que o problema estava concentrado em uma única operação: a query que buscava o último resultado de cada processo.&lt;/p&gt;

&lt;p&gt;Internamente, a tabela de resultados tinha crescido o suficiente para que um &lt;code&gt;ORDER BY last_execution DESC&lt;/code&gt; &lt;strong&gt;sem suporte de índice&lt;/strong&gt; forçasse o banco a fazer um &lt;strong&gt;full scan&lt;/strong&gt;, ou seja, varrer linha por linha até encontrar o registro mais recente. Multiplique isso por dezenas (ou centenas) de processos rodando em paralelo e você tem uma receita para o caos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Antes da correção
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1 linha(s) recuperada(s) — 1.754s, em 2025-08-11 às 09:19:01
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quase &lt;strong&gt;2 segundos por consulta&lt;/strong&gt;. Para um único processo, tolerável. Para N processos simultâneos, catastrófico.&lt;/p&gt;

&lt;h2&gt;
  
  
  A solução: um índice bem posicionado
&lt;/h2&gt;

&lt;p&gt;A correção foi aplicar um índice composto na tabela de resultados, cobrindo exatamente os campos usados na query crítica:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;INDEX&lt;/span&gt; &lt;span class="n"&gt;idx_job_result_process_date&lt;/span&gt;
  &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;app_schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;job_results&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fk_process_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;date_created&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;INCLUDE&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;final_result&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;report_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;result_payload&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse índice foi criado diretamente no ambiente de produção (pode ser gerado localmente também, dependendo da política da equipe) e o resultado foi imediato.&lt;/p&gt;

&lt;h3&gt;
  
  
  Depois da correção
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1 linha(s) recuperada(s) — 0.003s, em 2025-08-11 às 09:32:00
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;De &lt;strong&gt;1,754 segundos&lt;/strong&gt; para &lt;strong&gt;0,003 segundos&lt;/strong&gt; por consulta. Uma redução de &lt;strong&gt;99,8%&lt;/strong&gt; no tempo de resposta.&lt;/p&gt;

&lt;h2&gt;
  
  
  O impacto real: economia de tempo total por dia
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cenário&lt;/th&gt;
&lt;th&gt;Tempo acumulado de processamento/dia&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;❌ Antes do índice&lt;/td&gt;
&lt;td&gt;~6 horas e 18 minutos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅ Depois do índice&lt;/td&gt;
&lt;td&gt;~40 segundos&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;O job voltou a terminar bem antes do horário comercial. Os processos diurnos pararam de ser impactados. E tudo isso sem reescrever uma linha de código de negócio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mas afinal: o que é um índice de banco de dados?
&lt;/h2&gt;

&lt;p&gt;Se você chegou até aqui e nunca parou para entender o que um índice faz de verdade, esse é o momento.&lt;/p&gt;

&lt;h3&gt;
  
  
  A analogia do livro
&lt;/h3&gt;

&lt;p&gt;Imagine que você tem um livro enciclopédico com 10.000 páginas e precisa encontrar tudo que fala sobre "fotossíntese". Você tem duas opções:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Sem índice:&lt;/strong&gt; Ler página por página do início ao fim. Funciona, mas demora.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Com índice:&lt;/strong&gt; Ir até o índice remissivo no final do livro, localizar "fotossíntese" em segundos e ir direto às páginas certas.
Um índice de banco de dados funciona exatamente assim. Ele é uma &lt;strong&gt;estrutura de dados separada&lt;/strong&gt; (geralmente uma B-Tree) que mantém uma cópia ordenada de uma ou mais colunas, com ponteiros para as linhas reais da tabela.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  O que um índice resolve?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Buscas por igualdade:&lt;/strong&gt; &lt;code&gt;WHERE id = 42&lt;/code&gt; o índice encontra o valor direto, sem varrer a tabela&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Buscas por intervalo:&lt;/strong&gt; &lt;code&gt;WHERE date_created BETWEEN '2025-01-01' AND '2025-12-31'&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ordenação:&lt;/strong&gt; &lt;code&gt;ORDER BY last_execution DESC&lt;/code&gt; se o índice já estiver ordenado nessa direção, o banco nem precisa ordenar&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Queries cobertas (covering index):&lt;/strong&gt; Com a cláusula &lt;code&gt;INCLUDE&lt;/code&gt;, o banco pode responder à query inteira só pelo índice, sem nem tocar na tabela original
### O que um índice &lt;em&gt;não&lt;/em&gt; é (e quando ele atrapalha)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Índice não é gratuito. Ele tem custos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Espaço em disco:&lt;/strong&gt; o índice ocupa armazenamento adicional&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custo de escrita:&lt;/strong&gt; toda vez que um &lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt; ou &lt;code&gt;DELETE&lt;/code&gt; acontece, os índices afetados também precisam ser atualizados&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manutenção:&lt;/strong&gt; índices fragmentados precisam ser reorganizados periodicamente
Por isso, criar índices sem critério pode ser tão prejudicial quanto não tê-los. A regra de ouro é:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Crie índices nas colunas que aparecem frequentemente em cláusulas &lt;code&gt;WHERE&lt;/code&gt;, &lt;code&gt;JOIN&lt;/code&gt;, &lt;code&gt;ORDER BY&lt;/code&gt; e &lt;code&gt;GROUP BY&lt;/code&gt; de queries lentas, especialmente em tabelas grandes.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Como identificar quando você precisa de um índice
&lt;/h2&gt;

&lt;p&gt;Alguns sinais de alerta:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Queries que demoram mais conforme a tabela cresce&lt;/strong&gt; (como o nosso caso)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full table scans&lt;/strong&gt; aparecendo nos planos de execução (&lt;code&gt;EXPLAIN&lt;/code&gt; / &lt;code&gt;Query Execution Plan&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Timeouts em operações que antes eram rápidas&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CPU do banco de dados consistentemente alta&lt;/strong&gt; durante períodos de consulta
Ferramentas como o &lt;strong&gt;Azure Application Insights&lt;/strong&gt;, &lt;strong&gt;pg_stat_statements&lt;/strong&gt; (PostgreSQL), &lt;strong&gt;slow query log&lt;/strong&gt; (MySQL) e o &lt;strong&gt;Query Store&lt;/strong&gt; (SQL Server) são aliadas valiosas nesse diagnóstico.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Anatomia do índice que resolveu o problema
&lt;/h2&gt;

&lt;p&gt;Voltando ao índice criado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;INDEX&lt;/span&gt; &lt;span class="n"&gt;idx_job_result_process_date&lt;/span&gt;
  &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;app_schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;job_results&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fk_process_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;date_created&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;INCLUDE&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;final_result&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;report_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;result_payload&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Por que esse design?&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Componente&lt;/th&gt;
&lt;th&gt;Motivo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fk_process_id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filtro principal da query (cada processo tem seu identificador)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;date_created DESC&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A query precisa do resultado mais recente primeiro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;INCLUDE (...)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Colunas retornadas pela query, incluí-las evita um segundo acesso à tabela&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;O resultado é um &lt;strong&gt;covering index&lt;/strong&gt;: o banco responde à query inteira consultando apenas o índice, sem precisar buscar dados na tabela principal. É a forma mais eficiente de otimização de leitura possível.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Performance não é só sobre algoritmos ou arquitetura de microsserviços. Às vezes, o gargalo está numa operação aparentemente simples que o banco de dados precisa executar milhares de vezes por dia, e que ninguém percebe até que o custo acumulado se torne um problema real.&lt;/p&gt;

&lt;p&gt;Nesse caso, &lt;strong&gt;um único índice bem pensado&lt;/strong&gt; transformou 6 horas de processamento em 40 segundos. Sem refatoração. Sem mudança de arquitetura. Sem downtime.&lt;/p&gt;

&lt;p&gt;Se você ainda não tem o hábito de revisar os planos de execução das suas queries críticas, comece agora. O banco de dados tem muito a te contar, basta saber ouvir.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sugestões de leitura para se aprofundar: B-Tree indexes, covering indexes, query execution plans, índices compostos e ferramentas de profiling como EXPLAIN ANALYZE.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>braziliandevs</category>
      <category>performance</category>
      <category>career</category>
    </item>
  </channel>
</rss>
