Por varias razones durante el desarrollo, a veces comento código. Como soy caótico y a veces tengo prisa, algunos de estos llegan al control de la fuente.
También uso comentarios para aclarar bloques de código.
Por ejemplo:
MyClass MyFunction()
{
(...)
// return null; // TODO: dummy for now
return obj;
}
Aunque "funciona" y muchas personas lo hacen de esta manera, me molesta que no se pueda distinguir automáticamente el código comentado de los comentarios "reales" que aclaran el código:
- agrega ruido al intentar leer el código
- no puede buscar código comentado, por ejemplo, un enlace de confirmación en el control de origen.
Algunos lenguajes admiten múltiples estilos de comentarios de una sola línea, por ejemplo, en PHP que puede usar //
o #
para un comentario de una sola línea, y los desarrolladores pueden ponerse de acuerdo en usar uno de estos para el código comentado:
# return null; // TODO: dummy for now
return obj;
Otros lenguajes, como C # que estoy usando hoy, tienen un estilo para los comentarios de una sola línea (¿verdad? Desearía estar equivocado). También he visto ejemplos de código "comentando" usando directivas de compilación, lo cual es excelente para bloques grandes de código, pero un poco exagerado para líneas individuales ya que se requieren dos líneas nuevas para la directiva:
#if compile_commented_out
return null; // TODO: dummy for now
#endif
return obj;
Entonces, como el código comentado ocurre en todos los idiomas (?), ¿No debería el "código deshabilitado" tener su propia sintaxis en las especificaciones del idioma? ¿Los pro (separación de comentarios / código deshabilitado, los editores / control de fuente actúan sobre ellos) son lo suficientemente buenos y los contras ("no deberían comentar de todos modos", no son una parte funcional de un lenguaje, potencial retraso IDE (gracias Thomas )) vale la pena sacrificar?
Editar
Me doy cuenta de que el ejemplo que usé es tonto; el código ficticio podría eliminarse fácilmente ya que se reemplaza por el código real.
/# ... #/
que pondría de relieve de manera diferente en el IDE (por señales visuales) y tal vez generar un compilador de alerta que luego sería atrapado y reportado en el nightly build si alguien no comprobar tales cambios de nuevo en control de fuente.Respuestas:
En primer lugar, en su ejemplo hay comentarios "TODO". Estos tipos de comentarios son especiales porque los IDE (al menos Eclipse y Visual Studio) los detectan como marcadores de "tareas". Pero estoy seguro de que lo sabe ya que los usa, y supongo que no se refiere a ellos cuando usa el término "código deshabilitado".
En cuanto al código deshabilitado en sí, mi opinión es que contamina el código. Utilizo otro mecanismo para hacer un seguimiento de lo que había antes: el repositorio de origen . Excepto cuando estoy en un modo de código / prueba / código / prueba ..., no comento código no utilizado, lo elimino. Y cuando es el caso, comentar líneas X es solo cuestión de un atajo de teclado.
Editar: así que sí, olvidé responder su pregunta explícita, creo que no es útil tener comentarios especiales para el código deshabilitado. Si realmente desea conservar el código, pero diga "no lo use", siempre puede marcarlo como @depreused pero ese no era el punto de su pregunta.
fuente
Creo que esta es la raíz del problema. Ser caótico y apresurado solo introducirá problemas. Descubrir por qué su desarrollo se está acelerando y no está bien controlado debería ser el primer paso, no tratar de encontrar el código comentado.
No lo creo. El código comentado es una mala práctica y no creo que los idiomas deberían alentar a nadie a usarlo. Sí, la gente lo hace y lo he visto, pero me niego a verificar el código mío que está comentado. Dar a las personas la capacidad de administrar fácilmente el código antiguo no utilizado está más allá del alcance de un lenguaje y es algo que pertenece al ámbito del control de versiones.
También me preocupan las limitaciones técnicas. Para que esto funcione, deberá analizar los comentarios y determinar si están comentados como fuente o texto o agregar un nuevo token al idioma. Dependiendo de la complejidad actual del lenguaje, no estoy completamente seguro del impacto que esto tendría en la compilación (identificando si una línea es o no un código válido para compilar). Además, la gente esperaría que los IDE gestionen esto en tiempo real (¿existe una relación entre la complejidad de la sintaxis de un lenguaje y la capacidad de respuesta de IDE para encontrar y resaltar diversas construcciones y errores).
fuente
Incluso si solo hay una sintaxis de comentarios en el idioma que está utilizando, aún puede agregarle su propio sabor, he trabajado en proyectos donde // denotó una línea deshabilitada y // - indicó un comentario. No es tan bueno como tenerlo incorporado, pero la mayoría de los IDE no saben que has usado las diferentes sintaxis para diferentes propósitos, por lo que a veces la forma antigua de ver los ojos para ver la diferencia funciona mejor.
fuente
En oposición a las respuestas, responderé con un "SÍ, ¡debería haber una sintaxis diferente!"
Desafiaría a cualquier desarrollador para que diga que pasan incluso un día de codificación sin comentar el código. Hacerlo no significa que uno no conozca el control de la fuente o que sea flojo. Incluso como Thomas Owens dice en su respuesta disidente, " Excepto cuando estoy en un modo de código / prueba / código / prueba ..., no comento el código no utilizado " .
¿Cuánto de su tiempo se gasta en el modo código / prueba / código / prueba? ¡Para mí eso es al menos el 90% del trabajo! En este momento estoy convirtiendo un gran proyecto OSX a iOS, y el primer paso fue desactivar todo el código que se estaba rompiendo hasta que tuve un trozo que funcionó. Durante las próximas semanas iré descomentando y arreglando el código lentamente a medida que lo haga funcionar.
Hay muchos otros casos también. ¿Qué sucede cuando usa un código de ejemplo donde a menudo encuentra instrucciones como "Descomentar lo siguiente para Windows" o "Descomentar esta línea para aplicaciones solo para iPhone"?
Sí, utilizaré el control de fuente todo el tiempo. Pero también SÍ, me encantaría que hubiera una manera de distinguir el código deshabilitado de los comentarios reales.
En resumen: cualquier programador que diga que no usa comentarios para deshabilitar el código está mintiendo. Hay más en la codificación que los archivos pulidos que compromete a HEAD. Hay muchas razones válidas para el código deshabilitado.
Sí, sería bueno si hubiera una sintaxis (o al menos una convención) para distinguir los comentarios verdaderos del código deshabilitado.
fuente