¿Existe una guía definitiva para escribir comentarios de código, dirigida a desarrolladores incipientes?
Idealmente, cubriría cuándo deberían (y no deberían) usarse los comentarios, y qué comentarios deberían contener.
No comente QUÉ está haciendo, sino POR QUÉ lo está haciendo.
El QUÉ se soluciona mediante un código limpio, legible y simple con la elección adecuada de nombres de variables para admitirlo. Los comentarios muestran una estructura de nivel superior al código que no puede ser (o es difícil de mostrar) por el código mismo.
se acerca, pero es un poco conciso para programadores inexpertos (creo que una expansión con varios ejemplos y casos de esquina sería excelente).
Actualización : además de las respuestas aquí, creo que esta respuesta a otra pregunta es muy relevante.
fuente
Respuestas:
Debe tener en cuenta la mayor debilidad de los comentarios: se vuelven obsoletos. Es decir, a medida que el código cambia, los desarrolladores rara vez actualizan los comentarios para mantenerse sincronizados con el código. Esto significa que nunca puedes confiar en ellos y aún así terminar leyendo el código. Por esta misma razón, su código debe ser autodocumentado. Debe elegir su función y nombres de variables de tal manera que el código se lea como prosa.
Así que no documente QUÉ está haciendo el código. El código autodocumentado debería ocuparse de eso. Documente POR QUÉ lo está haciendo. Los POR QUÉ generalmente están relacionados con las reglas de negocios o la arquitectura y no cambian con frecuencia y se quedan obsoletos tan rápido en los QUÉ. Documentar casos de borde. Documentar excepciones. Documento de decisiones de diseño. Y lo más importante es documentar esas decisiones de diseño que consideró, pero decidió no implementar (y documente POR QUÉ decidió no usarlas).
fuente
Deberías leer el libro Clean Code de Robert C. Martin . Explica muy bien que si necesita comentarios, lo más probable es que no esté codificando correctamente. Idealmente, su código debería ser "auto comentado". El libro Clean Coder explica cómo hacer esto, para que los comentarios no sean necesarios, y describe bien cómo hacer comentarios en situaciones donde es necesario. (Como explicar una fórmula matemática compleja)
fuente
Code Complete, como se mencionó, tiene varias pautas para escribir comentarios. En resumen, es PDL y se puede resumir como:
Describa su intención, no lo que está haciendo el código. Evite describir detalles de implementación a menos que esté utilizando algún truco o esté utilizando implementaciones personalizadas. Por ejemplo, usar bits de desplazamiento para dividir, usar aritmética de puntero para acceder a miembros de la clase o usar un asignador de memoria personalizado para algunos objetos agrupados.
Escriba el pseudocódigo (es decir, los comentarios) primero, luego escriba el código real una vez que haya terminado de describir su rutina / método / función. El lenguaje utilizado es de alto nivel pero específico, por lo que puede ser bastante detallado
Tenga una idea de lo que está haciendo su código incluso antes de escribir el código
Tener comentarios tan cercanos al código real
El objetivo es evitar comentarios no relacionados largos que pueden estar desactualizados, pero tener comentarios que reflejen la intención y el propósito del código. El uso de un pseudocódigo de alto nivel también ayuda a aclarar su pensamiento antes de escribir la implementación.
Hay un enlace en GameDev.net [que explica PDL] [1], en caso de que no quiera rastrear el libro.
fuente
showWindowOnTop(window)
siempre será mejor que un comentario de la misma naturaleza, todo esto está desactualizado y es un mal consejo en 2012. 1) Los nombres de función / método describen la intención, 2) el pseudocódigo es un ejercicio hueco con cadenas de herramientas modernas 3) Las pruebas le dicen lo que se supone que debe hacer el código antes de escribirlo, 4) el código bien nombrado es mejor que los comentarios que no coinciden con el código mal nombradoSolo sigo un principio simple y común: sus comentarios no deben decir qué está haciendo el código, sino por qué lo está haciendo. Artículo de Martin Fowler y libro sobre refactorización y código El libro completo tiene mucha información, pero lamentablemente no está en forma resumida que yo sepa.
fuente
Mi sugerencia sería escribir un código sin ningún comentario, y luego alejarme de él. Regrese en un año y léalo. La parte que no entiendes fácilmente es la parte que deberías haber comentado.
fuente
Realmente me gusta cómo Evan Todd resume su punto de vista sobre las únicas categorías de comentarios útiles ( citando de su blog ):
fuente