Quindi è una soluzione temporanea? Quindi utilizza il nome suggerito dal revisore, ma contrassegna il metodo come obsoleto, in modo che utilizzarlo genererebbe un avviso ogni volta che qualcuno sta compilando il codice.
Se non lo è, puoi sempre dire che 216147
non ha senso nel codice, poiché il codice non è collegato al sistema di tracciamento dei bug (è piuttosto il sistema di tracciamento dei bug che è collegato al controllo sorgente). Il codice sorgente non è un buon posto per riferimenti a ticket di bug e versioni, e se hai davvero bisogno di mettere quei riferimenti lì, fallo nei commenti.
Si noti che anche nei commenti, il numero di bug da solo non è molto prezioso. Immagina il seguente commento:
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.
}
Immagina che il codice sia stato scritto dieci anni fa, che tu abbia appena aderito al progetto e che quando hai chiesto dove hai trovato qualche informazione sul bug 8247, i tuoi colleghi hanno detto che c'era un elenco di bug sul sito web del software del sistema di segnalazione, ma il sito Web è stato rifatto cinque anni fa e il nuovo elenco di bug ha numeri diversi.
Conclusione: non hai idea di cosa sia questo bug.
Lo stesso codice avrebbe potuto essere scritto in un modo leggermente diverso:
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.
}
Ora hai una visione chiara del problema. Anche se sembra che il collegamento ipertestuale alla fine del commento sia morto cinque anni fa, non importa, dal momento che puoi ancora capire perché FindReportsByDate
è stato sostituito da FindReportsByDateOnly
.