임시 해결책입니까? 그런 다음 검토자가 제안한 이름을 사용하지만 메서드를 사용하지 않는 것으로 표시하면 코드를 컴파일 할 때마다 경고 메시지가 생성됩니다.
그렇지 않은 경우 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.
}
코드가 10 년 전에 작성되었고 방금 프로젝트에 참여했으며 버그 8247에 대한 정보를 어디서 찾을 수 있는지 물었을 때 동료들은 웹 사이트에 버그 목록이 있다고 말했다고 상상해보십시오. 보고 시스템 소프트웨어이지만 웹 사이트는 5 년 전에 다시 작성되었으며 새로운 버그 목록은 서로 다릅니다.
결론 :이 버그가 무엇인지 전혀 모릅니다.
동일한 코드가 약간 다른 방식으로 작성되었을 수 있습니다.
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.
}
이제 문제를 명확하게 볼 수 있습니다. 주석이 끝날 때 하이퍼 텍스트 링크가 5 년 전에 죽었다고하더라도, FindReportsByDate
왜로 대체 되었는지 이해할 수 있기 때문에 중요하지 않습니다 FindReportsByDateOnly
.