Me gustaría comenzar mi respuesta con una cita hecha por Jeff Atwood en su publicación del blog El código le dice cómo, los comentarios le dicen por qué :
los mejores comentarios son aquellos que no necesitas
También afirma que:
Primero debes esforzarte por hacer que tu código sea lo más simple posible de entender sin confiar en los comentarios como muleta. Solo en el punto donde el código no pueda ser más fácil de entender, debe comenzar a agregar comentarios.
Estoy totalmente de acuerdo y, en este punto, debo agregar que, antes de poder comenzar a hacer el código lo más simple posible, hago que el código funcione y luego comienzo a refactorizar. Por lo tanto, durante la primera ejecución antes de refactorizar, agregar por qué los comentarios ayuda mucho.
Por ejemplo, si se usan 3 bucles anidados con tablas hash bidimensionales para completar una tabla de días de la semana mientras se analizan los datos, es muy fácil perder el rastro de lo que hizo alguien o incluso de ti mismo si no se observaron durante algunas semanas y se refactorizó repentinamente .
[loop1]6oclock -> [loop2]Monday -> [loop3]stage 1 to 4
-> tuesday-> stage 1 to 4
...
-> Saturday -> stage 1 to 4
7oclock -> Monday-> stage 1 to 4
....etc.
El superior es un ejemplo de cómo funcionarían 3 bucles anidados antes de la refactorización.
Además, explicar algunas condiciones de la rama puede ayudar a entender el código mucho mejor con lo que se pensaba en el proceso:
// added a zero before the actual day in order for the days always to be 2 digits long.
if( actualDayFuture < 10 )
{
actualDayFuture = padIfSingleDigitDate(actualDayFuture);
}
Incluso el código simple y obvio funciona bien con los comentarios. Solo para hacer las cosas un poco más obvias, claras o fáciles de entender para los colegas e incluso para usted mismo al mantener el software.
Claro que xp dice tener un código que se explica por sí mismo, pero ¿duele un comentario de una línea?
También encuentro las siguientes reglas en este blog para ser muy útil:
- Comprende el material antes de escribir
- Escribe como si tu audiencia fuera un estudiante de cuarto grado
- Piensa en cómo los lectores pueden malinterpretarte
Cualquier persona que tenga que volver a su propio código o el código de alguien o incluso el código heredado sabe que puede ser un dolor de cabeza. Entonces, en lugar de ser perezoso o tratar de ser un codificador de uber para no comentar nada o muy poco, ¿por qué no hacer que su propio o algún pobre insultador, que tiene que mantener su código, la vida futura sea mucho más fácil siguiendo las reglas citadas?
También se cuestionan muchas decisiones de programación hechas durante las revisiones y no siempre está claro por qué algunas partes se escribieron tal como estaban, incluso si algunas secciones del código son vitales para que un programa funcione debido a un error importante que se encontró cuando el código era utilizado durante años Así que para no aburrirlos completamente con un tl; dr cerrar con una última cita de acmqueue :
La documentación previa, clara y extensa es un elemento clave en la creación de software que puede sobrevivir y adaptarse. La documentación con altos estándares reducirá el tiempo de desarrollo, dará como resultado un mejor trabajo y mejorará el resultado final. Es difícil pedir más que eso de cualquier técnica.