ফাংশনের ইনপুট পরামিতিগুলি যাচাই করার জন্য সেরা স্থানটি কোথায়: কলারে বা নিজেই ফাংশনে?
যেহেতু আমি আমার কোডিং শৈলীর উন্নতি করতে চাই, আমি এই সমস্যাটির জন্য সেরা অনুশীলনগুলি বা কিছু নিয়ম সন্ধান করার চেষ্টা করি try কখন এবং কি ভাল।
আমার পূর্ববর্তী প্রকল্পগুলিতে, আমরা ফাংশনের ভিতরে প্রতিটি ইনপুট প্যারামিটারগুলি পরীক্ষা করে চিকিত্সা করতাম, (উদাহরণস্বরূপ যদি এটি নਾਲ না হয়)। এখন, আমি এখানে কিছু উত্তরে এবং প্রাগমেটিক প্রোগ্রামার বইতে পড়েছি যে ইনপুট প্যারামিটারের বৈধতা কলারের দায়িত্ব।
সুতরাং এর অর্থ হ'ল, ফাংশনটি কল করার আগে আমার ইনপুট পরামিতিগুলি বৈধ করা উচিত। যেখানেই ফাংশন বলা হয়। এবং এটি একটি প্রশ্ন উত্থাপন করে: এটি ফাংশনটি যেখানেই বলা হয় সেখানে যাচাই করার শর্তটির সদৃশ তৈরি করে না?
আমি কেবল শূন্য অবস্থাতেই আগ্রহী নই, তবে কোনও ইনপুট ভেরিয়েবলের বৈধতাতে (কার্যকারণের জন্য নেতিবাচক মান sqrt
, শূন্য দ্বারা ভাগ করা, রাষ্ট্র এবং জিপ কোডের ভুল সংমিশ্রণ, বা অন্য কোনও কিছু)
ইনপুট শর্তটি কোথায় পরীক্ষা করতে হবে সে সম্পর্কে কীভাবে কিছু বিধি আছে?
আমি কিছু যুক্তি সম্পর্কে চিন্তা করছি:
- যখন অবৈধ ভেরিয়েবলের চিকিত্সা পৃথক হতে পারে, কলার পক্ষে এটি যাচাই করা ভাল (উদাহরণস্বরূপ
sqrt()
ফাংশন - কোনও ক্ষেত্রে আমি জটিল সংখ্যার সাথে কাজ করতে চাইতে পারি, তাই আমি শর্তটিকে কলারে চিকিত্সা করি) - যখন প্রতিটি কলারে চেক শর্ত একই হয়, ফাংশনটির ভিতরে এটি পরীক্ষা করা ভাল, যাতে সদৃশগুলি এড়ানো যায়
- কলারের ইনপুট প্যারামিটারের বৈধতা এই প্যারামিটারের সাথে অনেকগুলি ফাংশন কল করার আগে কেবলমাত্র একটি হয়। সুতরাং প্রতিটি ফাংশনে একটি প্যারামিটারের বৈধতা কার্যকর হয় না
- সঠিক সমাধানটি নির্দিষ্ট ক্ষেত্রে নির্ভর করে
আমি আশা করি এই প্রশ্নটি অন্য কোনওটির সদৃশ নয়, আমি এই সমস্যাটি অনুসন্ধান করেছি এবং আমি একই রকম প্রশ্ন পেয়েছি তবে তারা ঠিক এই ক্ষেত্রে উল্লেখ করে না।