Na minha empresa, antes da entrega de qualquer projeto, meu chefe pede aos meus idosos que revisem os programas escritos por mim ou por outros membros da equipe ou, às vezes, o chefe também se senta conosco para revisão.
Eu acho que é uma boa maneira de obter conhecimento, mas às vezes, quando os programas estão funcionando bem, eles não funcionam da mesma maneira após a revisão e eu preciso examinar novamente o meu programa.
Eles afirmam que a revisão ajuda a otimizar a execução de programas e consultas, mas podemos preferir a otimização do que o funcionamento real do programa?
Respostas:
"Trabalhar bem" é realmente uma ótima métrica, mas se você é o único na equipe capaz de decifrar o que você escreveu e, portanto, mantê-lo, o código é quase inútil para a empresa a médio ou longo prazo.
Um bom código é pelo menos:
(Alguns desses requisitos são realmente sobrepostos, mas é bom considerar individualmente ...)
As revisões de código servem ao propósito além da parte "funcional", que pode ser feita através de testes automáticos.
Eu, pessoalmente, sei que é chato ter algo funcionando sendo destruído e ter que reconstruí-lo do zero. Mas, muitas vezes, isso ocorre devido a uma falta de comunicação do líder sênior / técnico. Portanto, se você acha que precisa reescrever com muita frequência, da próxima vez, vá ao revisor antes de escrever uma única linha e tente obter o máximo de informações possível sobre o que ele espera, com todos os detalhes. Também pode ser ótimo se a equipe de revisores de código resumir suas expectativas em um documento formal ao qual todo desenvolvedor possa se referir.
Por um lado mais positivo, uma sessão também pode ser uma ocasião para compartilhar grandes práticas / projetos.
fonte
Interpretei sua pergunta como "Meu código de funcionamento pode ser massacrado em uma revisão a um ponto em que ele nem compila mais?" .
Sim pode. Geralmente, durante uma revisão, você analisa como seu código faz o que faz. Quando você deseja entregar seu código, diz que concluiu uma determinada parte do programa.
Você diz que funciona. O teste é feito para verificar isso. Um módulo que passa nos testes não significa que o módulo não deve ser tocado novamente.
Um módulo que parece funcional ainda pode ser um desastre esperando para acontecer, em tempo de execução ou em alguns meses quando você ou outra pessoa precisar executar manutenção nele. Ao alterar seu código em uma revisão e apontar o que havia de errado com ele, seu revisor (espero) está tentando realmente ensinar alguma coisa.
fonte
As revisões por pares são, sem dúvida, uma ótima maneira de aprender. Alguém pode ver algo diferente, tem uma experiência diferente para você e deve poder contribuir com melhorias. Isso não deve ser depreciativo, espero que qualquer desenvolvedor seja capaz de comentar e criticar construtivamente o código de qualquer pessoa!
Parece-me que algumas dessas "melhorias" estão realmente fazendo alterações, porque (como você esperaria) o desenvolvedor revisador tem menos experiência com o software do que o autor.
Essa tendência é o auto-feedback, talvez seu código seja difícil de seguir ou manter? Seus comentários são valiosos? Absolutamente! Eu vejo como isso pode ser frustrante: ter um código de trabalho que seus colegas pareçam quebrar, você não deve ficar desanimado - você deve proteger seu código contra essas alterações.
A questão passa a ser como proteger a funcionalidade dos seus programas para que você saiba que a funcionalidade ainda está funcionando depois de concluir suas revisões. Minha sugestão seria garantir que você tenha uma cobertura decente de testes unitários. Dessa forma, sempre que você / seu revisor / sucessor alterar o código, eles poderão ter certeza de que as alterações feitas são seguras.
ETA: Acabei de ver um de seus comentários, tenho certeza que isso é desnecessário, mas as revisões de código devem ser feitas antes que a equipe de teste coloque as mãos nele. Caso contrário, eles não estão testando o produto final.
fonte