<?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: Wagner Cardoso</title>
    <description>The latest articles on DEV Community by Wagner Cardoso (@wcardosos).</description>
    <link>https://dev.to/wcardosos</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F793331%2F46263cef-ebd0-4c93-9710-07a63a8c8927.png</url>
      <title>DEV Community: Wagner Cardoso</title>
      <link>https://dev.to/wcardosos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wcardosos"/>
    <language>en</language>
    <item>
      <title>Dicas para uma descrição de PR melhor</title>
      <dc:creator>Wagner Cardoso</dc:creator>
      <pubDate>Fri, 29 Apr 2022 00:06:03 +0000</pubDate>
      <link>https://dev.to/wcardosos/dicas-para-uma-descricao-de-pr-melhor-5b3n</link>
      <guid>https://dev.to/wcardosos/dicas-para-uma-descricao-de-pr-melhor-5b3n</guid>
      <description>&lt;p&gt;Fala meu povo! Virei dev blogueiro e espero agregar conhecimento e ajudar vocês de alguma forma. Neste primeiro post decidi falar sobre uma parte essencial do desenvolvimento e que nem sempre é dada a devida atenção: pull requests. Irei falar um pouco sobre minhas percepções e dar algumas dicas que acho relevantes para facilitar a revisão dos seus colegas de time.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é uma &lt;em&gt;Pull Request&lt;/em&gt; ?
&lt;/h2&gt;

&lt;p&gt;Segundo a &lt;a href="https://docs.github.com/pt/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests"&gt;documentação do GitHub&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As pull requests permitem que você informe outras pessoas sobre as alterações das quais você fez push para um branch em um repositório.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Basicamente nós usamos os queridos PR's para adicionarmos uma nova feature ou correção ao código do sistema que estamos trabalhando. &lt;/p&gt;

&lt;p&gt;Nossos colegas analisam as alterações que queremos adicionar e podem aprovar ou não de acordo com seu julgamento. Muitas vezes nossos colegas não tiveram contato com a tarefa durante o desenvolvimento dela e chegam para revisar nosso código sem ter o background necessário para apenas dar o approve e seguir a vida.&lt;/p&gt;

&lt;p&gt;Para isso, podemos deixar o texto do nosso PR rico o suficiente para a pessoa que estiver revisando tenha um entendimento melhor da tarefa. A seguir, vou dar algumas dicas de como facilitar o entendimento do seu trabalho em um PR.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que fazer para melhorar o texto do seu PR
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Nunca deixe a descrição vazia
&lt;/h3&gt;

&lt;p&gt;Nada pior do que abrir o PR que você precisa revisar e ele estar sem descrição alguma. Ler o código de alguém nem sempre é uma tarefa fácil, e não termos nenhum contexto sobre o problema dificulta ainda mais. Então, nunca se esqueça: &lt;strong&gt;PR sem descrição JAMAIS!&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Explique o contexto
&lt;/h3&gt;

&lt;p&gt;Essa talvez seja a parte mais importante do PR. Aqui você vai explicar o motivo da tarefa existir, quais as características do problema e como você chegou na resolução. Quem estiver revisando deve sair deste tópico com um entendimento geral do problema, o que irá facilitar muito no momento de revisar o código. Com esse contexto geral do problema, o reviewer poderá pensar em possibilidades de melhoria e conseguir enxergar melhor problemas no seu código.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resuma seu desenvolvimento
&lt;/h3&gt;

&lt;p&gt;Aqui iremos dar uma passada nas alterações feitas, resumindo em palavras o código que escrevemos. Isso dá ao reviewer uma ideia geral do seu pensamento para resolver a tarefa e já possibilita a identificação de problemas com a sua abordagem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Diga qual é o objetivo do desenvolvimento
&lt;/h3&gt;

&lt;p&gt;Nem sempre o objetivo principal fica claro apenas com o contexto da tarefa e o resumo do desenvolvimento. Deixe bem explícito o objetivo do PR, que servirá como norte ao reviewer irá testar a feature/correção logo depois.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dê instruções de como testar
&lt;/h3&gt;

&lt;p&gt;Às vezes trabalhamos em sistemas complexos, onde simplesmente subir uma versão local é uma tarefa árdua. Em outros casos, nossa tarefa pode se comunicar com vários projetos diferentes, o que dificulta ainda mais o processo de testagem do PR. Para contornar o problema, dê instruções claras de como deixar o ambiente pronto para rodar os testes necessários. Qualquer informação relevante para o teste em si deve ser informado aqui.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deixe observações
&lt;/h3&gt;

&lt;p&gt;Às vezes nosso PR possui um detalhe tão específico que vale a pena o reviewer saber. Aqui nós colocamos avisos, alguma ação necessária, etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  Coloque os links necessários
&lt;/h3&gt;

&lt;p&gt;Algo que pode ajudar e muito o reviewer é compilar os links necessários para ele não precisar perder tempo procurando os locais que são dependência para o teste.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exemplo de descrição de um PR
&lt;/h2&gt;

&lt;p&gt;Pense na seguinte situação: é preciso alterar o payload que chega numa fila do SQS para que a lambda que consome a fila seja executada corretamente.&lt;/p&gt;

&lt;p&gt;Tendo este cenário em vista, um exemplo de descrição de PR com as dicas dadas anteriormente é:&lt;/p&gt;

&lt;h3&gt;
  
  
  Exemplo
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Contexto:&lt;/strong&gt; após o desenvolvimento do endpoint que processa os agendamentos da clínica, foi constatado que o endpoint está enviando o payload incompleto, faltando a informação de endereço do paciente. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desenvolvimento:&lt;/strong&gt; a informação de endereço foi adicionada ao payload da fila que é enviado no controller de agendamento.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objetivo:&lt;/strong&gt; o payload deve chegar correto na fila e a lambda processar corretamente o agendamento.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como testar:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;publicar o ambiente de homologação do servidor com a branch do PR;&lt;/li&gt;
&lt;li&gt;chamar o endpoint de agendamentos (/schedules);&lt;/li&gt;
&lt;li&gt;verificar se o payload chegou corretamente na fila;&lt;/li&gt;
&lt;li&gt;verificar se a lambda processou corretamente o agendamento;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Observações:&lt;/strong&gt; caso dê algum erro ao publicar, basta publicar a branch main e depois a branch da issue. Temos uma trava que impossibilita a publicação de branches que não a main para a partir de branches diferentes da main. Isso evita possíveis problemas com o ambiente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links úteis:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;documentação de publicação no ambiente de homologação (informa link);&lt;/li&gt;
&lt;li&gt;fila SQS para verificação do payload (informa link);&lt;/li&gt;
&lt;li&gt;lambda que processa as mensagens da fila SQS (informa link);&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Considerações finais
&lt;/h2&gt;

&lt;p&gt;Normalmente escrevemos código para outras pessoas lerem e usarem. Nos preocupamos com o entendimento delas em relação ao que desenvolvemos. Este mesmo pensamento deve ser colocado em prática ao criarmos um PR. Devemos nos preocupar com o reviewer do nosso PR, pois quanto mais informações e auxílios darmos, melhor será sua revisão e consequentemente melhor nosso código irá ficar, mais iremos aprender e mais valor será agregado à empresa.&lt;/p&gt;

&lt;p&gt;Cada time de desenvolvimento possui suas características, regras e conjunto de boas práticas, porém essas dicas podem ajudar muito no seu dia-a-dia de trabalho.&lt;/p&gt;

&lt;p&gt;É isso meu povo. Este foi meu primeiro post e fico muito feliz de você ter lido até o final. Paz e sucesso pra ti!&lt;/p&gt;

</description>
      <category>brasil</category>
      <category>git</category>
      <category>dica</category>
    </item>
  </channel>
</rss>
