Зазвичай я вважаю такі коментарі поганою практикою, і я думаю, що така інформація належить до журналів фіксації SCM. Це просто робить код більш важким для читання в більшості випадків.
Однак я часто все-таки роблю щось подібне для конкретних типів правок.
Випадок 1 - Завдання
Якщо ви використовуєте такий IDE, як Eclipse, Netbeans, Visual Studio (або маєте якийсь спосіб пошуку тексту у вашій кодовій базі з будь-яким іншим), можливо, ваша команда використовує певні "теги коментарів" або "теги завдань". У цьому випадку це може бути корисно.
Я час від часу під час перегляду коду додаю щось подібне:
// TOREVIEW: [2010-12-09 haylem] marking this for review because blablabla
або:
// FIXME: [2010-12-09 haylem] marking this for review because blablabla
Для цього я використовую різні спеціальні теги завдань, які я бачу в Eclipse в області перегляду завдань, тому що мати щось у журналах фільмів - це добре, але недостатньо, коли у вас є керівник, який запитує вас на оглядовій нараді, чому помилка XY була повністю забута і прослизнув. Тож з нагальних питань чи справді сумнівних фрагментів коду, це служить додатковим нагадуванням (але зазвичай я залишаю коментар коротким і перевіряю журнали фіксації, оскільки ТОМУ чомусь нагадування тут, тому я не захаращую код також багато).
Справа 2 - Патчі сторонніх губ
Якщо моєму продукту потрібно упакувати сторонній фрагмент коду як джерело (або бібліотеку, але відтворений з джерела), тому що його потрібно було з певної причини виправити, ми задокументуємо виправлення в окремому документі, де ми перераховуємо ці "застереження" для подальшої довідки, а вихідний код зазвичай міститиме коментар, подібний до:
// [PATCH_START:product_name]
// ... real code here ...
// [PATCH_END:product_name]
Випадок 3 - Неочевидні виправлення
Цей дещо суперечливіший і ближчий до того, що просить ваш старший розробник.
У продукті, над яким я працюю на даний момент, у нас іноді (напевно, це не звичайна річ) є коментар на кшталт:
// BUGFIX: [2010-12-09 haylem] fix for BUG_ID-XYZ
Ми робимо це лише в тому випадку, коли помилка не очевидна і код читається ненормально. Це може бути, наприклад, вигадкою браузера, або неясними виправленнями CSS, які потрібно реалізувати лише тому, що в продукті є помилка документа. Таким чином, ми загалом пов'язуємо це з нашим внутрішнім сховищем випусків, яке потім міститиме докладні міркування про помилку та покажчики до документації про помилку зовнішнього продукту (скажімо, рекомендації щодо безпеки щодо відомого дефекту Internet Explorer 6 або щось схоже).
Але, як згадувалося, це досить рідко. І завдяки тегам завдань ми можемо регулярно проходити їх і перевіряти, чи ці дивні виправлення все-таки мають сенс чи можуть бути припинені (наприклад, якщо ми відмовилися від підтримки помилкового продукту, що спричиняє помилку в першу чергу).
Це тільки в: Приклад із реального життя
У деяких випадках це краще, ніж нічого :)
Щойно я натрапив на величезний клас статистичних обчислень у своїй кодовій базі, де коментар до заголовка був у вигляді журналу змін зі звичайною yadda yadda: рецензент, дата, ідентифікатор помилки.
Спочатку я подумав про те, щоб зняти його, але помітив, що ідентифікатори помилок не тільки не відповідають умовам нашого поточного трекера випусків, але також не відповідають тому, який використовували трекер до моменту приєднання до компанії. Тому я спробував прочитати код і зрозуміти, що робить клас (не будучи статистиком), а також спробував викопати ці звіти про дефекти. Оскільки це трапляється, вони були досить важливими і мали би змінити життя наступного хлопця для редагування файлу, не знаючи про них досить жахливо, оскільки він стосувався незначних питань точності та особливих випадків, заснованих на дуже специфічних вимогах, що випускаються початковим замовником ще тоді . Підсумок, якби їх там не було, я б не знав. Якби вони там не були І я краще розумів клас,
Іноді важко відслідковувати дуже старі вимоги на кшталт цих. Зрештою, те, що я зробив, було все-таки видалити заголовок, але після прокрадання в блочному коментарі перед кожною інкримінуючою функцією, що описує, чому ці "дивні" обчислення, як це конкретні запити.
Тож у такому випадку я все-таки вважав це поганою практикою, але хлопчик, я був щасливий, що оригінальний розробник принаймні їх ввів! Було б краще коментувати чітко замість цього, але я думаю, що це було краще, ніж нічого.