রবার্ট সি মার্টিনের ক্লিন কোড: এন্ডবিল অফ অ্যাগ্রিল সফ্টওয়্যার ক্র্যাফটসম্যানশিপের 45 পৃষ্ঠায় মার্টিন লিখেছেন যে আউটপুট আর্গুমেন্টগুলি এড়ানো উচিত। "আউটপুট আর্গুমেন্ট" এর অর্থ বুঝতে এবং সেগুলি কেন এড়ানো উচিত সে বিষয়ে আমার সমস্যা হচ্ছে।
আউটপুট আর্গুমেন্টের জন্য মার্টিনের উদাহরণটি appendFooter(s);
ফাংশনটিকে কল করে public void appendFooter(StringBuffer report)
। কোডটির তার উন্নতিreport.appendFooter();
হতে পারে এটি কোড প্রসঙ্গে অভাবের কারণে, তবে আউটপুট আর্গুমেন্টগুলি কীভাবে দুর্বল কোডিং হিসাবে বিবেচিত হবে তা আমি দেখতে পাচ্ছি না। কেউ কি ধারণাটি ব্যাখ্যা করতে পারে বা কোডটি বোঝার জন্য উদাহরণের উদাহরণ দিতে পারে?
নিম্নলিখিত নীতিটিও কি উপরোক্ত নীতি দ্বারা অশুচি কোডের উদাহরণ হিসাবে বিবেচিত হবে?
int[] numberArray = {3, 5, 7, 1};
sortArray(numberArray);
যদি উপরেরটি আউটপুট আর্গুমেন্ট না ব্যবহারের মার্টিনের নীতির লঙ্ঘন হয়, তবে ক্ষেত্র হিসাবে অ্যারে রয়েছে এমন একটি অবজেক্ট এবং অ্যারে বাছাই করার জন্য বলা যেতে পারে এমন কোনও ফাংশন থাকা ভাল কি?
ObjectWithArrayField numberArray = new ObjectWithArrayField(3, 5, 7, 1);
numberArray.sort();
sortArray(numberArray)
অবশ্যই,numberArray
স্থানে ধরণের । অথবা এটি কোনও অনুলিপি না করেnumberArray
, অনুলিপিটি সাজানো এবং সাজানো অনুলিপিটি ফেরত দেয়numberArray
?