Soy un joven programador (terminé la universidad de ciencias de la computación pero todavía tengo menos de un año de trabajo en la industria) y hace poco conseguí un trabajo trabajando en un código C para un servicio web de tamaño decente. Mirando el código, los únicos lugares donde vi comentarios eran cuando las personas escondían su código anterior. La función y los nombres de variables son similarmente informativos la mayor parte del tiempo - futex_up(&ws->g->conv_lock[conv->id%SPIN]);
. Enfrentando a un programador senior sobre la situación y explicando que agregar comentarios y nombres significativos haría que el código sea más fácil de mantener y leer en el futuro, recibí esta respuesta:
En general, odio los comentarios. La mayoría de ellos tiempo, como el caso usted. Mencionar con el valor de retorno, la gente usa comentarios para moverse. leyendo el codigo Los comentarios no dicen nada más que lo que el El chico pensó que el código lo hizo en el momento en que hizo el comentario (que es a menudo antes de su última edición). Si pones comentarios, la gente no lo hará. Lee el código tanto. Entonces los insectos no son atrapados, y la gente no comprender las peculiaridades, cuellos de botella, etc. del sistema. Eso es siempre que los comentarios se actualicen realmente con cambios de código, que es por supuesto totalmente sin garantía.
Quiero forzar a la gente a leer el código. Odio a los depuradores por un razón similar Son demasiado convenientes y te permiten pasar código sucio con relojes y puntos de interrupción y encontrar el llamado problema, cuando el verdadero problema era que hay errores en el código porque el código no se ha simplificado lo suficiente. Si no tuviéramos el Depurador, nos negaríamos a leer el código feo y decimos: Tengo que limpiar esto solo para que pueda ver lo que está haciendo. Para cuando hayas terminado limpiando, la mitad del tiempo el error desaparece.
Aunque lo que él escribió va mucho en contra de que me hayan enseñado en la universidad, tiene sentido. Sin embargo, dado que la experiencia en los estudios a veces no funciona en la vida real, me gustaría obtener una opinión de las personas más examinadas en el código.
Es el enfoque de evitar comentar el código para hacer que las personas realmente lean el código y entiendan lo que está pasando tiene sentido en un entorno de codificación de tamaño mediano (uno que pueda ser leído en su totalidad por cada persona que trabaje en él dentro de un mes o dos), o es una receta para un desastre a largo plazo? ¿Cuáles son las ventajas y desventajas del enfoque?