Table of Contents
Introducción
Las revisiones de código se introdujeron con la intención de mejorar la calidad del código, los desarrolladores revisan el código de los demás durante una revisión de código para garantizar la calidad del software, normalmente antes de fusionar el código. La revisión del código ayuda al equipo a identificar posibles fallos que podrían eludir la detección durante las pruebas, ahorrando tiempo y dinero.
Una revisión eficaz del código evita que se introduzcan fallos y errores en el proyecto al mejorar la calidad del código en las primeras fases del proceso de desarrollo del software. El proceso de revisión del código no debe limitarse a recibir comentarios unilaterales. Como resultado, la mejora de las habilidades de codificación del equipo colectivo es un beneficio intangible del proceso de revisión del código.
El proceso de revisión del código es fundamental
El proceso de revisión del código es fundamental porque evoluciona a medida que la organización envejece, por lo que hay que asegurarse de:
- Que el código está libre de errores.
- Reducir las posibilidades de tener problemas.
- Confirmar que el nuevo código sigue las directrices.
- Mejorar el rendimiento del nuevo código.
Hay varias formas de hacer revisiones de código, veamos las 4 técnicas más utilizadas para ello:
- Revisión “por encima del hombro”
Este es el método más común e informal de revisión de código. Una revisión «por encima del hombro» es exactamente lo que parece: un desarrollador de pie sobre la estación de trabajo del desarrollador mientras éste guía al revisor a través de un conjunto de cambios en el código, proporcionando sugerencias a través de una conversación. Es el enfoque más sencillo de las revisiones de código y no requiere una estructura predefinida, ya que es rápido de completar y puede funcionar de forma remota con escritorio compartido y llamadas en conferencia, aunque las revisiones de código «por encima del hombro» se hacían tradicionalmente en persona.
- Revisión por correo electrónico
Este es el tipo más común de revisión de código, y es el preferido por la mayoría de los proyectos de código abierto. El autor empaqueta archivos completos o cambios y los envía por correo electrónico a los revisores. Los revisores examinan los archivos, hacen preguntas y discuten los cambios con el autor y otros desarrolladores. Encontrar y recopilar los archivos en revisión es la parte más difícil del proceso de envío de correos electrónicos. El sistema de control de versiones puede ayudar en el proceso enviando automáticamente correos electrónicos. Las revisiones por correo electrónico, al igual que las revisiones por encima del hombro, son relativamente sencillas de implementar. A diferencia de las revisiones por encima del hombro, los correos electrónicos no sacan a los desarrolladores de «la zona» mientras trabajan; las revisiones pueden completarse siempre que el revisor tenga la oportunidad.
El inconveniente más importante de las revisiones basadas en el correo electrónico es que pueden convertirse rápidamente en una masa ilegible de comentarios, respuestas y fragmentos de código, sobre todo cuando se invita a otras personas a participar y se producen múltiples discusiones en diferentes partes del código. También es difícil gestionar varias revisiones a la vez y no hay ninguna indicación de que la revisión haya sido «completada».
- Revisión por parejas
La mayoría de la gente asocia la programación por parejas con la programación extrema (XP) o el desarrollo ágil. La programación por parejas es un proceso que incorpora la revisión continua del código entre dos desarrolladores y ha demostrado ser muy eficaz para encontrar errores y promover la transferencia de conocimientos.
El desarrollador que revisa se involucra profundamente en el código, considerando cuidadosamente los problemas y las consecuencias de las distintas implementaciones. Por un lado, esto da al revisor mucho tiempo de inspección y un profundo conocimiento del problema en cuestión, lo que puede indicar que la revisión es más eficaz. Esto ha provocado algunas quejas sobre la objetividad de las revisiones. Algunos desarrolladores sugieren que se utilicen ambas técnicas: la programación en parejas para la revisión profunda y una revisión estándar para tener los ojos frescos después. Aunque esto requiere mucho tiempo de los desarrolladores para implementarlo, parece que esta técnica encontraría el mayor número de defectos.
- Herramienta Revisión asistida
Hoy en día existen algunas herramientas para recopilar archivos y métricas, transmitir y mostrar archivos, mostrar comentarios y proporcionar a los gestores de productos cierto control sobre el flujo de trabajo del código.
Los proyectos de código abierto, el software comercial y los scripts caseros pueden considerarse «asistidos por herramientas». Por lo tanto, más vale que la herramienta ofrezca muchas ventajas si quiere valer la pena. En concreto, debe solucionar los principales problemas de los tipos de revisión anteriores con cambios en el control de versiones, recopilación automatizada de archivos, archivos de visualización de las diferencias entre el antes y el después, métricas precisas, aplicación del flujo de trabajo a nivel de informes e integraciones.
Tanto si te gustan las herramientas de línea de comandos, las integraciones con IDE y clientes de interfaz gráfica de control de versiones o las API de servicios web, una revisión asistida por herramientas tiene que encajar con la forma de pensar del desarrollador, para que su trabajo sea aún más ágil y no al revés.
Conclusión
Todas las técnicas mencionadas anteriormente son beneficiosas y darán como resultado un código mejor que el que tendrías de otro modo. Encuentre la mejor para usted. Según nuestra experiencia como empresa de software, nuestros desarrolladores encuentran el mayor potencial en la programación por parejas y en las revisiones asistidas por herramientas.
Sea cual sea tu selección, tus desarrolladores descubrirán que la revisión del código es una forma excelente de encontrar errores, orientar a los nuevos empleados y beneficiar la transferencia de conocimientos.
Author
-
Senior Marketing Consultant & Marketing Manager at Apiumhub. He brings over 10 years of industry experience. He specializes in digital marketing, SEO & business intelligence, delivering results through data-driven strategies.
Ver todas las entradas