সুতরাং এটি একটি অস্থায়ী সমাধান? তারপরে পর্যালোচক কর্তৃক প্রস্তাবিত নামটি ব্যবহার করুন, তবে পদ্ধতিটি অপ্রচলিত হিসাবে চিহ্নিত করুন, যাতে এটি ব্যবহার করে প্রতিবার কেউ কোডটি সংকলন করার সময় একটি সতর্কতা তৈরি করে।
যদি তা না হয় তবে আপনি সর্বদা বলতে পারেন যে 216147
কোডটি কোনও অর্থবোধ করে না, যেহেতু কোডটি বাগ ট্র্যাকিং সিস্টেমের সাথে লিঙ্কযুক্ত নয় (এটি বরং বাগ ট্র্যাকিং সিস্টেম যা উত্স নিয়ন্ত্রণের সাথে যুক্ত রয়েছে) linked সোর্স কোডটি বাগের টিকিট এবং সংস্করণগুলির রেফারেন্সের জন্য ভাল জায়গা নয় এবং যদি আপনাকে সত্যিই সেই উল্লেখগুলি সেখানে রাখার দরকার হয় তবে তা মন্তব্যগুলিতে করুন।
নোট করুন এমনকি মন্তব্যগুলিতেও, বাগের নম্বরটি খুব মূল্যবান নয়। নিম্নলিখিত মন্তব্যটি কল্পনা করুন:
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.
}
কল্পনা করুন যে কোডটি দশ বছর আগে লেখা হয়েছিল, আপনি সবেমাত্র এই প্রকল্পে যোগদান করেছেন এবং আপনি যখন জিজ্ঞাসা করেছিলেন 8407 বাগ সম্পর্কে কোনও তথ্য কোথায় পাওয়া যাবে, তখন আপনার সহকর্মীরা জানিয়েছিলেন যে ওয়েবসাইটটিতে বাগের একটি তালিকা রয়েছে রিপোর্টিং সিস্টেম সফ্টওয়্যার, তবে ওয়েবসাইটটি পাঁচ বছর আগে আবার করা হয়েছিল এবং বাগের নতুন তালিকার আলাদা আলাদা নম্বর রয়েছে।
উপসংহার: এই বাগটি কী সম্পর্কে আপনার কোনও ধারণা নেই।
একই কোডটি কিছুটা ভিন্নভাবে লেখা যেতে পারে:
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
।