চুক্তি দ্বারা ডিজাইনিং (ডিবিসি) আত্মরক্ষামূলকভাবে প্রোগ্রাম করার উপায় হতে পারে?
কিছু ক্ষেত্রে প্রোগ্রামিংয়ের একটি উপায় কি অন্যের চেয়ে ভাল?
চুক্তি দ্বারা ডিজাইনিং (ডিবিসি) আত্মরক্ষামূলকভাবে প্রোগ্রাম করার উপায় হতে পারে?
কিছু ক্ষেত্রে প্রোগ্রামিংয়ের একটি উপায় কি অন্যের চেয়ে ভাল?
উত্তর:
চুক্তি অনুসারে নকশা করা এবং ডিফেন্সিভ প্রোগ্রামিং কিছুটা অর্থে একে অপরের বিরোধী: ডিবিসিতে, আপনি সহযোগীদের এবং আপনার কর্মসূচীর মধ্যে চুক্তির সংজ্ঞা নির্ধারণ করেন যে সহযোগীরা তাদের চুক্তিগুলি সম্মান করে। প্রতিরক্ষামূলক প্রোগ্রামিংয়ে, আপনি এই ধারণাটি অধীনে প্রোগ্রাম করেন যে আপনার সহযোগীরা তাদের চুক্তি লঙ্ঘন করেছে।
ডিবিসি স্টাইলে লিখিত একটি বাস্তব বর্গমূল রুটিন এর চুক্তিতে উল্লেখ করবে যে আপনাকে নেতিবাচক সংখ্যায় পাস করার অনুমতি নেই এবং কেবলমাত্র ধরে নেওয়া উচিত যে এটি কখনও নেতিবাচক সংখ্যার মুখোমুখি হতে পারে না। আত্মরক্ষামূলকভাবে রচিত একটি বাস্তব বর্গমূল রুটিন এটি ধরে নেবে যে এটি একটি নেতিবাচক সংখ্যাটি পেরিয়ে গেছে এবং যথাযথ সতর্কতা অবলম্বন করবে।
দ্রষ্টব্য: অবশ্যই এটি সম্ভব যে ডিবিসিতে অন্য কেউ চুক্তিটি পরীক্ষা করবেন। আইফেলের ক্ষেত্রে, উদাহরণস্বরূপ, চুক্তি ব্যবস্থা রানটাইমের সময় নেতিবাচক সংখ্যার জন্য অনুসন্ধান করবে এবং উপযুক্ত ব্যতিক্রম ছুঁড়ে ফেলবে। স্পেস # তে, তাত্ত্বিক প্রবাদটি সংকলনের সময় নেতিবাচক সংখ্যার জন্য অনুসন্ধান করবে এবং বিল্ডটি ব্যর্থ করবে, যদি এটি প্রমাণ করতে না পারে যে রুটিন কখনও নেতিবাচক সংখ্যাটি পাস করে না। পার্থক্যটি হ'ল প্রোগ্রামার এই চেকটি করে না।
চুক্তি দ্বারা ডিজাইনিং (ডিবিসি) আত্মরক্ষামূলকভাবে প্রোগ্রাম করার উপায় হতে পারে?
হ্যাঁ।
"ডিফেন্সিভ প্রোগ্রামিং" প্রায়শই সময় নষ্ট করার অজুহাত। এটি প্রায়শই ব্যতিক্রমী জিনিসগুলির জন্য যাচাই করে সময় নষ্ট করে। ব্যতিক্রমগুলির পরিবর্তে, অতিরিক্ত আইএফ স্টেটমেন্টগুলি ব্যতিক্রম-হ্যান্ডলিং ধারাগুলির পরিবর্তে লেখা হয়।
চুক্তিটি সংজ্ঞায়িত করুন এবং এটি দিয়ে কাজ করুন।
যখন কেউ চুক্তি লঙ্ঘন করে, তখন প্রোগ্রামটি - ইভেন্টের স্বাভাবিক কোর্সে - বিরতি ও স্বাভাবিক ব্যতিক্রমগুলি উত্থাপন করে যা সাধারণত পরিচালনা করা যায়।
"ডিফেন্সিভ প্রোগ্রামিং" এবং "ত্রুটি প্রতিরোধ" ত্রুটিগুলি প্রতিরোধ করার পরিবর্তে ত্রুটিগুলি যুক্ত করার জন্য দেখানো যেতে পারে (কারণ ত্রুটি প্রতিরোধের চেকগুলি নিজেরাই ভুল)।
ব্যতিক্রম হ্যান্ডলিং "ডিফেন্সিভ প্রোগ্রামিং" এর চেয়ে অনেক ভাল একটি ব্যতিক্রমকে চুপ করে, লগ করতে এবং পরিচালনা করতে পারে।