আঙ্কেল বব 'বিশেষ্য বাক্যাংশের নামগুলি' বলতে কী বোঝায়?


14

আমি চাচা বব দ্বারা ক্লিন কোড পড়ছি । যেহেতু আমি স্থানীয়-ইংরেজী স্পিকার নই, আমি নিম্নলিখিত বিবৃতিটি বুঝতে পারি নি:

ক্লাস এবং অবজেক্টের মত বিশেষ্য বা বিশেষ্য ফ্রেজ নাম থাকা উচিত Customer, WikiPage, Account, এবং AddressParser। চলুন শব্দ পছন্দ Manager, Processor, Data, অথবা Infoএকটি বর্গ নামে। একটি শ্রেণীর নাম ক্রিয়াপদ হওয়া উচিত নয়।

আমি জানি, কেউ হিসাবে Manager, Processor, Data, এবং Infoএকটি ক্রিয়াপদ হয়, তাই নয় কি? তিনি কী জোর দিতে চান আসল পয়েন্ট?


সম্ভবত আঙ্কেল বব রিসোর্সফুল চিন্তাভাবনাটি রিসোর্স-অ্যাস-অবজেক্টের গুণাবলীকে গুণকৃত করে তুলছেন।
রওয়ং

উত্তর:


21

তিনটি বিষয় পৃথক:

  • শ্রেণীর নামগুলি বিশেষ্য বা বিশেষ্য বাক্যাংশ হওয়া উচিত । এর অর্থ শ্রেণীর নামটি এমন কিছু হওয়া উচিত যা একটি ক্রিয়াপদের বিষয় হতে পারে। অবজেক্ট-ওরিয়েন্টেড ডিজাইনের ক্ষেত্রে, পদ্ধতিগুলি এমন ক্রিয়াগুলি হবে যা শ্রেণীর প্রতিনিধিত্বকারী জিনিসটির উপর ঘটে।

  • কিছু কথা এড়ানো উচিত। Managerএকটি সম্ভাব্য godশ্বর শ্রেণি নির্দেশ করে । Infoএবং Dataএকটি ডামি ডেটা ধারক ইঙ্গিত করতে পারে। এর মতো শব্দগুলি সমস্যার জায়গার দুর্বল মডেলিং ইঙ্গিত করতে পারে।

  • ক্রিয়াগুলি কখনই শ্রেণীর নাম হওয়া উচিত নয়। প্রথম পয়েন্টটি দেখুন - ক্লাস মডেল জিনিসগুলি, পদ্ধতিগুলির মডেল ক্রিয়াগুলি।


1
এর মতো শব্দগুলি সমস্যার জায়গার দুর্বল মডেলিং ইঙ্গিত করতে পারে। - ঠিক আছে, কেউ মনে করবেন, হয় সমস্যা জায়গার মডেলটি খারাপভাবে করা হয় না বা নাম চয়ন করে বেছে নেওয়া হয়। একটি ভাল নাম একটি খারাপ নকশা সাহায্য করে না; এবং একটি ভাল নকশা কেবলমাত্র একটি খারাপ নাম দ্বারা আঘাত করা হয়।
ইনগো

আপনি কীভাবে প্রকৃতপক্ষে আপনার শ্রেণী তৈরি করেন এবং বাইরের বিশ্বের সাথে এটি কীভাবে মিথস্ক্রিয়া করে তা বিবেচনা করার সময় আপনি এই পদক্ষেপটি কমিয়ে নিতে পারেন - শ্রেণীর বৈশিষ্ট্যগুলি সাধারণত বিশেষ্য হবে, যখন শ্রেণীর পদ্ধতিগুলি সাধারণত ক্রিয়া হবে
পিটএইচ

যদি আপনার প্রকল্পের এমন কোনও শ্রেণি থাকে যা আপনি "ম্যানেজার" বা "তথ্য" বা "ডেটা" কল করার বিষয়টি বিবেচনা করবেন তবে এর সম্ভবত সম্ভবত এমন এক ডজন বর্গ রয়েছে যার অর্থ আপনি এই নামগুলি ব্যবহার করবেন না। আপনার কাছে এই ম্যানেজার এবং থ্যাট ম্যানেজার এবং আরেকটি ম্যানেজার এবং অন্য কিছু থাকবে।
gnasher729

তিনি বলেছেন ক্রিয়াপদগুলি কখনই শ্রেণীর নামযুক্ত হওয়া উচিত নয়, তবে আমি কেবল অ্যাডিং অর্থবোধক প্রবন্ধটি পুনরায় পড়ছিলাম এবং তার পৃষ্ঠা 29 এ, তিনি একটি শ্রেণীর নাম গেসেস্ট্যাটিক ম্যাসেজ M এখন আমি বিধি সম্পর্কে বিভ্রান্ত হয়ে পড়েছি, কারণ আমি অনুমানের বিপরীতে তাঁর অনুমানকে ক্রিয়াপদ হিসাবে ব্যাখ্যা করলাম। অভিধান.
ডেভিন গ্লিসন ল্যামবার্ট

2
@ ডিভাইনগ্লিসন ল্যামবার্ট তবে এটি অনুমান করা যায় না। এটি অনুমানের পরিসংখ্যান বার্তা। একটি বার্তা একটি বিশেষ্য। অনুমান পরিসংখ্যান কেবল ম্যাসেজের ধরণের বর্ণনা দেয় যা এটি - অনুমানের পরিসংখ্যান সম্পর্কে বার্তা।
টমাসের মালিক

7

তিনি জিনিস (বিশেষ্য) এবং ক্রিয়া (ক্রিয়া) এর মধ্যে পার্থক্য আনার চেষ্টা করছেন । প্রচলিত আপত্তি-ভিত্তিক নকশায় আমরা ক্লাসকে জিনিস হিসাবে এবং তাদের পদ্ধতিগুলি সেই জিনিসগুলি সম্পাদন করতে পারে এমন ক্রিয়া হিসাবে বিবেচনা করি। করতে পরিচালনা করার সময়, যত্ন নিতে বা তুল্য হয় ব্যবস্থাপক ব্যক্তি বা জিনিস যে পরিচালনা করা হয়।

পরিচিতি বই সাধারণত বার্ক এবং বাইট পদ্ধতি সহ কুকুর নামে শ্রেণীর মতো খুব সহজ এবং সুস্পষ্ট পদগুলিতে এটিকে সিদ্ধ করে তোলে । বাস্তব বিশ্বের শ্রেণিতে, পার্থক্যটি প্রায়শই কিছুটা আরও সূক্ষ্ম হয়, তবে এটি এখনও রয়েছে। আমি বিশ্বাস করি আঙ্কেল বব যে পয়েন্টটি তৈরি করছেন তা হ'ল ম্যানেজারটি বিশেষ্য হলেও এটি ম্যানেজার যা করেন তার দিকে খুব বেশি নজর দেয় এবং এটি কী তা নয় - এটি ঠিক কী তা বর্ণনা করার জন্য কোনও শব্দের খুব স্পষ্ট নয় ue পরিচালিত হচ্ছে বা কিভাবে।


5
দুর্ভাগ্যক্রমে, এই ধরণের চিন্তাভাবনা ভুল ডিজাইনের দিকে পরিচালিত করতে পারে। প্রধান উদাহরণগুলির মধ্যে একটি হ'ল একটি ব্যাংক অ্যাকাউন্টের ক্লাসিক সূচক উদাহরণ। প্রায় সমস্ত OO পাঠ্যপুস্তকগুলিতে, Accountএকটি বস্তু, balanceক্ষেত্র এবং transferপদ্ধতি and তবে সঠিক নকশাটি Transferহ'ল : একটি বস্তু, accountক্ষেত্র এবং balanceএকটি পদ্ধতি। এইভাবে ব্যাংকিং সিস্টেম এর আসলে বাস্তবায়িত এবং কিভাবে আসলে কম্পিউটারের সামনে কাজ ব্যাংকিং।
জার্গ ডব্লু মিট্টাগ

@ জার্গডব্লিউমিতাগ: এই সতর্কতামূলক কাহিনী একটি উত্তর হিসাবে পোস্ট করা ভাল; এগুলি সাধারণ নির্দেশিকাগুলি এবং কিছু বিরল ক্ষেত্রে খারাপ পচন হতে পারে।
স্মি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.