如何标记代码以便以后可以回来并进行处理?

Jon*_*ury 61 c# comments

在C#中我使用#warning#error指令,

#warning This is dirty code...
#error Fix this before everything explodes!
Run Code Online (Sandbox Code Playgroud)

这样,编译器会让我知道我还有工作要做.您使用什么技术来标记代码,这样您就不会忘记它?

Gug*_*uge 85

与标记它们// TODO,// HACK或其他注释标记,将在Visual Studio中的任务窗格中显示出来.

请参阅使用任务列表.

  • 我曾经做过// @ TODO:但有时候我会忘记检查任务窗格. (3认同)
  • #@todo:在​​Python中 (2认同)
  • @Jon T:抛出一个新的NotImplementedException()怎么样.这对你有帮助吗?我有时也这样做. (2认同)

Ulf*_*ack 26

Todo评论也是如此.

我们还添加了一个特殊的关键字NOCHECKIN,我们在源代码控制系统中添加了一个commit-hook(很容易用至少cvs或svn),它扫描所有文件并拒绝签入文件,如果它找到NOCHECKIN的文字随处可见.

如果您只想测试一些内容并确保它不会被意外地检入(在提交源代码控制的所有内容的差异期间通过注意的眼睛),这非常有用.


Chr*_*ees 14

我使用//TODO: //HACK:throw new NotImplementedException();我的方法的组合来表示未完成的工作.此外,我在Visual Studio中添加不完整的书签.


Eli*_*lie 10

// TODO:人的名字 - 请解决这个问题.

这是在Java中,您可以查看Eclipse中的任务,它将找到对此标记的所有引用,并可以按人员对它们进行分组,以便您可以将TODO分配给其他人,或者只查看您自己的TODO.


Joh*_*yre 6

如果我必须在变更过程中丢弃所有内容,那么

#error finish this
Run Code Online (Sandbox Code Playgroud)

如果这是我以后应该做的事情,它会进入我的bug跟踪器(用于所有任务).


McK*_*eG1 6

"待办事项"的评论在理论上是很好的,但在实践中并不是那么好,至少在我的经验中.如果你要被拉开足够长的时间来需要它们,那么它们往往会被遗忘.

我赞成Jon T的一般策略,但我通常只是暂时破解代码 - 我经常插入一个故意未定义的方法引用,让编译器提醒我需要回到的地方:

PutTheUpdateCodeHere();
Run Code Online (Sandbox Code Playgroud)


Dus*_*tin 5

在禁用状态下添加测试.它们出现在所有构建报告中.

如果这不起作用,我提交一个错误.

特别是,我没有看到TODO评论的数量以任何有意义的方式减少.如果我在撰写评论时没有时间去做,我不知道为什么我以后会有时间.


小智 5

我真正喜欢的一种方法是"黑客爆炸",正如奥伦·艾尼在这里所展示的那样.

try
{
   //do stuff
   return true;
}
catch // no idea how to prevent an exception here at the moment, this make it work for now...
{
  if (DateTime.Today > new DateTime(2007, 2, 7))
    throw new InvalidOperationException("fix me already!! no catching exceptions like this!");
  return false;
}
Run Code Online (Sandbox Code Playgroud)

  • +1对于幽默价值,尽管这绝对是可怕的! (5认同)