Java 如何管理@todo编程内容?

Java 如何管理@todo编程内容?,java,javadoc,project-management,Java,Javadoc,Project Management,多年来,我的代码中充满了这样的注释: //TODO : Add ... ... /* *TODO : Fix ... * */ 现在我想创建我自己的javadoc注释。。。但在此之前,我想知道你们是否有更好的方法来管理todo编程内容?对于小任务,如我通常的//todo,我在Eclipse Mylyn中使用本地任务,对于更大的任务(即使我认为这些可能被称为特性或bug),我使用Trac;如果你发现你的代码中充满了TODO,那么是时候使用一个票证管理系统了。你的IDE(Eclipse、Ne

多年来,我的代码中充满了这样的注释:

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

现在我想创建我自己的javadoc注释。。。但在此之前,我想知道你们是否有更好的方法来管理todo编程内容?

对于小任务,如我通常的//todo,我在Eclipse Mylyn中使用本地任务,对于更大的任务(即使我认为这些可能被称为特性或bug),我使用Trac;如果你发现你的代码中充满了TODO,那么是时候使用一个票证管理系统了。

你的IDE(Eclipse、NetBeans等)有一个任务插件,它可以检测所有的
TODO
并将它们显示在一个列表中。在Eclipse中,它是
Window>Show View>Other>Tasks


无需编写自己的注释。

对于vim,还有一个脚本,灵感来自Eclipse的任务列表,它在文本文件中抓取TODO、FIXME等,并将它们作为列表显示在额外的缓冲区中(请参阅)。

我基本上使用三种系统来处理不同类型的TODO项目:

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

也许您可以使用find和grep在项目中搜索这些关键字

todo标志的问题与警告(例如java编译器、checkstyle)的问题相同。如果它们经常出现,您将忽略它们。在您的情况下,我会通过构建系统(例如maven或ant)的报告来跟踪它们。在每次迭代结束时,您应该制定一条规则,即todo标志的数量减少

减少待办事项标志意味着:

  • 解决它们
  • 删除它们,因为它们过时了(如果您从不整理代码,这种情况经常发生)

通常,不要对所有任务使用todo标志。对我来说,它们只是一个小小的提醒或重构任务。更大的任务应始终由票证系统(如trac或jira)进行跟踪。

也许Doxygen可以帮助您

Doxygen识别这些//@TODO:s并用它们创建一个列表


由于Doxygen可以使用Javadoc风格的注释,我想这很容易尝试。

如果您的TODO语句对您有那么多的困扰,并且在看到它们时引起您那么多的焦虑,我会在构建过程中编写一个小脚本,检测编译并使其失败。让它以警告语句失败的方式失败。

我使用修复!而不是去做。感叹号的数量表示优先级。IntelliJ允许您为这些设置自定义过滤器,因此我可以查看3级“修复!!!”注释并处理这些注释。

我不会使用
@todo
javadoc注释,因为在我看来它不应该进入文档。
文档应该是公开的,不适合TODO。

TODO还应该接近它们所涉及的代码,这是使用注释的一个优势

如果您使用的是Maven,则可以使用扫描源文件中的标记(您想要的任何标记,这是可配置的),并在它们出现时生成

标记列表Maven插件 生成关于各种标记的报告 在代码中找到,如
@todo
//TODO
标记


但是跟踪标记是很容易的,修复它们有点困难并且需要更多的时间:)

TODO语句有永远留在代码中的风险,这是不好的,因为在一个小团队中TODO详细的回答是可以的,但是如果你以任何方式开放源代码项目或拓宽开发人员的访问范围,其他变体,如TO_DO、fixme、XXX、NOTE、HACK、bug、“您的缺陷工具”等等,无论如何都需要扫描。 有点重,但我的待办事项协议如下:

TODO:yy mm dd:作者:您的评论


最后,发表你留下的评论是战略性的,而不是设计声明或意见。

这可能是语言不可知的…注释不是语言不可知的…@Martinho&TofuBeer:这是源代码评论。。。在大多数情况下,它与语言紧密相连。。。但是在“multilangage”项目中,像IDE这样的不可知解决方案可能非常好……我喜欢注释中的“@TODO”(适合该语言)。通过保持一致性,他们可以被美化和计数。我写这篇文章是为了这个目的,我不知道这是存在的。谢谢我们为Hudson使用了一个插件,它显示了一段时间内的TODO——它是公开的和可见的,这意味着随着时间的推移会有更多的动力来减少它。+1对于问题跟踪者(和论文!)+1:我刚刚播了一个示例报告:真的很有趣!!这比将实际问题留在代码中要好forever@OliverWatkins我同意。TODO至少有两个优点:它将某个问题识别为未决问题,并且易于搜索。尽管如此,我还是看到了许多作者从未“解决”过的待办事项评论。对我来说,这只是一项未完成的工作。我通常在TODO旁边写一个票证号码,这样任何在执行其他任务时偶然发现该代码的人都会看到这里存在哪些技术债务。这样可以更容易地分析它对任务完成的影响(例如,您必须完成这项技术债务,或者您的任务可能会被拒绝,比预计的困难得多)。如果代码中没有TODO,那么您可能不知道在执行某些业务需求时已完成的技术债务。这太棒了。在NetBeans中,这是操作项