আমার দলে, আমরা কয়েকটি সফটওয়্যার স্থপতিদের সাথে ঘনিষ্ঠভাবে কাজ করি। তারা আমাদের প্রকল্পগুলির সমস্ত ডিজাইনের সিদ্ধান্তগুলি অনুমোদন করে, কিছু কোড পর্যালোচনা ইত্যাদি করে etc.
আমাদের প্রকল্পগুলি মূলত সিমফনি 2 ফ্রেমওয়ার্ক ব্যবহার করে পিএইচপিতে প্রয়োগ করা ব্যাকএন্ড কার্যকারিতা নিয়ে গঠিত। সুতরাং সিনথেটিকভাবে, কোড, নামকরণের কনভেনশন এবং প্রকল্প কাঠামো জাভা দেখতে কেমন দেখতে প্রায় অনুরূপ দেখাচ্ছে (সিমফনি 2 যেমন কাঠামোকে উত্সাহ দেয়)। আমি এটি উল্লেখ করছি কারণ জাভা-নির্দিষ্ট কনভেনশনগুলি আমাদের ক্ষেত্রেও (যদি সম্ভব হয়) প্রয়োগ হয়।
সাম্প্রতিককালে, তারা এমন কিছু পরামর্শ দিয়েছে যা আমি খুব অদ্ভুত বলে মনে করি: সমস্ত পদ্ধতির নামের সাথে মিল থাকা উচিত getEntityOrNull
, setValueOrException
ইত্যাদি etc.
এই জাতীয় নামকরণের কনভেনশনটি আমার কাছে খুব খারাপ লাগছে, তবে আমি কোনও দৃ challenge় যুক্তি বা অনলাইন নিবন্ধ / পৃষ্ঠাগুলি নিয়ে আসতে পারছি না যা এটিকে বিশেষভাবে চ্যালেঞ্জ করে।
আমি যে বিষয়গুলি নিয়ে এসেছি তা হ'ল:
- পদ্ধতির টীকাগুলিতে যেমন
@return
বা তেমন তথ্য উপস্থিত থাকতে হবে@throws
- পদ্ধতির নামগুলিতে সংযুক্তি ("এবং", "বা" ইত্যাদি) এর ব্যবহার সাধারণত পরামর্শ দেয় যে একক দায়িত্বের নীতিটি যথাযথভাবে সম্মানিত নয়
এই নামকরণ কনভেনশনটির বিরুদ্ধে আরও কিছু যুক্তিযুক্ত যুক্তি কি?
the use of conjunctions ("and", "or" etc.) in method names usually suggest that the Single Responsibility Principle is not properly respected
আপনি তালিকাভুক্ত উদাহরণগুলির ক্ষেত্রে এটি নয়, যেখানে ব্যর্থতাগুলি পরিচালনা করতে ব্যবহৃত ব্যবস্থাকে স্পষ্ট করতে সংমিশ্রণটি ব্যবহৃত হয়, এটি কোনও কাজ বা অন্য কোনও কাজ করতে পারে তা বোঝাতে নয়। এমনকি খুব সংক্ষিপ্ত-সংজ্ঞায়িত ফাংশনটিতে বৈধ ব্যর্থতা শর্ত থাকতে পারে, যেমন একটি খালি স্ট্যাক পপিং।
Int32.TryParse
এবং Int32.Parse
- উভয়ই একটি স্ট্রিংকে একটি পূর্ণসংখ্যার মধ্যে পার্স করে, তবে পূর্ববর্তীটি একটি বুলিয়ানকে সাফল্যের সূচনা করে এবং পরে ব্যর্থতার দিকে ছুড়ে দেয়।
Try...
, ...OrNull
, ...OrDefault
। @ এরিকলিপার্ট। নেট এ এটিই কেবল সম্মেলন নয়। Single
বনাম বিবেচনা করুন SingleOrDefault
, যা OrNull
প্রস্তাবিত ওপির খুব কাছাকাছি ।