Так это временное решение? Затем используйте имя, предложенное рецензентом, но пометьте метод как устаревший, чтобы его использование вызывало предупреждение каждый раз, когда кто-то компилирует код.
Если это не так, вы всегда можете сказать, что 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
.