Quando faço revisões de código, costumo ter apenas um monólogo em execução; portanto, como estou entendendo o que estou lendo, haverá muito "Ok, entendo o que isso faz. Bom, isso se conecta a isso e chama isso, tudo bem ... e essa peça depende dos dois. "
Eu acho que dessa maneira não é "oo la la, isso é ótimo!", Poderia ser um código chato perfeitamente trivial, mas ouvir alguém realmente analisar e mostrar compreensão do que você escreveu é uma forma de feedback positivo por si só, sendo o feedback "Este código faz sentido", quando encontro partes que não entendo, peço explicações e quando entendo, exclamo "Ah, entendi".
Eu acho que a simples transferência de compreensão é um elogio para outro engenheiro, porque todos queremos que nosso código seja entendido por outros, isso fornece uma forma de validação implícita.
Dito isso, se você ver partes do código com características boas ou positivas (mesmo o código trivial chato pode ser bom se for a forma mínima em si) eu definitivamente tendem a indicar essas características, novamente não as atribuo como "Uau ótimo!" tanto quanto "vejo que essa é uma implementação mínima" ou "ok, esse algoritmo complexo tem muitos comentários", concentram-se nos atributos do código, não tanto na bondade ou na maldade inerentes.
Sempre que você atribuir "bondade" ou "maldade" ao código em uma revisão de código para evitar que o engenheiro se sinta menosprezado ou mantido em um pedestal, não diga que algo é bom ou ruim, mas fale sobre a causa e o efeito de o código deles.
"Ok, essa parte faz sentido, ah há um número mágico aqui, o significado desse valor pode não ser bem compreendido pelo próximo engenheiro para tocar nisso"
"Vejo que você tem um contêiner de DI aqui ok, então você terá um acoplamento frouxo com esse repositório"
"Ah, existe um dicionário estático aqui, se vários threads estiverem tocando nesse dicionário, podemos encontrar algumas condições de corrida"
Observe que não estou dizendo que algo seja bom ou ruim, mas se o engenheiro deve mudar ou não será entendido pelo engenheiro cujo código está sendo revisado. Obviamente, você deve encerrar a revisão do código com um yay ou não, mas acumular essas instruções ao longo do processo suavizará as negativas, já que a explicação já foi feita na forma de declarações de causa e efeito quando você diz a eles "Eu gostaria esses números mágicos corrigidos antes de fazer check-in ".