পাঠযোগ্যতার তাড়া করার সময় স্বচ্ছতার ত্যাগের বিষয়ে সতর্ক থাকুন ।
যদিও if (user.ExistsInDatabase(db))
চেয়ে ভাল পড়া হয়েছে if (user.CheckExistsInDatabase(db))
, তবে একটি বুনার প্যাটার্নযুক্ত শ্রেণীর ক্ষেত্রে বিবেচনা করুন, (বা যে শ্রেণীর উপর আপনি রাজ্য সেট করতে পারেন):
user.WithName("Mike").ExistsInDatabase(db).ExistsInDatabase(db2).Build();
এটা যদি পরিষ্কার হয় না ExistsInDatabase
বিদ্যমান কিনা তা যাচাই করে বা এটি বিদ্যমান কিনা তা নির্ধারণ করছে কিনা তা । আপনি কোনও তুলনা মান লিখবেন না if (user.Age())
বা if (user.Name())
ছাড়বেন না , সুতরাং কেন if (user.Exists())
ভাল ধারণা হ'ল কারণ সেই সম্পত্তি / ফাংশনটি বুলিয়ান ধরণের এবং আপনি প্রাকৃতিক ইংরেজের মতো আরও পড়ার জন্য ফাংশন / সম্পত্তিটির নাম পরিবর্তন করতে পারেন? বুলিয়ান ছাড়া অন্য ধরণের জন্য আমরা একই ধাঁচটি ব্যবহার করা কি খারাপ?
অন্যান্য ধরণের সাথে, এ if
বিবৃতি একটি ফাংশনের রিটার্ন মানকে কোডের একটি মানের সাথে তুলনা করে, তাই কোডটি এমন কিছু দেখায়:
if (user.GetAge() >= 18) ...
যা "যদি ব্যবহারকারী ডট প্রাপ্ত বয়স ১৮ এর চেয়ে বড় বা তার সমান হয় ..." সত্য হয় - এটি "প্রাকৃতিক ইংরেজি" নয়, তবে আমি যুক্তি দিয়ে বলব যে object.verb
প্রাকৃতিক ইংরাজির সাথে আর কখনও দেখা যায় না এবং এটি কেবল আধুনিক প্রোগ্রামিংয়ের একটি মৌলিক দিক (যেমন মূলধারার অনেকগুলি ভাষা)। প্রোগ্রামারদের উপরের স্টেটমেন্টটি বুঝতে সমস্যা হয় না, সুতরাং নিম্নলিখিতগুলি আরও খারাপ?
if (user.CheckExists() == true)
যা সাধারণত সংক্ষিপ্ত করা হয়
if (user.CheckExists())
মারাত্মক পদক্ষেপ অনুসরণ করা
if (user.Exists())
যদিও এটি বলা হয়ে থাকে যে "কোডটি লিখিতের চেয়ে বেশি 10 বার পড়া হয়", তবুও এটি অত্যন্ত গুরুত্বপূর্ণ যে ত্রুটিগুলি খুঁজে পাওয়া সহজ। ধরুন আপনার অস্তিত্ব () নামে একটি ফাংশন রয়েছে যা এর ফলে অবজেক্টটি বিদ্যমান এবং সাফল্যের ভিত্তিতে সত্য / মিথ্যা প্রত্যাবর্তন করে। আপনি সহজেই কোডটি দেখতে পেতেনif (user.Exists())
পেতেন এবং বাগটি স্পট না পেলেন - if (user.SetExists())
উদাহরণস্বরূপ কোডটি পড়লে বাগটি আরও অনেক স্পষ্ট হবে ।
অতিরিক্ত হিসাবে, ব্যবহারকারীর এক্সজিস্টগুলি () সহজেই জটিল বা অদক্ষ কোড ধারণ করতে পারে, কোনও কিছু যাচাই করার জন্য একটি ডেটাবেজে রাউন্ড ট্রিপিং। user.CheckExists () এটি পরিষ্কার করে দেয় যে ফাংশনটি কিছু করে।
এখানে সমস্ত প্রতিক্রিয়াও দেখুন: নামকরণের কনভেনশন: এমন কোনও পদ্ধতির নাম কী যা একটি বুলিয়ান দেয়?
একটি চূড়ান্ত নোট হিসাবে - "জিজ্ঞাসা করবেন না জিজ্ঞাসা করুন" অনুসরণ করে, সত্য / মিথ্যা প্রত্যাখ্যান করে এমন অনেকগুলি ক্রিয়াকলাপ অদৃশ্য হয়ে যায় এবং তার অবস্থার জন্য কোনও বস্তু জিজ্ঞাসা করার পরিবর্তে, আপনি এটিকে কিছু করতে বলুন যা এটি বিভিন্নভাবে করতে পারে উপায় তার রাষ্ট্র ভিত্তিক।
isBabbyFormed