web-dev-qa-db-fra.com

Quelle est la signification de #XXX dans les commentaires de code?

J'ai beaucoup vu cela dans le code, même Vim le marque comme un cas spécial. #TODO et #FIXME sont deux autres marqueurs fixes de Vim, mais qu'est-ce que #XXX signifier?

113
Jorge Vargas

XXX dans un commentaire est généralement un heads-up. Il pourrait être:

  • Quelque chose qui n'est pas implémenté correctement.
  • Quelque chose qui devrait être corrigé plus tard.
  • Soulignant un problème possible.
  • Quelque chose dont vous n'êtes pas sûr, une question.

J'ai souvent préféré une balise plus descriptive comme FIXME ou TODO ou HACK. XXX est souvent utilisé comme fourre-tout pour ce qui précède.

La recherche de 'XXX' sur le référence croisée du code FreeBSD est un bon exemple de nombreuses utilisations. Il y en a des milliers ...

120
Stef
  • NOTE: Description du fonctionnement du code (lorsqu'il n'est pas évident).
  • XXX: Avertissement sur les pièges possibles, peut être utilisé comme NOTE:XXX:.
  • HACK: Code pas très bien écrit ou mal formé pour contourner un problème/bug. Doit être utilisé comme HACK:FIXME:.
  • FIXME: Cela fonctionne, en quelque sorte, mais cela pourrait être mieux. (généralement du code écrit à la hâte qui doit être réécrit).
  • BUG: Il y a un problème ici.
  • TODO: Pas de problème, mais du code supplémentaire doit être écrit, généralement lorsque vous sautez quelque chose.

C'est du moins ainsi que l'on m'a appris ces balises. Fondamentalement, les deux premiers (NOTE et XXX) sont utilisés pour l'information et aucune action n'est requise. Alors que les trois derniers (FIXME, BUG et TODO) nécessitent une action. HACK est quelque part entre les deux (et presque jamais utilisé je pense?).

76
Peter

Quelques notes d'un juin 2005 Python proposition d'amélioration qui a été rejetée .

Choisir entre FIXME et XXX est difficile.
XXX semble être plus courant, mais beaucoup moins descriptif.
De plus, XXX est un espace réservé utile dans un morceau de code
ayant une valeur inconnue.

Ainsi, FIXME est l'orthographe préférée.
Sun dit que XXX et FIXME sont légèrement différents, donnant à XXX une gravité plus élevée.
Cependant, avec des décennies de chaos sur ce sujet et trop de millions de
développeurs qui ne seront pas influencés par Sun, il est facile de les appeler à juste titre synonymes.


Le PEP commence par,

Ce PEP a été rejeté. Bien que la communauté puisse être intéressée,
il n'y a aucun désir de rendre la bibliothèque standard conforme à cette norme.

...

Que sont les codetags?

Les programmeurs utilisent largement les conventions de balisage de commentaires de code ad hoc pour servir de rappels aux sections de code qui nécessitent une inspection ou un examen plus approfondi. Les exemples de balisage incluent FIXME, TODO, XXX, BUG, mais il en existe beaucoup d'autres largement utilisés dans les logiciels existants. Un tel balisage sera désormais appelé codetags . Ces codes peuvent apparaître dans le code d'application, les tests unitaires, les scripts, la documentation générale ou lorsque cela est approprié.


Le PEP est une lecture intéressante.

20
nik

Jetez un oeil à PEP35 . Il explique tout TODO, XXX etc. Je l'utilise tous les jours quand je ne me souviens pas exactement ce que signifie une des balises de code.

9
Ztyx

J'utilise XXX car il est plus facile à taper que TODO.

XXX est pour quand vous êtes pressé et vous y reviendrez vous-même.

TODO est pour quand vous devez le remettre à quelqu'un d'autre.

6
S.Lott

De (ancien) conventions de code Java :

Utilisez XXX dans un commentaire pour signaler quelque chose qui est faux mais qui fonctionne. Utilisez FIXME pour signaler quelque chose qui est faux et cassé.

3
Martin
3
Nick Dandoulakis

Un espace réservé, impliquant généralement le code auquel il se réfère est:

  • Laid
  • Effrayant
  • La magie

ou pire.

2
Michael Foukarakis

XXX est l'abréviation de caveat qui est légèrement différente de NOTE mais assez similaire à HACK. Il peut s'agir d'un bogue dans une bibliothèque/un code tiers utilisé et le code avec // XXX: indique que c'est une solution de contournement en raison d'un bogue dans un code tiers ou cela peut signifier "prudence" pour quelqu'un qui recherche/modifie le code pour indiquer pourquoi quelque chose est fait d'une certaine manière qui, autrement, peut sembler incorrect/inélégant à première vue. HACK est un terme générique signifiant une solution de contournement pour un problème qui pourrait être présent dans votre propre base de code ou dans une bibliothèque tierce.

1
Divick

Je crois que tandis que FIXME est pour le développeur et HACK est pour le mainteneur, XXX est pour l'utilisateur.

Par exemple, si vous ignorez le XXX et appelez cette fonction ailleurs, sans comprendre comment cela fonctionne, quelque chose d'inattendu peut se produire et la personne confrontée à ce problème sera mécontente (au moins celle qui a ajouté le XXX le pense). Vous pouvez penser que le problème disparaîtra si vous n'utilisez simplement pas cette fonction.

Mais pour FIXME, vous vous sentirez digne de simplement corriger le code pour le faire fonctionner. Et pour HACK, vous n'aurez peut-être pas de meilleur choix même si vous ne l'utilisez pas.

Si vous avez écrit XXX sur votre propre code et que quelqu'un l'a utilisé, vous pouvez vous sentir malheureux pour des raisons telles que vous avez complètement réécrit ce code, et qu'il se comporte ensuite de manières complètement différentes, et que vous avez cassé le code de quelqu'un d'autre. Mais si vous avez laissé un FIXME ou TODO à la place, vous ne vous en soucierez pas autant.

0
user23013