如何管理@todo编程任务?

26

多年来,我的代码充斥着这种类型的注释:

//TODO : Add ...
...
/*
 *TODO : Fix ...
 *
 */

现在我想创建自己的 @todo javadoc 注释...但在这之前,我想知道你们是否有更好的方法来管理你们的编程任务清单?


3
这可以是与语言无关的… - R. Martinho Fernandes
注释不是语言无关的。 - TofuBeer
@Martinho和TofuBeer:这是源代码注释...在大多数情况下,它与语言紧密相关...但在“多语言”项目中,像IDE这样的不可知解决方案可能非常好... - wj.
1
我喜欢在注释中使用"@TODO"(适用于该语言)。通过保持一致,它们可以被grep和计数。 - Michael Easter
我为此目的编写了http://srcoftruth.com。 - schellsan
13个回答

48
您的 IDE(如 Eclipse、NetBeans 等)有一个任务插件,可以检测所有的“TODO”并将它们显示在列表中。在 Eclipse 中,它是“窗口 -> 显示视图 -> 其他 -> 任务”。无需编写自己的注释。

在NetBeans中,它被称为“操作项”。 - Pavel_K

40

TODO语句存在永久保留在代码中的风险,这是不好的,因为 // TODO详细回答


10
比起让实际问题永远存在于代码中,这样做要好得多。 - Oliver Watkins
@OliverWatkins 我同意。TODO 至少有两个优点:它将某些东西标识为待处理问题,而且很容易搜索。尽管如此,我看到过几十条 TODO 评论,它们从未被其作者“解决”。对我来说,这只是未完成的工作。 - Daniel Daranas
3
我通常在 TODO 旁边写上一个工单号,这样任何人在执行其他任务时遇到这段代码时,就能看到此处存在哪些技术债务。这有助于分析它如何影响任务完成(例如必须完成此项技术债务,或者你的任务可能会因难度高于预估而被拒绝)。如果代码中没有 TODO,则可能无法意识到在满足业务需求时已经解决了某些技术债务。 - user3707125
3
太棒了。 - glenn jackman

14

我基本上使用三种系统来处理不同种类的待办事项:

  • 纸质笔记本用于短期项目(例如今天或本周)
  • TODO注释加上IDE支持(例如Eclipse任务视图)用于较小的长期项目
  • 问题跟踪器,如Trac,再加上IDE支持(例如Mylyn),用于更复杂的长期项目

1
为问题跟踪器(以及论文!)点个赞。 - Brian Agnew

6

也许Doxygen能帮到你?

Doxygen可以识别那些///@TODO并创建一个列表。

由于Doxygen可以使用Javadoc风格的注释,因此我猜尝试它可能相当容易。


6

我认为不应该使用@todo javadoc注释,因为它不应该出现在文档中。
文档应该是公开的,不适合TODOs。
TODOs也应该放在相关的代码附近,这是使用注释的一个优点。


5

对于vim,还有这个任务列表脚本,受Eclipse的任务列表启发,它会在您的文本文件中搜索TODO、FIXME等内容,并将它们显示为一个额外缓冲区的列表(请参见屏幕截图)。


3

我使用FIX!代替TODO。感叹号的数量表示优先级。IntelliJ可以为此设置自定义过滤器,因此我可以查看等级-3的"FIX!!!"注释并解决这些问题。


3
如果你使用Maven,你可以使用taglist-maven-plugin来扫描源文件中的标签(任何你想要的标签,这是可配置的),并生成报告来记录它们的出现情况。

Taglist Maven插件会生成一个报告,列出代码中发现的各种标签,例如@todo//TODO标签。

但是追踪标签只是一部分,修复它们需要更多的时间和努力 :)

+1:我刚看了一个样本报告:真的很有趣!! - wj.

2

对于像我通常的//todo这样的小任务,我使用Eclipse Mylyn中的本地任务;对于更大的任务(即使我认为它们可能被称为功能或错误),我使用Trac;如果你发现你的代码充满了TODO,那么就是时候使用一个票据管理系统了。


2
也许你可以使用find和grep在你的项目中搜索这些关键词。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接