Quando eu faço revisões de código, eu tento apenas ter um monólogo em execução, então como eu estou entendendo o que estou lendo, haverá um monte de "Ok, eu vejo o que isso faz. Bom, ele se conecta a isso e chama isso, tudo bem .. e essa parte depende de ambos os que estão bem ".
Eu acho que desta forma não é "oo la la isso é tão bom!", pode ser um código chato perfeitamente trivial, mas ouvir alguém realmente analisar e mostrar a compreensão do que você escreveu é uma forma de feedback positivo em e por si só, o feedback sendo "Este código faz sentido", quando eu me deparo com partes que eu não entendo eu peço explicação e quando eu entendo exclamar "Ah, eu entendi".
Eu acho que a simples transferência de compreensão é um elogio a outro engenheiro porque todos nós queremos que nosso código seja compreendido por outros, isso dá uma forma de validação implícita.
Dito isto, se você ver partes do código que são características boas ou positivas (mesmo o código trivial trivial pode ser bom se for a forma mínima dele mesmo) eu definitivamente tento afirmar essas características, novamente eu não as atribuo como "Uau ótimo!" tanto quanto "eu vejo isso é uma implementação mínima" ou "Ok, este algoritmo complexo tem muitos comentários", focar os atributos do código não é tanto bondade inerente ou maldade.
Sempre que você atribuir "bondade" ou "maldade" ao código em uma revisão de código para evitar que o engenheiro se sinta desprezado ou preso a um pedestal, não diga que algo é bom ou ruim, mas fale sobre a causa e o efeito do código deles.
"Ok, esta parte faz sentido, ah há um número mágico aqui, o significado desse valor pode não ser bem entendido pelo próximo engenheiro para tocar isso"
"Eu vejo que você tem um contêiner de DI aqui ok, então você terá um baixo acoplamento com esse repositório"
"Ah, há um dicionário estático aqui, se vários segmentos tocarem no dicionário, poderemos encontrar algumas condições de corrida"
Observe que não estou dizendo que algo seja bom ou ruim, mas se o engenheiro deve alterá-lo ou não, isso será entendido pelo engenheiro cujo código está sendo revisado. Obviamente, você tem que terminar a revisão do código com um yay ou nay, mas acumular essas declarações ao longo do curso suavizará o nay como explicação já foi feita na forma de declarações de causa e efeito quando você diz "eu gostaria esses números mágicos corrigidos antes de verificar isso em ".