Where does the XXX comment prefix in Eclipse come

2019-03-14 21:35发布

问题:

I was just wandering why is the prefix XXX ?

As far as I know its used for notes/reminders (or at least this is what I use it for and that is what the people on most of the links I googled use it for).

So does anyone know where the XXX prefix come from ?

回答1:

From the Hacker's Dictionary entry for "XXX":

A marker that attention is needed. Commonly used in program comments to indicate areas that are kluged up or need to be. Some hackers liken `XXX' to the notional heavy-porn movie rating. Compare FIXME.



回答2:

From Sun/Oracle's Java code conventions, section 10.5.4:

Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken.



回答3:

XXX, along with FIXME and TODO, is known in Eclipse as a task tag, and is indexed by the IDE to let you find the spots marked with those tags easily. You can edit such tags in the Eclipse Preferences -> Java -> Compiler -> Task Tags.

As to where it comes from: it probably emerged form the "tags" that programmers spontaneously wrote in their code to quickly mark a given line. While FIXME and TODO are explicit enough, the reason XXX was used could be a combination of these reasons:

  • The string "XXX" does not usually occur in regular source code and is easy to look for with tools such as grep or a simple text search in an editor;
  • Traditionally, "X marks the spot" which needs attention; triple X even more so;
  • The X key is very close to the Command/Alt/Windows keys and is easy to reach, being on the lower row of the keyboard.

I can't think of anything else...



回答4:

Various reasons:

  1. It's easy to search for.
  2. No collision, as no sane person would use it as a variable.
  3. It can used to mark code that needs e*X*tra special attention, dangerous code, not to be seen by underaged, etc.


回答5:

I've worked with a team where XXX was used to point out a "bug or task that was not yet entered in Trac.". After it was entered in Trac the comment would be changed to TODO with the ID appended.

To Eclipse though, it's just a marker like TODO and FIXME. I imagine that it's originally used as a strong form of TODO. You usually see comments like this:

// TODO: Need to optimize this once n becomes greater than 1000.

But sometimes you'll have a comment like:

// TODO: Fix SQL injection bug before production release!

Unfortunately a quick grep wont make that SQL injection bug stand out among the 1000s of other TODOs. Using XXX here would help mark things that must be done before a milestone/release etc.



回答6:

There's also a reference to it on Wikipedia:

XXX to warn other programmers of problematic or misguiding code.