Há duas questões notáveis na questão, a parte com tato e o prazo que se aproxima . Essas são questões distintas - a primeira é uma questão de comunicação e dinâmica de equipe, a segunda é uma questão de planejamento e priorização.
Com muito tato . Suponho que você queira evitar egos escovados e respostas negativas contra os comentários. Algumas sugestões:
- Tenha um entendimento compartilhado dos padrões de codificação e dos princípios de design.
- Nunca critique ou revise o desenvolvedor , apenas o código . Evite a palavra "você" ou "seu código", apenas fale sobre o código em revisão, desanexado de qualquer desenvolvedor.
- Coloque seu orgulho na qualidade do código completo , de modo que os comentários de revisão que ajudam a melhorar o resultado final sejam apreciados.
- Sugira melhorias em vez de demanda. Sempre tenha um diálogo se não concordar. Tente entender o outro ponto de vista quando discordar.
- Faça com que os comentários sigam os dois lados. Ou seja, a pessoa que você revisou revisou seu código a seguir. Não tem críticas "unidirecionais".
A segunda parte é a priorização . Você tem muitas sugestões de melhorias, mas como o prazo está chegando, há apenas tempo para aplicar algumas.
Bem, primeiro você quer evitar que isso aconteça em primeiro lugar! Você faz isso executando revisões contínuas e incrementais. Não deixe um desenvolvedor trabalhar por semanas em um recurso e revise tudo no último momento. Em segundo lugar, as revisões de código e o tempo para implementar as sugestões de revisão devem fazer parte do planejamento e das estimativas regulares de qualquer tarefa. Se não houver tempo suficiente para revisar corretamente, algo deu errado no planejamento.
Mas vamos supor que algo deu errado no processo, e agora você se depara com vários comentários de revisão e não tem tempo para implementá-los. Você tem que priorizar. Em seguida, vá para as alterações que serão mais difíceis e arriscadas de serem alteradas posteriormente, se você a adiar.
A nomeação de identificadores no código-fonte é incrivelmente importante para facilitar a leitura e a manutenção, mas também é muito fácil e de baixo risco mudar no futuro. Mesmo com formatação de código. Portanto, não se concentre nessas coisas. Por outro lado, a sanidade das interfaces expostas ao público deve ser a maior prioridade, pois são realmente difíceis de mudar no futuro. É difícil alterar dados persistentes - se você começar a armazenar dados inconsistentes ou incompletos em um banco de dados, é realmente difícil de corrigir no futuro.
As áreas cobertas por testes de unidade são de baixo risco. Você sempre pode corrigi-los mais tarde. Áreas que não são, mas que podem ser testadas em unidade, apresentam menor risco do que áreas que não podem ser testadas em unidade.
Digamos que você tenha um grande pedaço de código sem testes de unidade e todos os tipos de problemas de qualidade de código, incluindo uma dependência codificada em um serviço externo. Ao injetar essa dependência, você torna o pedaço de código testável. Isso significa que você pode adicionar testes no futuro e, em seguida, trabalhar na correção do restante dos problemas. Com a dependência codificada, você não pode nem adicionar testes. Então, vá para essa correção primeiro.
Mas, por favor, tente evitar acabar neste cenário em primeiro lugar!