तो यह एक अस्थायी समाधान है? फिर समीक्षक द्वारा सुझाए गए नाम का उपयोग करें, लेकिन विधि को अप्रचलित के रूप में चिह्नित करें, ताकि इसका उपयोग हर बार किसी को कोड को संकलित करने के लिए एक चेतावनी उत्पन्न हो।
यदि यह नहीं है, तो आप हमेशा बता सकते हैं कि 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
।