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