সঠিকভাবে বা ভুলভাবে, আমি বর্তমানে বিশ্বাস করি যে আমার কোডটি যথাসম্ভব শক্তিশালী করার চেষ্টা করা উচিত, যদিও এর অর্থ অনর্থক কোড / চেকগুলি যুক্ত করা যা আমি জানি যে এখনই কোনও কাজে আসবে না, তবে তারা লাইন থেকে কয়েক বছরের পরিমাণ হতে পারে।
উদাহরণস্বরূপ, আমি বর্তমানে এমন একটি মোবাইল অ্যাপ্লিকেশন নিয়ে কাজ করছি যাতে এই কোডটির এই অংশ রয়েছে:
public static CalendarRow AssignAppointmentToRow(Appointment app, List<CalendarRow> rows)
{
//1. Is rows equal to null? - This will be the case if this is the first appointment.
if (rows == null) {
rows = new List<CalendarRow> ();
}
//2. Is rows empty? - This will be the case if this is the first appointment / some other unknown reason.
if(rows.Count == 0)
{
rows.Add (new CalendarRow (0));
rows [0].Appointments.Add (app);
}
//blah...
}
বিভাগ দুটি বিশেষভাবে খুঁজছেন, আমি জানি যে বিভাগটি যদি সত্য হয়, তবে বিভাগ দুটিও সত্য হবে। বিভাগটি কেন মিথ্যা হবে এবং বিভাগের দ্বিতীয়টি সত্য বলে মূল্যায়ন করবে সে সম্পর্কে কোনও কারণ আমি ভাবতে পারি না, যা দ্বিতীয় if
বিবৃতিটিকে অপ্রয়োজনীয় করে তোলে ।
তবে, ভবিষ্যতে এমন একটি মামলা থাকতে পারে যেখানে এই দ্বিতীয় if
বিবৃতিটি সত্যই প্রয়োজন, এবং একটি জ্ঞাত কারণে।
কিছু লোক প্রাথমিকভাবে এটি দেখতে পারে এবং ভাবতে পারে আমি ভবিষ্যতের কথা মাথায় রেখে প্রোগ্রামিং করছি, যা সম্ভবত একটি ভাল জিনিস। তবে আমি কয়েকটি উদাহরণ জানি যেখানে এই ধরণের কোডটিতে আমার কাছ থেকে "লুকানো" বাগ রয়েছে। অর্থ এটি যখন করা উচিত তখন ফাংশন কেন xyz
করছে তা নির্ধারণ করতে আমার আরও বেশি সময় লেগেছে ।abc
def
অন্যদিকে, এমন অনেকগুলি উদাহরণ রয়েছে যেখানে এই জাতীয় কোডটি নতুন আচরণের সাথে কোডটি বাড়ানো অনেক সহজ করে দিয়েছে, কারণ আমাকে ফিরে যেতে হবে না এবং নিশ্চিত করতে হবে যে সমস্ত প্রাসঙ্গিক চেক রয়েছে কিনা।
এই ধরণের কোডের জন্য কোনও সাধারণ নিয়ম-নীতির নির্দেশিকা রয়েছে? (এটিকে ভাল বা খারাপ অনুশীলন হিসাবে বিবেচনা করা হবে কিনা তাও আমি শুনতে আগ্রহী?)
নোট: এটি এই প্রশ্নের অনুরূপ বিবেচনা করা যেতে পারে , তবে সেই প্রশ্নের বিপরীতে, আমি কোনও উত্তর নির্দিষ্ট সময়সীমা না বলে ধরে নিয়ে উত্তর চাই like
টিএলডিআর: ভবিষ্যতে সম্ভাব্য আরও শক্তিশালী করার জন্য আমার কি এলোমেলো কোড যুক্ত করা উচিত?
if(rows.Count == 0)
যে কখনই ঘটবে না, তবে এটি হওয়ার পরে আপনি একটি ব্যতিক্রম বাড়াতে পারেন - এবং আপনার অনুমান কেন ভুল হয়ে গেছে তা পরীক্ষা করে দেখুন।
rows
কখনও নাল হবে? কোনও সংগ্রহ শূন্য হওয়ার জন্য কমপক্ষে। নেট এ কোনও উপযুক্ত কারণ নেই। খালি , নিশ্চিত করুন, কিন্তু না নাল । rows
শূন্য হলে আমি একটি ব্যতিক্রম নিক্ষেপ করব , কারণ এর অর্থ হ'ল কলার দ্বারা যুক্তিতে কোনও বিভ্রান্তি রয়েছে।