Estoy en el proceso de intentar vender a mi organización el valor de las revisiones de código. He trabajado en varios lugares donde estaban empleados. Los he visto acostumbrados a elegir opciones de estilo y decisiones funcionales, y los he visto como nada más que una verificación intestinal para asegurarme de que no se implemente nada peligroso. Mi intuición es que el propósito más efectivo está en algún lugar entre las dos opciones.
Entonces, ¿cuál es el propósito de una revisión de código?
code-reviews
theory
SoylentGray
fuente
fuente
Respuestas:
Existen varias razones por las que desearía realizar una revisión del código:
Existen varios casos comerciales para realizar revisiones:
Si está buscando una discusión exhaustiva sobre los beneficios y las estrategias de implementación para las revisiones por pares, le recomiendo que revise las revisiones por pares en software: una guía práctica de Karl Wiegers .
fuente
this
contexto, no lo usa.hasOwnProperty
en lugares donde debería estar, etc., etc. - Por lo tanto, principalmente para los estándares. En un lenguaje administrado como C #, por supuesto, tiene varias razones menos que las de los lenguajes dinámicos.Las revisiones de código son una herramienta para la transferencia de conocimiento .
Cuando los desarrolladores revisan el código de los demás, se familiarizan en todas las áreas del sistema. Esto reduce el factor de bus de un proyecto y hace que los desarrolladores sean más eficientes cuando tienen que hacer mantenimiento en una parte del sistema que no escribieron.
Cuando un programador junior revisa el código de un senior, el programador junior puede aprender trucos, de lo contrario solo se aprende a través de la experiencia. Esto también puede funcionar como un correctivo contra código demasiado complicado.
Una revisión exhaustiva del código requerirá verificaciones frecuentes de diversos documentos. Es una excelente manera de aprender un idioma o API.
Cuando un programador senior revisa el código de un junior, esta es una oportunidad para resolver los problemas antes de que se traduzcan en deudas técnicas. Una revisión del código puede ser un buen escenario para guiar a los programadores junior.
Las revisiones de código no son sobre:
... encontrando errores. Para eso están las pruebas. Todavía ocurrirá con frecuencia que una revisión de código encuentra algún problema.
... quisquilloso en cuestiones de estilo: conformarse con un estilo y utilizar formateadores automáticos para imponerlo. Pero hay muchas cosas que una herramienta automatizada no puede verificar. Las revisiones de código son un buen lugar para asegurarse de que el código esté suficientemente documentado o autodocumentado.
fuente
Lo más valioso que personalmente obtengo de una revisión de código es la confianza de que el código es claro para otra persona. ¿Las variables están claramente nombradas? ¿El propósito de cada fragmento de código es razonablemente obvio? ¿Se aclara algo ambiguo con un comentario? ¿Los casos límite y los valores válidos para los parámetros se describen en los comentarios y se verifican en el código?
fuente
Me gustaría agregar dos áreas que no están cubiertas por las otras excelentes respuestas:
Una gran razón para las revisiones de código es el efecto Hawthorne, que en nuestro caso se traduce en: Si sabe que alguien va a mirar su código después, entonces es mucho más probable que lo escriba mejor en primer lugar.
Otra gran razón es para mejores prácticas de desarrollo seguras. Solo hay que mirar el error de Goto de Apple (una línea de código duplicada accidental) o el error Heartbleed (un error básico en la validación de entrada) para comprender la importancia de las revisiones de código adecuadas en un ciclo de vida de desarrollo seguro.
fuente