Eu acho que os TODO
comentários, até certo ponto, fazem sentido. Especialmente se você está trabalhando de forma iterativa (como é comum em lojas ágeis e TDD), haverá coisas que você reconhece são vai ser necessário antes de tempo, mas que você não quer fazer o desvio para implementar a direita então e lá.
O que fica feio é quando esses comentários permanecem na base de código. Enquanto você estiver trabalhando ativamente em um recurso, não há problema em deixá-lo dentro, mas assim que se aproximar da conclusão do recurso, você deve se concentrar em se livrar dele. Se você não deseja realizar o trabalho de substituí-los por um código de trabalho adequado, considere pelo menos a funcionalidade relevante. Tomando emprestado o exemplo de @ JoonasPulakka, em que o código diz inicialmente
ConnManager.getConnection("mydatabase"); // FIXME: DB name should be configurable
você pode mudar isso para algo como
ConnManager.getConnection(GetDatabaseName());
por enquanto, GetDatabaseName () é um esboço que simplesmente retorna a mesma string com a qual você começou. Dessa forma, há um ponto claro de expansão futura e você sabe que quaisquer alterações feitas lá serão refletidas em qualquer lugar em que o nome do banco de dados seja necessário. Se o nome do banco de dados for moderadamente genérico, isso pode ser uma grande melhoria na capacidade de manutenção.
Pessoalmente, uso uma palavra-chave própria em vez de estritamente TODO
, embora a intenção seja a mesma: marcar as coisas que sei que precisam ser revisadas. Além disso, antes de fazer check-in do meu código, faço uma pesquisa de código-fonte global para essa palavra-chave, escolhida de forma que normalmente ela não apareça em nenhum lugar do código. Se for encontrado, sei que esqueci algo e posso ir em frente e consertá-lo.
Quanto incluindo o programador nome / assinatura com o comentário, eu acho que é um exagero , se você tem um sistema de código-fonte controle de versão (você fazer , certo?). Nesse caso, seu recurso de culpa informará quem adicionou o comentário ou com mais precisão quem fez o check-in pela última vez em uma alteração que tocou no comentário. Por exemplo, no Visual Studio, isso é facilmente realizado usando o recurso "Anotar" encontrado entre os recursos de controle de origem.