Яке значення #XXX у коментарях до коду?


126

Я багато бачив у коді, навіть vim відзначає це як особливий випадок. #TODOі #FIXMEдва інших маркери виправлення vim виділяються, але що це #XXXозначає?


7
Питання - це питання про кодовий тег або прокоментувати найкращі практики програмування Python. Існує обговорення пропозиції щодо розширення програми Python. Питання заслуговує на те, щоб воно було збережене на SO. Це можна було б сказати трохи краще.
nik

Відповіді:


140

XXXу коментарі, як правило, голова. Це може бути:

  • Щось не реалізовано повністю коректно.
  • Щось, що слід виправити згодом.
  • Виділення можливого проблемного місця.
  • Щось, в чому ви не впевнені, питання.

Я часто віддавав перевагу більш описовий тег , як FIXMEабо TODOабо HACK. XXXчасто використовується як спіймана все вищезазначене.

Пошук "XXX" за посиланням коду FreeBSD - хороший приклад багатьох застосувань. Є тисячі ...


Найцікавіше, що я використовую це самостійно. XXX або #XXX в основному відключає компілятор і нагадує мені повернутися до чогось. Зазвичай посилання на вказівники або невідоме раніше значення або ім'я змінної.
бобі

5
Це підтвердило мою первісну здогадку. Це просто тег улов усіх, щоб вказати на інших програмістів, щоб виділити цей коментар як щось на що подивитися.
Хорхе Варгас

Не намагаються троліти, але "HACK" не є описовим. Насправді це дуже неоднозначно. Для мене це могло означати принаймні 3 речі.
Ярослав Рахматуллін

2
@ ЯрославРахматуллін у вихідному коді я завжди читав би це в сенсі "це некрасива робота, але, здається, працює досить добре" - те, що ви хотіли б почистити пізніше, але не є терміновим. Я його не використовував (я зазвичай використовую TODOабо XXXзамість цього), але саме так я би його інтерпретував.
Ірідайн

92
  • NOTE: Опис того, як працює код (коли він не очевидний).
  • XXX: Попередження про можливі підводні камені, може використовуватися як NOTE:XXX:.
  • HACK: Не дуже добре написаний або неправильно сформований код, щоб обійти проблему / помилку. Слід використовувати як HACK:FIXME:.
  • FIXME: Це працює, начебто, але це можна зробити краще. (зазвичай код написаний поспіхом, який потребує переписування).
  • BUG: Тут є проблема.
  • TODO: Немає проблем, але додатковий код потрібно писати, як правило, коли ви щось пропускаєте.

Принаймні так мене вчили про ці мітки. В основному перші два ( NOTEі XXX) використовуються для інформації, і ніяких дій не потрібно. У той час як останні три ( FIXME, BUGі TODO) вимагають дій. HACKзнаходиться десь посеред (і я думаю, що майже ніколи не використовувався?).


3
Хороший список. Мені також подобаються LAZY(не такі критичні, як FIXME або HACK) і OCD(відоме перенапруження).
Брендан Берд

2
Ви справді використовуєте XXX як це? Я помітив, що в XXX є набагато вищий пріоритет, тобто "це щось, що потрібно виправити, перш ніж цей код навіть буде переданий на контроль редагування". Ось так використовується в Google, автоматично застосовується, тому ви можете бачити XXX під час перегляду коду, але неможливо надіслати код, поки не зникнуть XXX. Примітки довшого терміну дії
Дон Хетч

21

Деякі нотатки з пропозиції про розширення Python у червні 2005 року було відхилено .

Вибір між FIXMEі XXXскладний.
XXXвидається більш поширеним, але набагато менш описовим.
Крім того, XXXє корисним заповнювачем у фрагменті коду
, який має невідоме значення.

Таким чином, FIXMEє кращим написанням.
Sun каже, що XXXі FIXMEдещо відрізняються, надаючи XXXбільш високої чіткості.
Однак, незважаючи на десятиліття хаосу на цю тему, і занадто багато мільйонів
розробників, які не будуть впливати на Sun, легко їх правильно називати синонімами.


PEP починає,

Цей PEP був відхилений. Незважаючи на те, що громада може бути зацікавлена,
немає бажання привести стандартну бібліотеку у відповідність із цим стандартом.

...

Що таке кодекси?

Програмісти широко використовують спеціальні конвенції щодо розмітки коментарів до коду, щоб служити нагадуванням про розділи коду, які потребують більш детального огляду або перегляду. Приклади розмітки включають в себе FIXME, TODO, XXX, BUG, але є ще багато в широкому використанні в існуючому програмному забезпеченні. Така розмітка відтепер буде називатися кодовими тегами . Ці кодові позначки можуть відображатися в коді програми, тестових одиницях, сценаріях, загальній документації або де це можливо.


PEP - цікаве прочитання.


10

Погляньте на PEP350 . Це пояснює все TODO, XXXі т. Д. Я використовую це щодня, коли не можу точно згадати, що означає один з тегів коду.


1
Чи знаєте ви, чи PEP350 є джерелом цих етикеток? Чи знаєте ви старіші документи (з епохи Unix), що описують, як користуватися цими мітками?
Ярослав Рахматуллін

6

Я використовую, XXXтому що це простіше, ніж набрати TODO.

XXX це коли ти поспішаєш і сам повернешся до цього.

TODO це тоді, коли вам доведеться передати його комусь іншому.


XXX означає "Я поспішаю і сам повернусь до цього". TODO означає "Це офіційна частина майбутнього запиту про відставання, який буде призначений комусь іншому". Це буквальні значення.
С.Лотт

2
І в якому RFC є ці "буквальні значення"? Або для цього є якесь інше цитування?
Рендалл

6
@Randall: "цитування"? Вибачте, це лише моє розуміння, прочитавши багато коду.
С.Лотт


3

З (старого) умовного коду Java :

Використовуйте XXX у коментарі, щоб позначити щось неправдиве, але працює. Використовуйте FIXME для позначення фальшивого та зламаного.


1

XXX короткий для застереження, який трохи відрізняється від NOTE, але досить схожий на HACK. Це може бути помилка в сторонній бібліотеці / коді, який використовується, і код з // XXX: вказує на те, що або вона вирішена через помилку в коді третьої сторони, або може означати "обережність" для того, хто шукає / змінює код, щоб вказати, чому щось робиться певним чином, що в іншому випадку може здатися неправильним / неелегантним на перший погляд. HACK - це загальний термін, що означає вирішення проблеми, яка може бути наявна у вашій власній кодовій базі або в сторонній бібліотеці.


0

Я вважаю, FIXMEщо розробник, а HACKсаме для технічного обслуговування - XXXце для користувача.

Наприклад, якщо ви ігноруєте XXXта називаєте цю функцію в іншому місці, не розуміючи, як вона працює, може статися щось несподіване, і людина, яка займається цим питанням, буде незадоволена (принаймні, той, хто додав XXXтак, думає). Ви можете подумати, що проблеми не буде, якщо ви просто не скористаєтесь цією функцією.

Але бо FIXMEви будете почувати себе гідними просто виправити код, щоб він працював. І тому HACK, можливо, ви не матимете кращого вибору, навіть якщо не будете використовувати його.

Якщо ви писали XXXвласний код і хтось ним користувався, ви можете почувати себе нещасними з причин, як ви повністю переписали цей код, і він поводиться зовсім по-іншому, і ви зламали чужий код. Але якщо ви залишили FIXMEабо TODOзамість цього, ви не будете так сильно піклуватися.


0

Я використовую // XXX, тому мені не потрібно запам’ятовувати номери рядків. Натомість я просто шукаю XXX, коли хочу повернутися до цього фрагмента коду.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.