আমি যে ভাষা ব্যবহার করছি তাতে জোর দেওয়া, চুক্তি করা বা যে ধরণের চেক পাওয়া যায় সেগুলি লেখার আমি একটি বিশাল ফ্যান। একটি জিনিস যা আমাকে খানিকটা বিরক্ত করে তা হ'ল আমি নিশ্চিত নকল চেকগুলি ব্যবহার করার জন্য সাধারণ অনুশীলনটি কী।
উদাহরণ পরিস্থিতি: আমি প্রথমে নিম্নলিখিত ফাংশনটি লিখি
void DoSomething( object obj )
{
Contract.Requires<ArgumentNullException>( obj != null );
//code using obj
}
তারপরে কয়েক ঘন্টা পরে আমি অন্য একটি ফাংশন লিখি যা প্রথমটিকে কল করে। স্মৃতিতে এখনও সবকিছু সতেজ হওয়ায় আমি চুক্তিটির নকল না করার সিদ্ধান্ত নিয়েছি, যেহেতু আমি জানি যে DoSomethingইতোমধ্যে নাল বস্তুর জন্য চেক করা উচিত:
void DoSomethingElse( object obj )
{
//no Requires here: DoSomething will do that already
DoSomething( obj );
//code using obj
}
সুস্পষ্ট সমস্যা: DoSomethingElseএখন DoSomethingযাচাইয়ের জন্য নির্ভর করে যে আপত্তি নাল নয়। সুতরাং DoSomethingআর কখনও চেক না করার সিদ্ধান্ত নেওয়া উচিত , বা আমি অন্য কোনও ফাংশন ব্যবহার করার সিদ্ধান্ত নিলে সম্ভবত আর পরীক্ষা করা হবে না। যা আমাকে এই বাস্তবায়নটি লেখার দিকে নিয়ে যায়:
void DoSomethingElse( object obj )
{
Contract.Requires<ArgumentNullException>( obj != null );
DoSomething( obj );
//code using obj
}
সর্বদা নিরাপদ, কোনও উদ্বেগের দরকার নেই, যদি পরিস্থিতি বেড়ে যায় তবে একই বিষয়টিকে বেশ কয়েকবার চেক করা যেতে পারে এবং এটি নকলের একটি ফর্ম এবং আমরা সবাই জানি যে এটি এতটা ভাল নয়।
এ জাতীয় পরিস্থিতির জন্য সবচেয়ে সাধারণ অনুশীলন কোনটি?
ArgumentBullException? এটি একটি নতুন :)