你如何跟踪你的编程TODO?

时间:2009-02-10 09:27:17

标签: task-management

我是那些没有待办事项清单就无法完成任务的人之一。如果它不在列表中,则它不存在。

记事本方法:

当我编程时,我一直在打开记事本,列出了当前项目的待办事项列表。我将不断重新安排这些优先级,然后我将它们交叉并在完成特定任务后将它们移动到已完成的部分。

代码评论:

一些程序员将他们的项目源代码用于:

// TODO: Fix this completely atrocious code before anyone sees it

另外,我知道有一些工具可以显示代码中所有TODO的列表。

网站任务跟踪器:

您发现什么是跟踪多个项目的待办事项列表的最佳方法?

33 个答案:

答案 0 :(得分:31)

和其他人一样,我对他们的代码感兴趣,但我也使用警告指令来生成编译器警告:

#warning TODO: Implement foobar

这样我仍然可以搜索“TODO”,但每当我建立时,他们也会对我大喊大叫。

答案 1 :(得分:24)

笔和纸。

结合天才PocketMod,它完全是完美的。 引人注目的TODO太令人满意了!

答案 2 :(得分:14)

我无法代表其他IDE,但Eclipse会在项目的源文件中搜索TODO条评论(默认情况下为FIXMEXXX)在任务视图中为您创建任务。

这会导致您查看任务视图,双击TODO任务并阅读注释的有趣情况:

// TODO: Add this functionality.

Eclipse在生成某些代码块时也会添加TODO注释,如方法实现,异常的catch块等等。

答案 3 :(得分:9)

TODO (以及其他)评论非常适合安装Visual Studio并安装ReSharper

To-Do Explorer
(来源:jetbrains.com

答案 4 :(得分:8)

虽然我没有尝试过,但我真的很喜欢tests as todos的想法。如果没有失败的测试,还有什么可以让你去?

答案 5 :(得分:5)

个人抽象待办事项

我使用Tomboy Notes或纸张来快速列出抽象高级任务。通常当我和我的经理打电话时,我只需要写下来。

源代码Specfic Todos

我在代码中使用内联TODO:/ @todo注释标记,然后使用Netbeans插件在整个项目中为我提供了一个运行的待办事项列表。由于Netbeans可以聚合来自多个项目的todo标记,因此我运行的项目数量并没有多大差异。

多人任务/待办事项

一旦我需要跟踪todos比我自己更多,我转移到项目管理软件,如OpenProj,MS Project等。此外,如果待办事项涉及错误或功能请求,我使用我们的bugtracker。其他待办事项也可由帮助台系统管理。

答案 6 :(得分:5)

来自TimeSnapper的

NextAction

答案 7 :(得分:4)

我使用AbstractSpoon中的ToDoList。它允许您将待办事项列表划分为多个项目,甚至可以被许多用户用于使用共享网络驱动器的大型项目。

答案 8 :(得分:4)

我使用钢笔和纸来记下笔记。我还在代码中使用TODO / FIXME标签,这些代码在Vim中以黄色突出显示,并由Komodo的TODO扩展程序跟踪。

对我来说最有用的补充之一就是使用Samurize将纯文本文件嵌入我的桌面(http://lifehacker.com/software/plain-text/geek-to-live--incorporate-text-files-onto-your-desktop-213280.php)。我有3个虚拟桌面,它存在于我的电子邮件桌面上,这是我每天早上第一件事。它包含一个文本文件,其中包含我需要执行的项目,并且很少会提前一周运行。

2009年11月2日星期三
- 第1项 - 第2项 2009年12月2日星期四 - 第3项

我使用具有关键字“todo”的Executor,当我想编辑/添加/删除项目时,该关键字会自动打开带有此文件的gvim。这使得它打开大约3次击键并准备修改。在我被埋葬在电子邮件和会议之前,它帮助我记住周一早上的制作动作。编辑后,它会立即反映在桌面上。

显然,对于更长更详细的事情,我依靠Roundup,Outlook提醒等等,但这是一个方便记下事情的方法,所以他们不会迷失在洗牌中。

答案 9 :(得分:3)

对于项目中的每个任务,我在问题跟踪器中创建一个新条目(Bugzilla对我来说)。

  • 一个很大的优势是您可以追踪问题ID所做的每一项更改。
  • 您可以向客户或项目成员报告任务的状态。
  • 您可以创建新的错误类型,例如“任务”,“待办事项”或“功能请求”。
  • 这是一个核心解决方案。没有当地的东西......

我的开发团队有一条规则说:“如果问题跟踪器中没有相应的条目,请不要更改任何代码。永远不要!”

答案 10 :(得分:3)

我使用内联TODO:评论,因为Visual Studio将为我跟踪这些,当然我仍然需要查看任务列表才能看到它们。我无法计算我找到TODO的次数:在审核我认为完整的一些代码时发表评论。

答案 11 :(得分:3)

项目cvs / svn区域顶层的简单纯文本文件(TODO)适用于简单项目。

答案 12 :(得分:3)

我会在FIXME和TODO之间做出明显的区别。 FIXME是一个关键,必须在提交/发布之前修复。 TODO可以活得更久但最终应该清理干净。

答案 13 :(得分:2)

我创建了一个构建任务,从我的代码文件中挑选出// TODO:行,并生成我在团队城市中包含的报告。它可以让您快速查看项目的任何未完成情况,而无需查看。

您还可以将CodeTagsPluginTrac

一起使用

答案 14 :(得分:2)

与其他人提到的一样,我在代码注释中使用标准FIXME / TODO / XXX,然后可以使用各种工具在IDE中找到任务列表。我还使用hudson's task scanner plugin来跟踪所有内容,因为我是图表的傻瓜。

答案 15 :(得分:1)

Eclipse会跟踪您的TODO并自动将它们列在适当的窗口中。如果你不需要高级功能,我觉得它足够强大。

答案 16 :(得分:1)

对于C ++项目(native / ATL):

#ifndef _TODO_H_
#define _TODO_H_
#pragma once

// from atldef.h:
#ifndef _ATL_STRINGIZE
#define __ATL_STRINGIZE(_Value) #_Value
#define _ATL_STRINGIZE(_Value) __ATL_STRINGIZE(_Value)
#endif

// put x in quotes, no need to use #pragma!
#define __TODO(x)           __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : TODO: "x)) 
#define __WTF(x)            __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : WTF?! "x)) 
// prefer to use ISO-formatted date
#define __BUGFIX(date, x)   __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : BUGFIX: "#date" "x)) 
#define __CHANGE(date, x)   __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : CHANGE: "#date" "x)) 

#endif _TODO_H_

为C#寻找类似的东西。

答案 17 :(得分:1)

我使用Sandglaz并将我的待办事项放在3列,下一次和稍后(有点像他们的blog,但只有一行)...并且它易于使用且快速。我是一名自由职业者,所以我一次只做几个项目,所以它对我有用

我使用待定测试只是为了提醒自己编写测试。我使用Rspec,所以它有构建它。

答案 18 :(得分:1)

alt text http://www.86th.org/hudson.jpg 我们使用Hudson中的“Open Tasks Trend”功能,这适用于大量语言。对于我们的C#项目,我们有3个级别的任务,这是通过不同的TODO:样式注释完成的。

  • 高优先级 FIXME上的比赛:,HARDCODED:或HACK:

  • 中等优先级 TODO上的比赛:

  • 低优先级 关于MEH的比赛:或CODEREVIEW:

然后,Hudson将获取此列表和趋势图,如图所示,以及具有可排序,可过滤的任务列表,它将在网页上显示带有链接的消息,这些链接将带您直接进入在Hudson的源代码中输入。

另外,我们可以使用CODEREVIEW轻松设置代码评论的兴趣点:并且有一个很好的简明列表可以打印出来。

答案 19 :(得分:1)

还有Hudson的Task Scanner插件(如果它适合您的环境)。有了它,您可以在持续集成构建报告中跟踪TODO / FIXME的数量。

答案 20 :(得分:1)

我非常喜欢Mylyn:集成到Eclipse中,可以与许多跟踪器一起使用,也可以不使用(本地任务),并实现像重点UI这样的新概念。

答案 21 :(得分:1)

哇,我昨天刚收到这个问题。经过一番搜索,我确定了ReminderFox Firefox扩展程序。它完全集成到浏览器中,并且每当您在任务到期时打开浏览器时都会弹出窗口提醒您。

答案 22 :(得分:1)

我非常喜欢tracks。它具有GTD的味道而没有过于严格。

在我想到它的时候,我可以迅速打击那里的东西,然后不必担心在那之后遗忘。

答案 23 :(得分:1)

在对一个合适的“待办事项列表”应用程序进行了广泛的搜索后,我决定使用mylyn提供的mylyn。

创建和管理任务很容易。可以导入任务并将其链接到Bugzilla或许多其他不同的任务存储库。它还有一个“任务上下文”,它可以突出显示与任务相关的文件和隐藏不相关的文件(这比我预期的要有用得多)。

答案 24 :(得分:1)

我使用emacs org-mode不仅可以跟踪代码TODO,还可以跟踪我的整个生活。它作为一个非常强大的大纲,具有一些电子表格和日历功能。我使用mercurial进行轻量级版本处理和不同机器之间的简单复制。

效果出奇的好。

答案 25 :(得分:1)

在Eclipse中编写Java时,我觉得它非常有用,正如你所说的“胡椒我的源代码带有// TODO:注释 - 主要是因为Eclipse查找项目中的每一个并为我编译一个任务列表= )在Visual Studio中,有一个Task List面板,我有时使用它,但我发现它不像在Eclipse中使用注释那样简化。

答案 26 :(得分:1)

我使用eclipse作为IDE,它将所有TODO收集到列表中并在大纲中显示。非常简单实用。

答案 27 :(得分:0)

OmniFocus - 我已经尝试了很多跟踪ToDos的方法,这是迄今为止最好的方法。如果你有一台Mac,这就是你要走的路。 iPhone应用程序也很棒。

答案 28 :(得分:0)

doxygen可以追踪此类问题

答案 29 :(得分:0)

当我有许多待办事项时,我发现追踪它们毫无用处。你最终会得到数百个无法完成的待办事项。

只写你所问的(老板)并做每天带来最大好处的事情。

但我有下一个清单。我写了我目前在顶部做的事情和我需要修复的事情来完成它。我的下一个清单通常可以在几小时或几天内完成。

答案 30 :(得分:0)

如果您使用Continouis集成,它可以为您完成工作。例如,我使用hudson与这个插件http://wiki.hudson-ci.org/display/HUDSON/Task+Scanner+Plugin这是非常好的imo。您有一个图表,显示您是否在构建之间添加了新任务,并且您可以浏览它们或旧的任务以获得“开放”的概述。

答案 31 :(得分:0)

我们的一个源代码模块中充斥着内联#pragma todo行。构建输出受到污染,因此我们永远无法确定何时有新的编译器警告。有些待办事项已存在多年,最初的开发人员早已离开公司。

答案 32 :(得分:-1)

对于小型项目,我使用SCM的提交注释。这些评论看起来像这样:

  

MyProjectName:完成此操作,修复了该问题。杀手级功能即将实施。另一个功能已编码但尚未测试。应该重构这个模块。