Так це тимчасове рішення? Потім використовуйте ім'я, запропоноване рецензентом, але позначте метод як застарілий, щоб його використання створювало попередження кожного разу, коли хтось збирає код.
Якщо це не так, ви завжди можете сказати, що 216147
немає сенсу в коді, оскільки код не пов'язаний із системою відстеження помилок (це швидше система відстеження помилок, яка пов'язана з керуванням джерелом). Вихідний код не є сприятливим місцем для посилань на квитки про помилки та версії, і якщо вам справді потрібно розмістити ці посилання там, зробіть це в коментарях.
Зауважте, що навіть у коментарях, кількість помилок сама по собі не дуже цінна. Уявіть такий коментар:
public IEnumerable<Report> FindReportsByDateOnly(DateTime date)
{
// The following method replaces FindReportByDate, because of the bug 8247 in the
// reporting system.
var dateOnly = new DateTime(date.Year, date.Month, date.Day);
return this.FindReportByDate(dateOnly);
}
private IEnumerable<Report> FindReportsByDate(DateTime date)
{
Contract.Requires(date.Hour == 0);
Contract.Requires(date.Minute == 0);
Contract.Requires(date.Second == 0);
// TODO: Do the actual work.
}
Уявіть, що код був написаний десять років тому, що ви щойно приєдналися до проекту, і що коли ви запитали, де ви могли знайти будь-яку інформацію про помилку 8247, ваші колеги сказали, що на веб-сайті списку помилок програмне забезпечення системи звітування, але веб-сайт був перероблений п'ять років тому, і новий список помилок має різну кількість.
Висновок: ви поняття не маєте, про що йдеться про цю помилку.
Той самий код міг бути написаний дещо по-іншому:
public IEnumerable<Report> FindReportsByDateOnly(DateTime date)
{
// The reporting system we actually use is buggy when it comes to searching for a report
// when the DateTime contains not only a date, but also a time.
// For example, if looking for reports from `new DateTime(2011, 6, 9)` (June 9th, 2011)
// gives three reports, searching for reports from `new DateTime(2011, 6, 9, 8, 32, 0)`
// (June 9th, 2011, 8:32 AM) would always return an empty set (instead of isolating the
// date part, or at least be kind and throw an exception).
// See also: http://example.com/support/reporting-software/bug/8247
var dateOnly = new DateTime(date.Year, date.Month, date.Day);
return this.FindReportsByDate(dateOnly);
}
private IEnumerable<Report> FindReportsByDate(DateTime date)
{
Contract.Requires(date.Hour == 0);
Contract.Requires(date.Minute == 0);
Contract.Requires(date.Second == 0);
// TODO: Do the actual work.
}
Тепер ви отримаєте чітке уявлення про проблему. Навіть якщо здається, що гіпертекстова посилання в кінці коментаря п'ять років тому мертва, це не має значення, оскільки ви все ще можете зрозуміти, чому FindReportsByDate
її замінили FindReportsByDateOnly
.