¿Cuál es el propósito de una Revisión del Código?

74

Estoy tratando de vender a mi organización sobre el valor de las revisiones de código. He trabajado en varios lugares donde trabajaban. Los he visto acostumbrados a las opciones de estilo y las decisiones funcionales, y los he visto como nada más que una simple prueba para asegurarme de que no se está implementando nada peligroso. Mi intuición es que el propósito más efectivo se encuentra entre las dos opciones.

Entonces, ¿cuál es el propósito de una Revisión de Código?

    
pregunta SoylentGray 10.09.2014 - 21:34

4 respuestas

74

Hay varias razones por las que querría realizar una revisión del código:

  • Educación de otros desarrolladores. Asegúrese de que todos vean la modificación asociada con una reparación o mejora de defectos para que puedan comprender el resto del software. Esto es especialmente útil cuando las personas trabajan en componentes que deben integrarse o en sistemas complejos donde una persona puede pasar largos períodos de tiempo sin mirar ciertos módulos.
  • Encontrar defectos u oportunidades de mejora. Tanto el código entregable como el código de prueba y los datos se pueden examinar para encontrar puntos débiles. Esto garantiza que el código de prueba sea robusto y válido y que el diseño y la implementación sean coherentes en toda la aplicación. Si es necesario que se realicen cambios adicionales, la oportunidad se acerca más al punto de entrada.

Hay varios casos comerciales para realizar revisiones:

  • Encontrar defectos o problemas que deban modificarse más cerca de su inyección. Esto es más barato.
  • Comprensión compartida del sistema y entrenamiento cruzado. Menos tiempo para que un desarrollador se acelere para hacer cambios.
  • Identificación de posibles mejoras en el sistema.
  • Abrir la implementación para garantizar que los evaluadores brinden la cobertura adecuada. Convertir una caja negra en una caja gris o caja blanca desde una perspectiva de prueba.

Si está buscando una discusión exhaustiva sobre los beneficios y las estrategias de implementación para las revisiones por pares, recomendaría revisar Revisiones por pares en software: una guía práctica por Karl Wiegers .

    
respondido por el Thomas Owens 10.09.2014 - 21:53
49

Las revisiones de código son una herramienta para transferencia de conocimiento .

  • Cuando los desarrolladores revisan el código de cada uno, se familiarizan con 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 el mantenimiento de una parte del sistema que no escribieron.

  • Cuando un programador junior revisa el código de un senior, el programador junior puede recoger trucos que de lo contrario solo se aprenden a través de la experiencia. Esto también puede funcionar como un correctivo contra un código demasiado complicado.

    Una revisión exhaustiva del código requerirá verificaciones frecuentes en 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 solucionar los problemas anteriores que se traducen en deuda técnica. Una revisión de código puede ser una buena configuración para asesorar a programadores junior.

Las revisiones de código no son acerca de:

  • ... encontrando errores. Para eso son las pruebas. Sigue ocurriendo con frecuencia que una revisión del código encuentre algún problema.

  • ... analice los problemas de estilo: establezca un estilo y utilice 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é lo suficientemente documentado o se documente a sí mismo.

respondido por el amon 10.09.2014 - 22:09
11

Lo más valioso que obtengo personalmente de una revisión del 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 algún comentario? ¿Los casos de borde y los valores válidos para los parámetros se describen en los comentarios y se verifican en el código?

    
respondido por el user25946 11.09.2014 - 15:07
6

Me gustaría agregar dos áreas que no están cubiertas por las otras grandes 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 Para ver su código luego, 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 goto fail de Apple (una línea de código duplicada accidentalmente) o Heartbleed error (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.

    
respondido por el Chris Knight 17.09.2014 - 00:17

Lea otras preguntas en las etiquetas