Como tornar melhores as boas revisões de código

Tenho feito revisões de código no dia a dia há mais de uma década.

Os benefícios das revisões de código são muitos: alguém verifica se há erros em seu trabalho, eles aprendem com sua solução e a colaboração ajuda a melhorar a abordagem geral da organização para ferramentas e automação. Se você não estiver fazendo revisões de código em…

 

Tenho feito revisões de código no dia a dia há mais de uma década. Os benefícios das revisões de código são muitos: alguém verifica se há erros em seu trabalho, eles aprendem com sua solução e a colaboração ajuda a melhorar a abordagem geral da organização para ferramentas e automação. Se você não está fazendo revisões de código em sua organização, comece agora. Isso tornará todo mundo um engenheiro melhor.

 

Muitas pessoas e organizações compartilharam suas melhores práticas de revisão de código e o que a definição de boas revisões de código significa para eles. Guias do Google , a equipe SmartBear e o engenheiro Philipp Hauersão todas leituras excelentes. Abaixo está minha opinião pessoal sobre como são as boas revisões de código e como torná-las ainda melhores no nível de equipe e organizacional. Isso está no contexto do ambiente de tecnologia em que tenho trabalhado - atualmente no Uber, e antes disso no Skype / Microsoft e Skyscanner.

 

Boas revisões de código são a barreira pela qual todos nós devemos nos esforçar. Eles abrangem práticas recomendadas comuns e fáceis de seguir que qualquer equipe pode começar, ao mesmo tempo que garantem avaliações úteis e de alta qualidade em longo prazo.

 

Melhores revisões de códigoé onde os engenheiros continuam melhorando a forma como fazem revisões de código. Essas revisões de código examinam a alteração do código no contexto da base de código, de quem está solicitando e em que situação. Essas revisões ajustam sua abordagem com base no contexto e na situação. O objetivo não é apenas uma revisão de alta qualidade, mas também ajudar os desenvolvedores e equipes que solicitam a revisão a serem mais produtivos.

 

 

Áreas cobertas pela revisão do código

 

Boas revisões de código examinam a mudança em si e como ela se encaixa na base de código. Eles examinarão a clareza do título e da descrição e o “porquê” da mudança . Eles cobrem a exatidão do código, cobertura de teste, alterações de funcionalidade e confirmam que seguem os guias de codificação e as práticas recomendadas. Eles apontarão melhorias óbvias, como código difícil de entender, nomes pouco claros, código comentado, código não testado ou casos extremos não tratados. Eles também notarão quando muitas alterações são agrupadas em uma revisão e sugerem manter as alterações de código com um único propósito ou dividir a alteração em partes mais focadas.

 

Melhores revisões de códigoobserve a mudança no contexto do sistema maior, bem como verifique se as mudanças são fáceis de manter. Eles podem fazer perguntas sobre a necessidade da mudança ou como ela afeta outras partes do sistema. Eles examinam as abstrações introduzidas e como elas se encaixam na arquitetura de software existente. Eles observam observações de manutenção, como lógica complexa que pode ser simplificada, melhorando a estrutura de teste, removendo duplicações e outras melhorias possíveis. O engenheiro Joel Kemp descreve ótimas revisões de código como uma passagem contextual após uma passagem inicial leve .

 

Tom da revisão

 

O tom das revisões de código pode influenciar muito o moral das equipes. Críticas com tom áspero contribuem para a sensação de ambiente hostil com suas microagressões. A linguagem opinativa pode deixar as pessoas na defensiva, gerando discussões acaloradas. Ao mesmo tempo, um tom profissional e positivo pode contribuir para um ambiente mais inclusivo. As pessoas nesses ambientes estão abertas a feedback construtivo e as revisões de código podem, em vez disso, desencadear discussões saudáveis ​​e animadas.

 

Boas revisões de códigofaça perguntas abertas em vez de fazer declarações fortes ou opinativas. Eles oferecem alternativas e possíveis soluções alternativas que podem funcionar melhor para a situação, sem insistir que essas soluções são a melhor ou a única maneira de proceder. Essas revisões assumem que o revisor pode estar faltando alguma coisa e pedem esclarecimentos em vez de correção.

 

Melhores revisões de código também são empáticas. Eles sabem que a pessoa que está escrevendo o código gastou muito tempo e esforço nessa mudança. Essas revisões de código são gentis e despretensiosas. Eles aplaudem boas soluções e são totalmente positivos.

 

Aprovando vs. Solicitando Mudanças

 

Depois que um revisor conclui sua revisão, ele pode marcá-la como aprovada, bloquear a revisão com solicitações de mudança ou não definir um status específico, deixando-a em um estado "ainda não aprovado". A maneira como os revisores usam os status de aprovação e solicitação de mudanças informa sobre as revisões de código.

 

Boas revisões de código não aprovam alterações enquanto houver perguntas abertas. No entanto, eles deixam claro quais perguntas ou comentários não são bloqueadores ou não são importantes, marcando-os de forma distinta. Eles são explícitos ao aprovar uma alteração - por exemplo, adicionar um comentário positivo como “parece bom!”. Alguns lugares usam siglas como LGTM—Estes também funcionam, mas esteja ciente de que os recém-chegados podem interpretar erroneamente esses acrônimos internos por outra coisa. Boas revisões de código são igualmente explícitas quando solicitam um acompanhamento, usando a ferramenta de revisão de código ou convenção de equipe para comunicar isso.

 

Melhores revisões de código são firmes no princípio, mas flexíveis na prática: às vezes, certos comentários são tratados pelo autor com uma alteração de código de acompanhamento separada. Para alterações mais urgentes do que outras, os revisores tentam se disponibilizar para revisões mais rápidas.

 

 

De revisões de código a conversas entre si

 

As revisões de código geralmente são feitas de forma assíncrona e por escrito por meio de uma ferramenta de revisão de código. Isso geralmente ocorre por conveniência, para permitir revisões remotas de código e permitir que várias pessoas revisem a mesma alteração de código. Mas quando é a hora de parar de usar a ferramenta - por melhor que seja - e começar a falar cara a cara sobre o código?

 

Boas revisões de código deixam quantos comentários e perguntas forem necessários. Se a revisão não abordar todos eles, eles também os notarão. Quando a conversa entra em um longo vai e vem, os revisores tentarão falar com o autor pessoalmente em vez de gastar mais tempo usando a ferramenta de revisão de código.

 

Melhores revisões de códigoentrará em contato proativamente com a pessoa que está fazendo a alteração depois que ela fizer uma primeira passagem no código e tiver muitos comentários e perguntas. Essas pessoas aprenderam que, dessa forma, economizam muito tempo, mal-entendidos e ressentimentos. O fato de haver muitos comentários no código indica que provavelmente existe algum mal-entendido de ambos os lados. Esses tipos de mal-entendidos são identificados e resolvidos com mais facilidade conversando sobre as coisas.

 

Nitpicks

 

Nitpicks são comentários sem importância, em que o código poderia ser mesclado sem nem mesmo abordá-los. Podem ser coisas como declarações de variáveis ​​em ordem alfabética, testes de unidade seguindo uma certa estrutura ou colchetes na mesma linha.

 

Boas revisões de código deixam claro quando as mudanças são insignificantes sem importância. Eles geralmente marcam comentários como esses de maneira distinta, adicionando o prefixo “nit:” a eles. Muitos deles podem se tornar frustrantes e desviar a atenção das partes mais importantes da revisão, portanto, os revisores buscam não exagerar.

 

Melhores revisões de códigoperceber que muitos detalhes são um sinal de falta de ferramentas ou de falta de padrões. Os revisores que se deparam com isso com frequência examinarão a solução desse problema fora do processo de revisão de código. Por exemplo, muitos dos comentários críticos comuns podem ser resolvidos por meio de linting automático. Aqueles que não podem geralmente podem ser resolvidos pela equipe concordando com certos padrões e seguindo-os - talvez até automatizando-os, eventualmente.

 

 

Críticas de código para novos marceneiros

 

Começar em uma nova empresa é opressor para a maioria das pessoas. A base de código é nova, o estilo de programação é diferente do anterior e as pessoas revisam seu código de maneira muito diferente. Portanto, as revisões de código devem ser mais suaves para os iniciantes, para acostumá-los ao novo ambiente, ou devem manter a fasquia tão alta quanto para todos os outros?

 

Boas revisões de código usam a mesma barra de qualidade e abordagem para todos, independentemente de seu cargo, nível ou quando ingressaram na empresa. Seguindo o acima, as revisões de código têm um tom gentil, solicitam alterações quando necessário e entram em contato com os revisores quando eles têm muitos comentários.

 

Melhores revisões de códigopreste atenção adicional para fazer das primeiras avaliações para novos marceneiros uma ótima experiência. Os revisores demonstram empatia pelo fato de que o marcador recente pode não estar ciente de todas as diretrizes de codificação e pode não estar familiarizado com partes do código. Essas revisões colocam um esforço adicional em explicar abordagens alternativas e apontar guias. Eles também têm um tom muito positivo, celebrando as primeiras mudanças na base de código que o autor está sugerindo.

 

Revisões entre escritórios e fusos horários diferentes

 

As revisões de código ficam mais difíceis quando os revisores não estão no mesmo local. Eles são especialmente desafiadores quando os revisores estão em fusos horários muito diferentes. Tive meu quinhão dessas análises ao longo dos anos, modificando códigos pertencentes a equipes nos Estados Unidos e na Ásia, enquanto estava baseado na Europa.

 

Boas revisões de código consideram a diferença de fuso horário quando podem. Os revisores têm como objetivo revisar o código nas horas de trabalho sobrepostas entre os escritórios. Para avaliações com muitos comentários, os revisores se oferecerão para bater um papo diretamente ou fazer uma videochamada para falar sobre as mudanças.

 

Melhores revisões de códigoobserve quando as revisões de código repetidamente ocorrem em problemas de fuso horário e procure uma solução sistêmica, fora da estrutura de revisão de código. Digamos que uma equipe da Europa mude com frequência um serviço que aciona revisões de código do proprietário americano deste serviço. A questão em nível de sistema é por que essas mudanças estão acontecendo com tanta frequência. As alterações são feitas na base de código correta ou outro sistema deve ser alterado? A frequência das mudanças será a mesma ou diminuirá com o tempo? Supondo que as alterações sejam feitas na base de código correta e a frequência não diminua, a dependência entre escritórios pode ser quebrada de alguma forma? Soluções para esses tipos de problemas geralmente não são simples e podem envolver refatoração, criação de novos serviços / interfaces ou melhorias de ferramentas.

 

 

Suporte Organizacional

 

A forma como as empresas e suas organizações de engenharia abordam as revisões de código é um grande elemento de quão eficientes podem ser. Organizações que os vêem como sem importância e triviais acabam investindo pouco para facilitar as revisões. Em culturas como essa, pode ser tentador simplesmente acabar totalmente com as revisões de código. Os engenheiros que defendem fazer melhores revisões de código podem se sentir isolados, sem o suporte de cima e, eventualmente, desistir. O resultado é uma organização onde os problemas continuam a se repetir e se agravar. 

 

Organizações com boas revisões de códigocertifique-se de que todos os engenheiros participem do processo de revisão do código - mesmo aqueles que podem estar trabalhando em projetos solo. Eles incentivam a elevação do padrão de qualidade e as equipes facilitam discussões saudáveis ​​sobre abordagens de revisão de código, tanto no nível da equipe quanto da organização. Essas empresas costumam ter guias de revisão de código para bases de código maiores que os engenheiros iniciaram e escreveram. Organizações como esta reconhecem que as revisões de código consomem uma boa parte do tempo dos engenheiros. Muitas dessas empresas adicionarão revisões de código como expectativas às competências do trabalho do desenvolvedor, esperando que os engenheiros seniores gastem uma grande parte de seu tempo revisando o código de outras pessoas.

 

Organizações com melhores revisões de códigotêm regras rígidas sobre nenhum código entrando em produção sem uma revisão de código - assim como as mudanças na lógica de negócios não chegam à produção sem testes automatizados. Essas organizações aprenderam que o custo de cortar custos não vale a pena; em vez disso, eles têm processos para revisões aceleradas para casos urgentes. Essas organizações investem na produtividade do desenvolvedor, inclusive trabalhando continuamente para desenvolver revisões de código e melhorias de ferramentas mais eficientes. Executivos de engenharia prestativos não precisam ser convencidos sobre os benefícios das revisões de código e outras práticas recomendadas de engenharia. Em vez disso, eles apoiam iniciativas sobre ferramentas melhores ou processos de revisão de código mais eficientes que vêm de equipes.  

 

Quando as pessoas encontram comentários que parecem hostis, eles sentem que podem falar e ter apoio total para resolver o problema. Os engenheiros e gerentes seniores consideram as revisões de código que não estão à altura da barra tão problemáticas quanto códigos desleixados ou comportamento inadequado. Os engenheiros e gerentes de engenharia se sentem capacitados para melhorar a forma como as revisões de código são feitas.

 

 

Comece com o bem, torne-o melhor

 

Boas revisões de código já requerem muito esforço. Eles fazem uma revisão completa da mudança em si, evitam ser opinativos com o tom dos comentários e deixam os detalhes claros. Eles mantêm uma barra consistente, independentemente de quem está solicitando a revisão e tentam tornar as revisões de fuso horário menos penosas prestando atenção adicional a elas. As organizações que têm boas análises garantem que cada desenvolvedor receba e faça análises de código regularmente. Isso já é um bar alto - mas se você chegar aqui, não pare. As revisões de código são uma das melhores maneiras de melhorar suas habilidades, orientar outras pessoas e aprender como ser um comunicador mais eficiente. 

 

Obtenha melhores análises de códigomelhorando continuamente os detalhes, mas também começando a olhar para as mudanças em um alto nível. Seja empático no tom dos comentários e pense em maneiras fora do processo de revisão de código para eliminar as críticas frequentes. Faça revisões de código especialmente acolhedoras para novos iniciantes e procure soluções sistêmicas para revisões dolorosas de fuso horário. As organizações que olham para o futuro incentivam o investimento em ferramentas e melhorias de processo para tornar as revisões de código melhores, colhendo mais benefícios.

 

 

O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.


Strong

5178 وبلاگ نوشته ها

نظرات