Я багато бачив у коді, навіть vim відзначає це як особливий випадок. #TODOі #FIXMEдва інших маркери виправлення vim виділяються, але що це #XXXозначає?
Я багато бачив у коді, навіть vim відзначає це як особливий випадок. #TODOі #FIXMEдва інших маркери виправлення vim виділяються, але що це #XXXозначає?
Відповіді:
XXXу коментарі, як правило, голова. Це може бути:
Я часто віддавав перевагу більш описовий тег , як FIXMEабо TODOабо HACK. XXXчасто використовується як спіймана все вищезазначене.
Пошук "XXX" за посиланням коду FreeBSD - хороший приклад багатьох застосувань. Є тисячі ...
TODOабо XXXзамість цього), але саме так я би його інтерпретував.
NOTE: Опис того, як працює код (коли він не очевидний).XXX: Попередження про можливі підводні камені, може використовуватися як NOTE:XXX:.HACK: Не дуже добре написаний або неправильно сформований код, щоб обійти проблему / помилку. Слід використовувати як HACK:FIXME:.FIXME: Це працює, начебто, але це можна зробити краще. (зазвичай код написаний поспіхом, який потребує переписування).BUG: Тут є проблема.TODO: Немає проблем, але додатковий код потрібно писати, як правило, коли ви щось пропускаєте.Принаймні так мене вчили про ці мітки. В основному перші два ( NOTEі XXX) використовуються для інформації, і ніяких дій не потрібно. У той час як останні три ( FIXME, BUGі TODO) вимагають дій. HACKзнаходиться десь посеред (і я думаю, що майже ніколи не використовувався?).
LAZY(не такі критичні, як FIXME або HACK) і OCD(відоме перенапруження).
Деякі нотатки з пропозиції про розширення Python у червні 2005 року було відхилено .
Вибір між
FIXMEіXXXскладний.
XXXвидається більш поширеним, але набагато менш описовим.
Крім того,XXXє корисним заповнювачем у фрагменті коду
, який має невідоме значення.Таким чином,
FIXMEє кращим написанням.
Sun каже, щоXXXіFIXMEдещо відрізняються, надаючиXXXбільш високої чіткості.
Однак, незважаючи на десятиліття хаосу на цю тему, і занадто багато мільйонів
розробників, які не будуть впливати на Sun, легко їх правильно називати синонімами.
PEP починає,
Цей PEP був відхилений. Незважаючи на те, що громада може бути зацікавлена,
немає бажання привести стандартну бібліотеку у відповідність із цим стандартом.
...
Що таке кодекси?
Програмісти широко використовують спеціальні конвенції щодо розмітки коментарів до коду, щоб служити нагадуванням про розділи коду, які потребують більш детального огляду або перегляду. Приклади розмітки включають в себе
FIXME,TODO,XXX,BUG, але є ще багато в широкому використанні в існуючому програмному забезпеченні. Така розмітка відтепер буде називатися кодовими тегами . Ці кодові позначки можуть відображатися в коді програми, тестових одиницях, сценаріях, загальній документації або де це можливо.
PEP - цікаве прочитання.
Погляньте на PEP350 . Це пояснює все TODO, XXXі т. Д. Я використовую це щодня, коли не можу точно згадати, що означає один з тегів коду.
Я використовую, XXXтому що це простіше, ніж набрати TODO.
XXX це коли ти поспішаєш і сам повернешся до цього.
TODO це тоді, коли вам доведеться передати його комусь іншому.
Можливо, це стосується випадків, коли ви не знаєте, як впоратися.
Перевірте це: Перегляд списку операторів TODO / FIXME / XXX / HACK
alt text http://editra-plugins.googlecode.com/svn/wiki/images/commentbrowser/cb_screenshot.PNG
З (старого) умовного коду Java :
Використовуйте XXX у коментарі, щоб позначити щось неправдиве, але працює. Використовуйте FIXME для позначення фальшивого та зламаного.
XXX короткий для застереження, який трохи відрізняється від NOTE, але досить схожий на HACK. Це може бути помилка в сторонній бібліотеці / коді, який використовується, і код з // XXX: вказує на те, що або вона вирішена через помилку в коді третьої сторони, або може означати "обережність" для того, хто шукає / змінює код, щоб вказати, чому щось робиться певним чином, що в іншому випадку може здатися неправильним / неелегантним на перший погляд. HACK - це загальний термін, що означає вирішення проблеми, яка може бути наявна у вашій власній кодовій базі або в сторонній бібліотеці.
Я вважаю, FIXMEщо розробник, а HACKсаме для технічного обслуговування - XXXце для користувача.
Наприклад, якщо ви ігноруєте XXXта називаєте цю функцію в іншому місці, не розуміючи, як вона працює, може статися щось несподіване, і людина, яка займається цим питанням, буде незадоволена (принаймні, той, хто додав XXXтак, думає). Ви можете подумати, що проблеми не буде, якщо ви просто не скористаєтесь цією функцією.
Але бо FIXMEви будете почувати себе гідними просто виправити код, щоб він працював. І тому HACK, можливо, ви не матимете кращого вибору, навіть якщо не будете використовувати його.
Якщо ви писали XXXвласний код і хтось ним користувався, ви можете почувати себе нещасними з причин, як ви повністю переписали цей код, і він поводиться зовсім по-іншому, і ви зламали чужий код. Але якщо ви залишили FIXMEабо TODOзамість цього, ви не будете так сильно піклуватися.
Я використовую // XXX, тому мені не потрібно запам’ятовувати номери рядків. Натомість я просто шукаю XXX, коли хочу повернутися до цього фрагмента коду.