একটি নেমস্পেসে ক্লাসের সংখ্যা - কোড গন্ধ?


11

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

আমার প্রশ্ন হ'ল: যখন কোনও নেমস্পেসের অনেক ক্লাস রয়েছে তখনও অন্য কেউ কি এটিকে "কোড গন্ধ" হিসাবে বিবেচনা করে - যদিও ক্লাসগুলি একে অপরের সাথে সম্পর্কিত? উপশ্রেণীকরণের অনুমতি দেয় এমন ক্লাসগুলিতে সূক্ষ্ম সন্ধানের জন্য আপনি কি প্রচুর প্রচেষ্টা করবেন?


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

হোয়াটসার স্টাইলকপ বলেছেন আইন the আমি বাজি ধরছি এটা ভাল লাগবে না।
কাজ

2
"বেশ কয়েকটি" সংজ্ঞা দিন। 10? 100? 1000?
এরিক কিং

উত্তর:


7

অগত্যা। যদি সমস্ত শ্রেণি প্রকৃতপক্ষে নেমস্পেস দ্বারা সংজ্ঞায়িত বিভাগের অন্তর্গত হয় তবে তা ঠিক আছে।

আপনি যা করতে পারেন তা হচ্ছে ক্লাসগুলি দেখে এবং তাদের মধ্যে কিছু সংযুক্ত হওয়ার সম্ভাবনা প্রতিফলিত করা। এই শ্রেণীর ছোট দলগুলি "পরিবার" কার্যকারিতা সমর্থন করে তবে কিছু historicতিহাসিক কারণে পৃথকভাবে প্রয়োগ করা হয়েছিল। এখন যখন পর্যাপ্ত সময় কেটে গেছে, একটি আরও ভাল রচনা তৈরি হতে পারে might


6

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

এগিয়ে যাওয়ার সহজতম উপায় হ'ল সমস্ত প্রাথমিক ক্লাসকে একটি একক নামস্থানে স্থাপন করা, যে কোনও উন্নত দৃশ্যের ক্লাসগুলিকে সাব-নেমস্পেসে টেক করা; .NET ফ্রেমওয়ার্ক সর্বদা এটি করে, এই অনুশীলনের ভাল উদাহরণগুলি দেখুন System.Collectionsএবং দেখুন System.Collections.Specialized

কেবলমাত্র এক বা দুটি প্রথম স্তরের নেমস্পেসের সাহায্যে আপনার কোডটি নেভিগেট করাতে আরও সহজ হয়ে যাবে, আপনার উন্নত বা বিশেষীকৃত ক্লাসগুলি লুকিয়ে রাখা রয়েছে যতক্ষণ না প্রোগ্রামার এটি আবিষ্কারের জন্য প্রস্তুত হয়।


3

যতক্ষণ না তারা একত্রে সম্পর্কযুক্ত এবং একে অপরের সাথে সম্পর্কিত, একটি নেমস্পেসে খুব বেশি ক্লাস থাকার সমস্যা নেই।

কোনও শ্রেণি তার নিজস্ব পৃথক নেমস্পেসের অন্তর্ভুক্ত কিনা তা ব্যক্তিগত পছন্দের বিষয়।

আরও প্রাকৃতিক দেখতে কি?

Parsers.XML.XmlParser.cs
Parsers.XmlParser.cs

এটি সম্পূর্ণরূপে নির্ভর করে যে আপনি কীভাবে আপনার কোডটি দেখতে এবং প্রার্থনা করতে চান on

ব্যক্তিগতভাবে, আমি কেবল তখনই পৃথক নেমস্পেসগুলি পছন্দ করি যখন আমি জানি যে এর সাথে সম্পর্কিত একক শ্রেণীর চেয়ে আরও বেশি কিছু থাকবে।


0

এটা ঠিকাসে. নেমস্পেসগুলি থাকার প্রাথমিক কারণ হ'ল নাম সংঘর্ষ এড়ানো এবং এর পরে কেবল আমাদের যৌক্তিক ক্ষেত্র সম্পর্কে চিন্তা করা উচিত, যা নিয়মের চেয়ে ব্যক্তিগত পছন্দের বিষয়। অবশ্যই কিছু বুদ্ধিমান নিয়ম স্বাগত। কেউই একটি নামস্থানে 3 কে k 4 কে ক্লাসে স্ক্রোল করতে চায় না।

একটি ভাল উদাহরণ এসটিডি সি ++ স্ট্যান্ডার্ড গ্রন্থাগারে নামস্থান যা আপনি স্ট্যান্ডার্ড বেশী থেকে আপনার নিজের আলগোরিদিম আলাদা করতে পারেন।


-1। নামের সংঘর্ষ গুরুত্বপূর্ণ, তবে ক্লাসগুলির ধারণাগত দলবদ্ধকরণ এটিও গুরুত্বপূর্ণ।
ইউলক্যাট 16
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.