Interesante, que la legibilidad aplicada al lenguaje natural se mide por la velocidad de lectura y comprensión. Supongo que se puede adoptar una regla simple, si un comentario de código en particular no mejora esta propiedad, se puede evitar .
¿Por qué comentarios?
Aunque el comentario de código es una forma de documentación incorporada, existen múltiples maneras en los lenguajes de programación de alta gama para evitar la programación superflua "sobredocumentada" (de código significativo) mediante el uso de elementos del lenguaje en sí. También es una mala idea convertir el código en listados del libro de texto de programación, donde las declaraciones individuales se explican literalmente de manera casi tautológica (tenga en cuenta el ejemplo "/ * increment i by 1 * /" en respuestas ya proporcionadas), haciendo que tales comentarios sean relevantes solo para programadores inexpertos con el lenguaje.
Sin embargo, es la intención de tratar de comentar el código "poco documentado" (pero sin sentido) que es realmente "la fuente de todo mal". La existencia misma del código "poco documentado" es una mala señal, ya sea un desastre no estructurado o un truco loco de propósito místico perdido. Obviamente, el valor de dicho código es cuestionable al menos. Desafortunadamente, siempre hay ejemplos, cuando de hecho es mejor introducir un comentario en una sección de líneas de código formateadas (visualmente agrupadas) que envolverlo en una nueva subrutina (tenga en cuenta la "consistencia tonta" que "es el duende de las pequeñas mentes") .
Legibilidad de código! = Comentarios de código
El código legible no requiere anotaciones por comentarios. En cada lugar particular en el código siempre hay un contexto de una tarea que se supone que este código particular debe lograr. Si falta el propósito y / o el código hace algo misterioso = evítelo a toda costa. No permita que hacks extraños llenen su código: es un resultado directo de combinar tecnologías defectuosas con falta de tiempo / interés para comprender los fundamentos. ¡Evita el código místico en tu proyecto!
Por otro lado, el programa legible = código + documentación puede contener múltiples secciones legítimas de comentarios, por ejemplo, para facilitar la generación de documentación de "comentarios a la API".
Siga los estándares de estilo de código
Curiosamente, la pregunta no es por qué comentar el código, se trata del trabajo en equipo, cómo producir código en un estilo altamente sincronizado (que todos los demás puedan leer / comprender). ¿Sigue alguna norma de estilo de código en su empresa? Su objetivo principal es evitar escribir código que requiere refactorización, es demasiado "personal" y "subjetivamente" ambiguo. Entonces, supongo que si uno ve la necesidad de usar el estilo de código, hay una gran cantidad de herramientas para implementarlo correctamente, comenzando con la educación de las personas y terminando con la automatización para el control de calidad del código (numerosas líneas, etc.) y (revisión control integrado) sistemas de revisión de código.
Conviértete en un evangelista de legibilidad de códigos
Si acepta que el código se lee con más frecuencia de lo que se escribe. Si la expresión clara de las ideas y el pensamiento claramente es importante para usted, no importa qué idioma se use para comunicarse (matemática, código de máquina o inglés antiguo). Si su misión es erradicar la forma aburrida y fea de pensamiento alternativo. , el último es de otro "manifiesto") ... haga preguntas, inicie discusiones, comience a difundir libros que provoquen pensamientos sobre la limpieza de códigos (probablemente no solo algo similar a los patrones de diseño de Beck, sino más como ya lo mencionó RC Martin ) que abordan la ambigüedad en la programación Además va un pasaje con viñetas de ideas clave (citado del libro de O'Reilly sobre legibilidad)
- Simplifique la nomenclatura, los comentarios y el formato con sugerencias que se aplican a cada línea de código.
- Refine los bucles, la lógica y las variables de su programa para reducir la complejidad y la confusión.
- Atacar problemas a nivel de función, como reorganizar bloques de código para hacer una tarea a la vez
- Escriba un código de prueba efectivo que sea completo y conciso, así como legible
Eliminando los "comentarios", todavía queda mucho (¡supongo que escribir código que no necesita comentarios es un gran ejercicio!). Nombrar identificadores semánticamente significativos es un buen comienzo. Luego, estructura tu código agrupando operaciones conectadas lógicamente en funciones y clases. Y así. Un mejor programador es un mejor escritor (por supuesto, asumiendo otras habilidades técnicas dadas).