অনেক দিন আগে আমি একটি নিবন্ধ পড়েছি (আমি একটি ব্লগ এন্ট্রি বিশ্বাস করি) যা আমাকে নামকরণের বিষয়গুলিতে "ডান" ট্র্যাকটিতে রেখেছিল: আপনার প্রোগ্রামে জিনিসগুলির নামকরণ সম্পর্কে খুব বিচক্ষণ হতে হবে Be
উদাহরণস্বরূপ যদি আমার অ্যাপ্লিকেশনটি (একটি সাধারণ ব্যবসায়িক অ্যাপ্লিকেশন হিসাবে) হ্যান্ডলিং ব্যবহারকারী, সংস্থাগুলি এবং ঠিকানাগুলি ছিল আমার কাছে একটি User
, একটি Company
এবং একটি Address
ডোমেন শ্রেণি ছিল - এবং সম্ভবত কোথাও একটি UserManager
, ক CompanyManager
এবং AddressManager
এগুলি পপ আপ করে যা এই জিনিসগুলি পরিচালনা করে।
সুতরাং আপনি কি ঐ বলতে পারেন UserManager
, CompanyManager
এবং AddressManager
না? না, কারণ ম্যানেজার একটি খুব জেনেরিক পদ যা আপনার ডোমেন অবজেক্টগুলির সাথে আপনি যে কোনও কিছু করতে পারেন তার সাথে ফিট করে।
আমি যে নিবন্ধটি পড়েছি তা খুব নির্দিষ্ট নাম ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। যদি এটি একটি সি ++ অ্যাপ্লিকেশন UserManager
হত এবং এর কাজটি ব্যবহারকারীদের বরাদ্দ এবং গাদা থেকে মুক্ত করছিল এটি ব্যবহারকারীদের পরিচালনা করতে পারে না তবে তাদের জন্ম ও মৃত্যুকে রক্ষা করে। হুম, সম্ভবত আমরা এটিকে ডাকতে পারি UserShepherd
।
অথবা সম্ভবত এই UserManager
কাজটি হ'ল প্রতিটি ব্যবহারকারীর অবজেক্টের ডেটা পরীক্ষা করা এবং ক্রিপ্টোগ্রাফিকভাবে ডেটাতে স্বাক্ষর করা। তারপর আমরা একটি ছিল UserRecordsClerk
।
এই ধারণাটি আমার সাথে আটকে গিয়ে আমি এটি প্রয়োগ করার চেষ্টা করি। এবং এই সহজ ধারণাটি আশ্চর্যজনকভাবে সন্ধান করুন।
আমি ক্লাসগুলি কী করে তা বর্ণনা করতে পারি (যতক্ষণ না আমি দ্রুত এবং নোংরা কোডিংয়ের মধ্যে না পড়ে) আমি যে ক্লাসগুলি লিখি তা ঠিক একটি জিনিস করে। নামগুলিতে এই বিবরণটি থেকে আমি যা মিস করতে চাই তা হ'ল নামগুলির একধরনের ক্যাটালগ, একটি শব্দভাণ্ডার যা নামগুলিতে ধারণাগুলিকে মানচিত্র করে।
শেষ পর্যন্ত আমি আমার মনে একটি প্যাটার্ন ক্যাটালগের মতো কিছু পেতে চাই (প্রায়শই ডিজাইনের নিদর্শনগুলি সহজেই বস্তুর নাম সরবরাহ করে, যেমন একটি কারখানা )
- কারখানা - অন্যান্য বস্তু তৈরি করে (নকশার ধরণ থেকে নেওয়া নামকরণ)
- রাখাল - একজন রাখাল বস্তুর আজীবন, তাদের তৈরি এবং শাটডাউন পরিচালনা করে
- সিঙ্ক্রোনাইজার - দুই বা ততোধিক অবজেক্টের মধ্যে ডেটা অনুলিপি করে (বা বস্তুর শ্রেণিবিন্যাস)
ন্যানি - তৈরির পরে অবজেক্টগুলিকে "ব্যবহারযোগ্য" অবস্থায় পৌঁছাতে সহায়তা করে - উদাহরণস্বরূপ অন্যান্য বস্তুর ওয়্যারিং করে
ইত্যাদি ইত্যাদি
সুতরাং, আপনি কীভাবে এই সমস্যাটি পরিচালনা করবেন? আপনার কি স্থির শব্দভাণ্ডার রয়েছে, আপনি উড়তে নতুন নাম উদ্ভাবন করেন বা আপনি নামকরণকে অত-গুরুত্বপূর্ণ বা ভুল না বিবেচনা করেন?
PS: আমি ইস্যুটি নিয়ে আলোচনা করা নিবন্ধ এবং ব্লগগুলির লিঙ্কগুলিতেও আগ্রহী। শুরু হিসাবে, এখানে মূল নিবন্ধটি আমাকে এটি সম্পর্কে চিন্তাভাবনা করেছে: 'ম্যানেজার' ছাড়াই জাভা ক্লাসের নামকরণ
আপডেট: উত্তরের সংক্ষিপ্তসার
এর মধ্যে আমি এই প্রশ্নটি থেকে কী শিখেছি তার একটি সামান্য সংক্ষিপ্তসার এখানে দেওয়া হল।
- নতুন রূপক (Nanny) তৈরি না করার চেষ্টা করুন
- অন্যান্য ফ্রেমওয়ার্কগুলি কী করে তা একবার দেখুন
এই বিষয়ে আরও নিবন্ধ / বই:
- নিজেকে নিয়মিতভাবে ক্লাসে সংশোধন / সংযোজন করতে কোন নামগুলি পান?
- নামকরণ ক্লাসের সেরা পদ্ধতির কী?
- বই: নকশার ধরণগুলি: পুনরায় ব্যবহারযোগ্য অবজেক্ট-ওরিয়েন্টড সফ্টওয়্যার এর উপাদানসমূহ (হার্ডকভার)
- বই: এন্টারপ্রাইজ অ্যাপ্লিকেশন আর্কিটেকচারের প্যাটার্নস (হার্ডকভার)
- বই: বাস্তবায়ন প্যাটার্নস (পেপারব্যাক)
এবং উত্তরগুলি থেকে আমি সংগ্রহ করা নামের উপসর্গ / প্রত্যয়গুলির বর্তমান তালিকা:
- সমন্বয়কারী
- নির্মাতা
- লেখক
- পাঠক
- ক্রীড়াশিক্ষক
- আধার
- প্রোটোকল
- লক্ষ্য
- পরিবর্তক
- নিয়ামক
- দৃশ্য
- কারখানা
- সত্তা
- বালতি
এবং রাস্তার জন্য একটি ভাল টিপ:
প্যারালাইসিস নামকরণ করবেন না। হ্যাঁ, নামগুলি খুব গুরুত্বপূর্ণ তবে এগুলি প্রচুর পরিমাণে সময় নষ্ট করার পক্ষে যথেষ্ট গুরুত্বপূর্ণ নয়। যদি আপনি 10 মিনিটে কোনও ভাল নামটি ভাবতে না পারেন তবে এগিয়ে যান।