উদাহরণটি আমার পছন্দ নয়। 1, ith জেনেরিক নাম কারণ।
conditionMet
জেনেরিক বলে মনে হচ্ছে না, তাই এটি একটি নির্দিষ্ট শর্তের জন্য দাঁড়িয়ে? মত
isAdult () = {
age >= 18
}
এটা ঠিক আছে। এটি একটি অর্থপূর্ণ পার্থক্য, যখন
isAtLeast18 () { age >= 18; }
আমার জন্য ভাল হবে না।
হতে পারে এটি প্রায়শই ব্যবহৃত হয় এবং পরবর্তী পরিবর্তনের জন্য এটি হতে পারে:
getPreferredIcecream () { return List ("banana", "choclate", "vanilla", "walnut") }
খুব ভাল। এটি একাধিকবার ব্যবহার করার পরে, আপনাকে কেবল একটি স্থান পরিবর্তন করতে হবে, যদি আপনার করতে হয় - সম্ভবত হুইপযুক্ত ক্রিম আগামীকালই সম্ভব হয়ে উঠবে।
isXYZ (Foo foo) { foo.x > 15 && foo.y < foo.x * 2 }
পারমাণবিক নয়, এবং আপনাকে একটি দুর্দান্ত পরীক্ষার সুযোগ দেওয়া উচিত।
আপনার যদি কোনও ফাংশন পাস করার দরকার হয় তবে অবশ্যই আপনার যা পছন্দ করুন তা পাস করুন এবং অন্যথায় নির্বোধ দেখাচ্ছে ফাংশনগুলি লিখুন।
তবে সাধারণভাবে আমি খুব বেশি ফাংশন দেখতে পাচ্ছি যা খুব দীর্ঘ, যেগুলি খুব ছোট functions
একটি শেষ শব্দ: কিছু ফাংশন কেবল উপযুক্ত বলে মনে হয়, কারণ সেগুলি খুব ভার্জোজ লেখা হয়:
function lessThan (a, b) {
if (a < b) return true else return false;
}
যদি আপনি দেখতে পান যে এটি একই রকম
return (a < b);
আপনার কোন সমস্যা হবে না
localLessThan = (a < b);
পরিবর্তে
localLessThan = lessThan (a, b);
Assert.AreEqual<int>(expected, actual, message, arg1, arg2, arg3, ...);
। দ্বিতীয়টি যেমন আছে ঠিক আছে। আমি সম্ভাব্যভাবে একটি bচ্ছিক বুল পতাকা অন্তর্ভুক্ত করব যা একটি ব্যতিক্রম / ইত্যাদি নিক্ষেপ করবে কিনা তা নির্দেশ করবে। যদি কলব্যাক কোনও ফাংশন না হয়।