Creo que TODO
comentarios, hasta cierto punto, tiene sentido. En particular, si está trabajando de manera iterativa (como es común en las tiendas ágiles y TDD), habrá cosas que reconozca que son que se necesitarán en poco tiempo, pero que no desea desviarse. Implementar en ese momento y allí.
Lo que se pone feo es cuando dichos comentarios permanecen en el código base. Mientras está trabajando activamente en una función, está bien dejarlos dentro, pero tan pronto como se acerque a completar la función, debe concentrarse en deshacerse de ellos. Si no quiere pasar por el trabajo de realmente reemplazarlos con un código de trabajo adecuado, entonces al menos elimine la funcionalidad relevante. Tomar prestado el ejemplo de @ JoonasPulakka, donde el código dice inicialmente
ConnManager.getConnection("mydatabase"); // FIXME: DB name should be configurable
puedes cambiar eso por algo como
ConnManager.getConnection(GetDatabaseName());
con, por el momento, GetDatabaseName () es un código auxiliar que simplemente devuelve la misma cadena con la que comenzó. De esa manera, hay un punto claro de expansión futura, y sabe que cualquier cambio realizado allí se reflejará en cualquier lugar donde se necesite el nombre de la base de datos. Si el nombre de la base de datos es incluso moderadamente genérico, esto puede ser una mejora masiva en la capacidad de mantenimiento.
Personalmente, uso una palabra clave propia en lugar de estrictamente TODO
, aunque la intención es la misma: para marcar las cosas que sé que necesitarán volver a visitar. Además, antes de verificar mi código, hago una búsqueda global de código fuente para esa palabra clave, que se elige de tal manera que normalmente no debería aparecer en ninguna parte del código. Si se encuentra, sé que olvidé algo y puedo seguir adelante y arreglarlo.
En cuanto a incluir el nombre / la firma del programador con el comentario, creo que eso es excesivo si tiene un sistema de control de versión de código fuente ( do , ¿verdad?). En ese caso, su función de culpar te dirá quién agregó el comentario, o más exactamente quién verificó por última vez un cambio que tocó el comentario. Por ejemplo, en Visual Studio, esto se logra fácilmente mediante el uso de la función "Anotar" que se encuentra entre las funciones de control de origen.