Cuando reviso el código, normalmente trato de hacer recomendaciones específicas sobre cómo resolver los problemas. Pero debido al tiempo limitado que uno puede pasar para revisar, esto no siempre funciona bien. En estos casos, encuentro más eficiente si el desarrollador encuentra una solución por sí mismo.
Hoy revisé un código y descubrí que una clase obviamente no estaba bien diseñada. Tenía una serie de atributos opcionales que solo se asignaban a ciertos objetos y se dejaban en blanco para otros. La forma estándar de resolver esto sería dividir la clase y usar la herencia. Sin embargo, en este caso específico, esta solución parecía complicar demasiado las cosas. Yo no participé en el desarrollo de este software y no estoy familiarizado con todos los módulos. Por lo tanto, no me sentí lo suficientemente informado como para tomar una decisión específica.
Otro caso típico que experimenté muchas veces es que encuentro una función, un nombre de clase o variable obviamente sin sentido o incluso engañoso, pero no puedo encontrar un buen nombre yo mismo.
En general, como revisor, ¿está bien decir "este código es defectuoso porque ..., lo hace de manera diferente" o tiene que encontrar una solución específica?