我在代码中见过很多这样的例子,甚至 vim 都将其标记为特殊情况。#TODO和 #FIXME是另外两个固定标记 vim 高光,但是 #XXX是什么意思?
#TODO
#FIXME
#XXX
可能是你不知道怎么处理的案子。 看看这个: TODO/FIXME/XXX/HACK 语句的列表视图
(资料来源: Googleecode.com)
XXX在评论中通常是一个提醒,它可以是:
XXX
我通常更喜欢更具描述性的标签,如 FIXME、 TODO或 HACK。XXX经常被用来捕捉以上所有情况。
FIXME
TODO
HACK
在 交叉引用 FreeBSD 代码上搜索“ XXX”是许多用途的一个很好的例子。
一些 被拒绝的2005年6月 Python 增强提议的笔记。
在 FIXME和 XXX之间选择是困难的。 XXX似乎更常见,但描述性要少得多。 此外,XXX是一段代码中非常有用的占位符 具有未知的价值。 因此,FIXME是首选的拼写。 Sun 说,XXX和 FIXME略有不同,使得 XXX的严重程度更高。 然而,几十年来,这个话题一直处于混乱之中,而且数以百万计 不受 Sun 影响的开发人员,很容易把他们称为同义词。
在 FIXME和 XXX之间选择是困难的。 XXX似乎更常见,但描述性要少得多。 此外,XXX是一段代码中非常有用的占位符 具有未知的价值。
因此,FIXME是首选的拼写。 Sun 说,XXX和 FIXME略有不同,使得 XXX的严重程度更高。 然而,几十年来,这个话题一直处于混乱之中,而且数以百万计 不受 Sun 影响的开发人员,很容易把他们称为同义词。
PEP 的开头是,
这个 PEP 已经被拒绝了。虽然社区可能感兴趣, 不希望使标准图书馆符合这个标准。
...
什么是代码标签? 程序员广泛使用特别代码注释标记约定来服务 作为代码中需要更仔细检查的部分的提醒 标记的例子包括 FIXME、 TODO、 XXX、, 但是在现有的软件中广泛使用的还有很多 标记从此被称为 密码标签。这些代码标签 可能出现在应用程序代码、单元测试、脚本、一般 文件,或任何合适的地方。
什么是代码标签?
程序员广泛使用特别代码注释标记约定来服务 作为代码中需要更仔细检查的部分的提醒 标记的例子包括 FIXME、 TODO、 XXX、, 但是在现有的软件中广泛使用的还有很多 标记从此被称为 密码标签。这些代码标签 可能出现在应用程序代码、单元测试、脚本、一般 文件,或任何合适的地方。
PEP 是一本有趣的读物。
我使用 XXX是因为它比 TODO更容易输入。
XXX是当你赶时间的时候用的,你自己会回来的。
TODO是当你不得不把它交给别人时使用的。
NOTE
NOTE:XXX:
HACK:FIXME:
至少我是这么被教导这些标签的。基本上前两个(NOTE和 XXX)用于信息,不需要操作。而最后三个(FIXME、 BUG和 TODO)确实需要采取行动。HACK介于两者之间(我认为它几乎从未使用过?).
BUG
XXX 是警告的简称,它与 NOTE 略有不同,但与 HACK 非常相似。它可能是在第三方库/正在使用的代码和//XXX: 的代码中的一个错误,表明或者它是由于第三方代码中的错误,或者它可能意味着“警告”有人查看/修改代码,以表明为什么某些事情是以某种方式完成的,否则可能看起来不正确/不雅观的第一眼。HACK 是一个通用术语,意思是针对可能出现在您自己的代码库或第三方库中的问题的解决方案。
我相信,虽然 FIXME是为开发人员准备的,而 HACK是为维护人员准备的,但 XXX是为用户准备的。
例如,如果您忽略 XXX并在其他地方调用这个函数,而不理解它是如何工作的,那么可能会发生一些意想不到的事情,处理这个问题的人会不高兴(至少添加 XXX的人是这么认为的)。您可能认为如果不使用这个函数,问题就会消失。
但是对于 FIXME,您会觉得仅仅修复代码来使其工作是值得的。对于 HACK,即使你不使用它,你也没有更好的选择。
如果你用自己的代码编写了 XXX,有人使用了它,你可能会因为一些原因感到不高兴,比如你完全重写了那段代码,然后它以完全不同的方式运行,你破坏了别人的代码。但是如果你留下的是 FIXME或者 TODO,你就不会那么在意了。
看看 PEP350。它解释了所有的 TODO,XXX等。我每天都用它,当我不记得其中一个代码标签到底是什么意思的时候。
来自(旧版) Java 代码约定:
在评论中使用 XXX 标记一些虚假但有效的内容。使用 FIXME 标记虚假和破碎的东西。
我使用//XXX,所以我不必记住行号。相反,当我想返回到那段代码时,我只需要搜索 XXX。