2008-09-06 5 views
5
  • ¿Quién debería ser evaluado?
  • ¿Quién debería hacer la revisión?
  • ¿Qué código debe revisarse? (¿Todos los códigos ? ¿Grandes cambios? Etc)
  • ¿Dónde debería realizarse la revisión? (¿Tiene que realizarse en persona ?)
  • ¿Cuándo deben realizarse las revisiones? (¿Incrementalmente? ¿Antes del check-in?)
  • ¿Por qué se debe revisar el código?

Tengo algunas opiniones sobre esto, pero voy a publicar una respuesta con aquellos.¿Quién, qué, cuándo, dónde y por qué debería revisar los códigos?

Respuesta

8

¿Quién debería ser evaluado?

Todos los que envían código a un repositorio compartido.

¿Quién debería hacer la revisión?

  1. Un mentor o ingeniero superior que mirar hacia fuera para los malos olores y los errores en la corrección de arquitectura del código.

  2. Peers en el equipo o pod que trabajan en la misma área de código, es decir, si está trabajando en representación 3D en un juego de computadora, todos los demás programadores de gráficos deberían revisar el código.

  3. Cualquier otra persona cuyos módulos se interconectan o dependen del código que se envía.

¿Qué código debe revisarse? (todo el código? ¿Grandes cambios? Etc)

Según mi experiencia, todo el código va a ser trabajado por más de una persona (y eso es casi todo el código).

¿Dónde debe realizarse la revisión? (¿Tiene que realizarse en persona?)

Las revisiones son más beneficiosas cuando son interactivas y en tiempo real. Habiendo dicho eso, creo que es importante tener un sistema como CodeReviewer para permitir una distribución sencilla de los diffs, de modo que los revisores puedan estudiar los cambios de manera más eficiente y más cómoda dentro de su propio entorno de desarrollo, antes de realizar la revisión cara a cara.

No estoy de ninguna manera asociado con CodeBear, pero siempre he encontrado que mis revisiones de código son más efectivas cuando he podido ver los cambios en mi propia máquina ya que tengo el IDE y las herramientas y todo lo demás configurado de la manera que necesito para deletrear efectivamente el código para ver qué impacto tendrán los cambios de código y eso es algo que no puedo hacer si mi revisión es de 15 minutos en la PC de otra persona mirándolos desplazarse sus cambios

¿Cuándo deben realizarse las revisiones? (¿Incrementalmente? ¿Antes del check-in?)

Antes de realizar el check in. He estado en situaciones en las que la revisión de código incremental me ha costado escribir el código de la persona "incrementalmente" durante cada revisión. :(

¿Por qué debería ser revisado Código?

Dos razones principales vienen a la mente.

El primero de ellos es el de preservar la calidad y la consistencia de la base de código. Para cualquier base de código del mundo real lo más probable es que tengan programadores de diferentes niveles y se unan al equipo que es responsable de mantener esa base de código y las revisiones intentan minimizar la base de códigos convirtiéndose en un reflejo de la dinámica de los equipos. Por ejemplo, 2 programadores deshonestos se unieron al equipo la semana pasada y ahora 20 archivos fuente tener basura en ellos.

La segunda razón es eliminar las suposiciones de visión de túnel en el código. En algún punto, una base de código se volverá demasiado grande para que un programador lo entienda todo. Y a partir de ese momento, todos los que trabajen en el código tendrán su propia "parte de la realidad" sobre lo que hace el código y cómo funciona el sistema, lo que a menudo llevará a la creación de un código basado en suposiciones ingenuas o incorrectas. Por lo tanto, hacer que otras personas traigan su visión de la realidad a su código durante la revisión ayuda a reducir este problema de miopía basada en códigos.

0

Todos, todo ... programa de parejas! sería una respuesta.

Sin embargo, creo que depende del tipo de negocio en el que se encuentre y de la gravedad de su calidad. Trabajé en una empresa de equipos médicos y la revisión del código se realizó periódicamente revisando páginas y páginas de diffs junto con el diagrama UML por el jefe de diseño, el departamento de control de calidad, etc.

Existen varias respuestas a por qué?

  1. Para detectar requisitos no válidos.
  2. Para captar el diseño del software que no se ajusta a los requisitos.
  3. Para detectar la implementación que no se ajusta al diseño del software.
  4. Para detectar la implementación no estándar.
  5. Para detectar un error en la implementación.
  6. Para detectar posibles efectos secundarios en la implementación porque el codificador no tuvo en cuenta otros módulos.
1

¿Quién debería ser revisado?

Todo el mundo que está desarrollando código que se libera en la producción

quién debe hacer la revisión?

Todo el equipo

¿Qué código debe ser revisada? (todo el código? ¿Grandes cambios? Etc)

Depende. Revisamos todos los cambios de código. Los cambios de propiedad e ini no se revisan a menos que lo consideremos necesario después de consultar el código.

¿Dónde debe realizarse la revisión? (¿Tiene que realizarse en persona?)

Sí, debe llevarse a cabo en persona. Además de consultar el código, puede obtener información valiosa sobre prácticas generales de codificación, trucos IDE, la lista continúa. Revisar en persona también le da al codificador la oportunidad de explicar por qué hicieron algo de esa manera, deja más espacio para el debate.

¿Cuándo deben realizarse las revisiones? (¿Incrementalmente? ¿Antes del check-in?)

Hacemos nuestra una semana antes de que el código se ponga en producción. Todo está registrado en ese punto, y deja mucho tiempo para corregir cualquier problema.

¿Por qué debería revisarse el código?

La lista para esta pregunta es enorme. Lo primero y más importante es capturar el código que puede producir errores o errores en la producción. Otras cosas como capturar código no estandarizado, código descuidado, antipatrones. Casi lo nombras.

0

La pregunta ya ha sido respondida de manera exhaustiva. Pero me gustaría añadir que, incluso si el código es correcto, (aparentemente) libre de errores, y sigue los estándares, la revisión del código tiene sus méritos. A saber, aumenta el número de camión en la funcionalidad que implementó el desarrollador. (Aunque solo marginalmente)

No estoy sugiriendo, sin embargo, que las revisiones de código reemplacen los comentarios apropiados.

Cuestiones relacionadas