diez consejos para repasar el código que no te agrada

Como cooperador usual de proyectos de código abierto (tanto dentro como fuera de Red Hat), encuentro que uno de los que más pierden el tiempo es lidiar con las revisiones de código de mi código mandado que son negativas o bien obstructivas y, sin embargo, fundamentalmente de naturaleza subjetiva o bien argumentativa. Veo esto más con frecuencia al enviar a proyectos en los que al mantenedor no le gusta el cambio, por cualquier motivo. En el mejor de los casos, este género de estrategia de revisión de código puede llevar a perder tiempo en debates inútiles; en el peor de los casos, desalienta activamente la contribución y la diversidad en un proyecto y crea un ambiente hostil y elitista.

Una revisión del código debe ser objetiva y sucinta y debe tratar con certidumbres toda vez que sea posible. No es un razonamiento político o emocional; Es técnico y el objetivo siempre debe ser avanzar y elevar el proyecto y sus participantes. La presentación de un cambio debe evaluarse siempre en función de los méritos de la presentación, no conforme con la opinión del remitente.

Estrategias de revisión de código

Acá hay varias estrategias que debe tener en consideración al comprobar las presentaciones que, por cualquier motivo, a usted (como encargado del proyecto) no le gusta:

Todo cuanto necesitas para hacer medrar tu carrera.

Con su membresía gratuita del programa Red Hat Developer, desbloquee nuestra biblioteca de hojas de trucos y e-books sobre el desarrollo de aplicaciones de próxima generación.

1. Reconsidera tu objeción como una pregunta.

Malo: este cambio va a hacer que XXX sea imposible ". (Esto es una hipérbole; ¿es verdaderamente imposible?)

Bien: ¿Cómo podemos hacer XXX con tu cambio? "

dos. Eludir la hipérbole.

Sencillamente exponga sus preocupaciones y haga preguntas para asistir a obtener el resultado deseado.

Malo: este cambio destruirá el desempeño ".

Bien: parece que hacer X puede ser más lento que Y existente; ¿Ha medido / compendiado datos para demostrar que no lo es? "

Mejor (si tienes tiempo): Mientras, estoy recopilando datos para intentar contrastar que X no sea más lento que Y. "

También es bueno: este cambio cambia este solo bucle (n) a un bucle doblemente anidado (n²); ¿Esto no afectará el rendimiento? "

tres. Mantén los comentarios sarcásticos para ti.

Ciertos pensamientos se guardan mejor para ti mismo. Si no puedes ser cívico, no te impliques.

Malo: creo que este cambio es malo y arruinará todo ".

Malo: ¿Está convencido de que la ingeniería de software es la carrera adecuada para ? "

4. Participar de forma positiva

¿Tal vez tuviste una idea diferente sobre cómo solucionar un inconveniente? Si se implica de manera positiva, podría finalizar descubriendo una solución que sea mejor que cualquiera de las opciones originales.

Malo: este cambio apesta, mi versión es mejor ".

Bien: también tengo un cambio similar en esta ubicación XXX: tal vez podamos comparar y / o combinar ideas ".

También es bueno: tengo un cambio afín en progreso, mas elegí hacer X pues ZZZ; ¿Por qué escogiste Y? "

cinco. Recuerda que no la experiencia de todos es idéntica a la tuya.

Un ingeniero por lo demás absolutamente competente podría pasar años sin saber un hecho que usted toma como los pies en el suelo. Está bien afirmar lo obvio, siempre que no sea complaciente o soslayo al respecto.

Malo: ¿No puedes ver que esto está obviamente mal? "

Bien: esto es incorrecto pues causa una salvedad de puntero nulo cuando X es Y. "

seis. No disminuyas la complejidad de algo que no es obvio.

Recuerde que las cosas que son obvias para pueden no ser obvias para todos. Sugerir enfoques alternativos y apuntar ejemplos útiles puede ayudar a que todos estén en exactamente la misma página.

Malo: ¿Por qué razón no simplemente frob the gnozzle? "

Bien: podría ser posible frobar el gnozzle, lo que simplificaría esta parte (ver XXX para un ejemplo) ".

7. ser respetuoso

A veces, una presentación simplemente no cumple con un estándar mínimo de calidad. Está bien decirlo, pero no cuesta solamente ser respetuoso.

Malo: este es un código estúpido escrito por una persona imbécil ".

Bien: Gracias por tu contribución. Sin embargo, no puede ser aceptado en su forma actual; hay múltiples inconvenientes (como se describe arriba) ".

Asimismo es bueno: como se describe previamente, existen múltiples inconvenientes con esta presentación. Quizás podríamos retroceder un paso y charlar sobre los casos de uso en su lugar? Eso podrÃa asistirnos a encontrar un camino hacia adelante ".

ocho. Administra las esperanzas (y tu tiempo)

Si un envío es demasiado grande para ser revisado razonablemente, está bien avisarle al expedidor de inmediato. Continuar avanzando.

Malo: no estoy fusionando esto, es demasiado grande ".

También malo: ignorarlo hasta que se vaya.

Bien: ¿Podría por favor dividir esto en cambios más pequeños? No tengo mucho tiempo para las revisiones de códigos y este es demasiado grande / complejo para revisar en una pasada ".

9. di por favor

Solo decir "por favor" ayuda mucho a probar que respeta el tiempo del expedidor, singularmente cuando quiere que algo sea diferente debido al formato o bien al estilo, lo que puede parecer un detalle menor del cambio. Ejemplos:

¿Podría por favor separar los cambios de espacio en blanco en otra solicitud de extracción? "

¿Podría alinear estas definiciones de variables para que sean más simples de leer? "

10. iniciar una charla

Si, después de todo esto, aún no te gusta algo mas no estás seguro de por qué razón, quizás debas sencillamente vivir con eso. Mas asimismo está bien decir que no me agrada esto y no estoy seguro de por qué, ¿podemos hablar de ello? "Es una pregunta razonable, y si bien puede tomar un tanto de tiempo, a menudo vale la pena inversión porque ahora tiene 2 personas que están aprendiendo (una explicando y otra escuchando) en vez de 2 personas que se oponen entre sí.

Aun los ingenieros cualificados y experimentados deberían poder decir que no comprendo por qué no me agrada esto "; no es una convidación a agredir la posición del revisor, sino más bien una busca honesta de conocimiento.



Si te ha gustado Post y te gustaría obtener más datos relativa Knob visita nuestro blog.