Estoy trabajando en un inicio de robótica en un equipo de cobertura de ruta y después de enviar una solicitud de extracción, se revisa mi código.
Mi compañero de equipo, que ha estado en el equipo durante más de un año, ha hecho algunos comentarios a mi código que sugieren que hago mucho más trabajo del que creo necesario. No, no soy un desarrollador perezoso. Me encanta el código elegante que tiene buenos comentarios, nombres de variables, sangría y maneja los casos correctamente. Sin embargo, tiene un tipo diferente de organización en la mente con la que no estoy de acuerdo.
Daré un ejemplo:
Pasé un día escribiendo casos de prueba para un cambio en un algoritmo de búsqueda de transición que realicé. Me había sugerido que manejara un caso oscuro que es muy poco probable que ocurra, de hecho, no estoy seguro de que sea posible que ocurra. El código que hice ya funciona en todos nuestros casos de prueba originales y en algunos nuevos que encontré. El código que hice ya pasa nuestras más de 300 simulaciones que se ejecutan todas las noches. Sin embargo, para manejar este caso oscuro me llevaría 13 horas que se podrían pasar mejor tratando de mejorar el rendimiento del robot. Para ser claros, el algoritmo anterior que habíamos estado usando hasta ahora tampoco manejó este caso oscuro y ni una sola vez, en los 40k informes que se han generado, alguna vez ha ocurrido. Somos una startup y necesitamos desarrollar el producto.
Nunca he tenido una revisión de código antes y no estoy seguro si estoy siendo demasiado argumentativo; ¿Debería callarme y hacer lo que él dice? Decidí mantener la cabeza baja y hacer el cambio, aunque estoy totalmente en desacuerdo con que fue un buen uso del tiempo.
Respeto a mi compañero de trabajo y lo reconozco como un programador inteligente. Simplemente no estoy de acuerdo con él en un punto y no sé cómo manejar el desacuerdo en una revisión del código.
Siento que la respuesta que elegí cumple con este criterio de explicar cómo un desarrollador junior puede manejar el desacuerdo en una revisión de código.