Eu não me chamaria de desenvolvedor superstar, mas relativamente experiente. Eu tento manter a qualidade do código em um nível alto e estou sempre buscando fazer melhorias no meu estilo de codificação, tentando torná-lo eficiente, legível e consistente, além de incentivar a equipe a seguir padrões e metodologias para garantir a consistência. Também entendo a necessidade de equilíbrio entre qualidade e velocidade.
Para conseguir isso, apresentei à minha equipe o conceito de revisão por pares. Dois polegares para cima no pedido de pull do github para uma mesclagem. Ótimo - mas não na minha opinião sem soluços.
Costumo ver comentários de revisão por pares dos mesmos colegas como -
- Seria bom adicionar um espaço depois
<INSERT SOMETHING HERE>
- Linha extra indesejada entre métodos
- O ponto final deve ser usado no final dos comentários nos docblocks.
Agora, da minha perspectiva - o revisor está analisando superficialmente a estética do código - e não está realmente realizando uma revisão do código. A revisão do código cosmético me parece uma mentalidade arrogante / elitista. Falta substância, mas você não pode discutir muito com isso porque o revisor está tecnicamente correto . Preferiria ver menos dos tipos acima de comentários e mais comentários da seguinte forma:
- Você pode reduzir a complexidade ciclomática ...
- Sair cedo e evitar if / else
- Abstraia sua consulta ao banco de dados em um repositório
- Essa lógica realmente não pertence aqui
- Não se repita - resumo e reutilização
- O que aconteceria se
X
fosse passado como argumento para o métodoY
? - Onde está o teste de unidade para isso?
Acho que são sempre os mesmos tipos de pessoas que dão os tipos cosméticos de revisões e os mesmos tipos de pessoas que, na minha opinião, fazem as revisões por pares "baseadas na Qualidade e na Lógica".
Qual (se houver) é a abordagem correta para a revisão por pares. E estou correto ao ficar frustrado com as mesmas pessoas, basicamente vasculhando o código procurando erros de ortografia e defeitos estéticos, em vez de defeitos reais do código?
Se eu estiver correto - como eu encorajaria os colegas a realmente procurar falhas no código em equilíbrio com a sugestão de retoques cosméticos?
Se eu estiver incorreto - por favor, me esclareça. Existem regras práticas para o que realmente constitui uma boa revisão de código? Perdi o objetivo do que são as revisões de código?
Da minha perspectiva - a revisão do código é sobre responsabilidade compartilhada pelo código. Eu não me sentiria confortável dando o polegar para cima sem codificar / verificar a lógica, a legibilidade e a funcionalidade. Eu também não me incomodaria em bloquear uma mesclagem de um pedaço sólido de código se percebesse que alguém havia omitido um ponto final em um bloco de documentos.
Ao revisar o código, gasto talvez entre 15 e 45 minutos por 500 Loc. Não consigo imaginar essas revisões superficiais levando mais de 10 minutos, se essa é a profundidade da revisão que elas estão executando. Além disso, qual é o valor do polegar para cima do revisor superficial? Certamente, isso significa que todos os polegares não têm o mesmo peso e é necessário que haja um processo de revisão em duas passagens. Um polegar para análises profundas e um segundo polegar para o "polimento"?