C'est donc une solution temporaire? Utilisez ensuite le nom suggéré par le réviseur, mais marquez la méthode comme obsolète, de sorte que son utilisation génère un avertissement à chaque fois que quelqu'un compile le code.
Si ce n'est pas le cas, vous pouvez toujours dire que 216147
cela n'a aucun sens dans le code, car le code n'est pas lié au système de suivi des bogues (c'est plutôt le système de suivi des bogues qui est lié au contrôle de source). Le code source n'est pas un bon endroit pour les références aux tickets de bogue et aux versions, et si vous devez vraiment y mettre ces références, faites-le dans les commentaires.
Notez que même dans les commentaires, le numéro de bogue seul n'est pas très précieux. Imaginez le commentaire suivant:
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.
}
Imaginez que le code a été écrit il y a dix ans, que vous venez de rejoindre le projet et que lorsque vous avez demandé où trouver des informations sur le bogue 8247, vos collègues vous ont dit qu'il y avait une liste de bogues sur le site Web du le logiciel du système de rapport, mais le site Web a été refait il y a cinq ans, et la nouvelle liste de bogues a des numéros différents.
Conclusion: vous n'avez aucune idée de ce qu'est ce bug.
Le même code aurait pu être écrit d'une manière légèrement différente:
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.
}
Vous obtenez maintenant une vision claire du problème. Même s'il semble que le lien hypertexte à la fin du commentaire soit mort il y a cinq ans, cela n'a pas d'importance, car vous pouvez toujours comprendre pourquoi a FindReportsByDate
été remplacé par FindReportsByDateOnly
.