مثالية عدد من الفئات في مساحة الاسم فرع [مغلقة]

StackOverflow https://stackoverflow.com/questions/146316

  •  02-07-2019
  •  | 
  •  

سؤال

ما عدد الفصول هل تعتقد مثالية في مساحة واحدة "فرع"?وعند هذه النقطة سوف تقرر كسر مساحة واحدة إلى عدة منها ؟ دعونا لا نناقش المنطقي مجموعة من الطبقات (نفترض أنها تجمع منطقيا بشكل صحيح), أنا في هذه المرحلة تركز على للصيانة مقابللا سند لها عدد من الفئات.

هل كانت مفيدة؟

المحلول

"رقم 42 ؟ لا, أنها لا تعمل..."

حسنا دعونا نضع برامجنا براعة العمل و نرى ما هو مايكروسوفت الرأي:

# IronPython
import System
exported_types = [
  (t.Namespace, t.Name)
  for t in System.Int32().GetType().Assembly.GetExportedTypes()]

import itertools
get_ns = lambda (ns, typename): ns
sorted_exported_types = sorted(exported_types, key=get_ns)
counts_per_ns = dict(
  (ns, len(list(typenames)))
  for ns, typenames
  in itertools.groupby(sorted_exported_types, get_ns))
counts = sorted(counts_per_ns.values())

print 'Min:', counts[0]
print 'Max:', counts[-1]
print 'Avg:', sum(counts) / len(counts)
print 'Med:',
if len(counts) % 2:
  print counts[len(counts) / 2]
else: # ignoring len == 1 case
  print (counts[len(counts) / 2 - 1] + counts[len(counts) / 2]) / 2

و هذا يعطينا الإحصاءات التالية على عدد من الأنواع في مساحة الاسم:

C:\tools\nspop>ipy nspop.py
Min: 1
Max: 173
Avg: 27
Med: 15

نصائح أخرى

مع بيئات التطوير الحديثة وغيرها من أدوات ديف, وأود أن أقول أنه إذا كان كل فئات تنتمي في مساحة, ثم لا يوجد أي عدد التعسفي الذي يجب تفريق مساحة فقط من أجل الصيانة.

أعتقد أن الاسم يجب أن تكون كبيرة كما يجب أن يكون.إذا كان هناك سبب منطقي لإنشاء الأخوة مساحة أو الطفل مساحة, ثم القيام بذلك.السبب الرئيسي كما أرى أن تنقسم إلى مساحات الأسماء هو سهولة التطوير ، مما يسهل على المطورين للتنقل مساحة الهرمي للعثور على ما يحتاجون إليه.

إذا كان لديك مساحة واحدة مع الكثير من أنواع و أنت تشعر أنه من الصعب العثور على بعض منها ، ثم النظر في نقلها إلى آخر مساحة الاسم.وأود أن استخدام الطفل مساحة الاسم إذا أنواع متخصصة الوالد مساحة أنواع و الأخوة مساحة الاسم إذا أنواع يمكن استخدامها بدون الأصلي مساحة أنواع أو غرض مختلف.بالطبع, كل هذا يتوقف على ما كنت تقوم بإنشاء و الجمهور المستهدف.

إذا كانت مساحة أقل من 20 أنواع ، فمن غير المرجح أن يكون من المفيد تقسيم.ومع ذلك ، يجب عليك أن تنظر في تخصيص مساحة أثناء التصميم بحيث تعرف مقدما عند النامية ، ما أنواع في مساحات الأسماء.إذا كان لديك مساحة تخصيص خلال التنمية ، نتوقع الكثير من إعادة بيع ديون كما يمكنك تحديد ما يجب أن تذهب فيها.

شيء واحد لم تتم تغطيتها هنا ، على الرغم من صلته كريس نقطة في الطريق ، هو أن learnabilty من مساحة ليست فقط ذات الصلة إلى عدد من العناصر.

(بالمناسبة ، هذا ينطبق على "مساحة" في أوسع معانيها - فئة في حد ذاته هو الاسم في المعنى في أنه يحتوي على بعض الأسماء التي تعني شيء مختلف في هذا السياق من أنها قد تكون في آخر ، enum هي مساحة في هذا المعنى أيضا).

دعونا نقول كنت تواجه XML ذات مساحة مع عنصر فئة.تعلمت قليلا عن هذا و عندما أنظر في السمة فئة أرى بعض التشابه.عندما ترى ProcessingInstruction الدرجة, أنا يمكن أن تجعل تخمين معقول حول كيف يعمل (و ربما خلل في التصميم إذا كنت تخمين خاطئ تماما ، في أفضل الاختلافات لا تحتاج فقط أن تكون موثقة ، ولكن أوضح).أستطيع أن أخمن أن هناك التعليق الدرجة حتى قبل أن أراه.سأذهب تبحث عن الخاص بك TextNode فئة أتساءل عما إذا كان هؤلاء جميعا ترث من عقدة بدلا من الاضطرار إلى التعرف عليهم من مستندات.سوف ترى من عدة معقول النهج أخذت مع لانج فئة بدلا من أتساءل عما إذا كان هناك.

لأنه كل ما يتصل المجال لدي المعرفة ، المفاهيمي "التكلفة" من هذه سبعة فصول هي أقل بكثير مما لو سبعة فصول حيث دعا ، الأغنام, التلفزيون, FallOfSaigon, Enuii, AmandaPalmersSoloWork, ForArtsSakeQuotient و تجاوز ما تمليه الإجراءات القانونية.

ويتصل هذا Chirs نقطة ، لأنه يقول أننا وينصح أجل الاستخدام للحفاظ على عدد من الخيارات أسفل.ومع ذلك ، إذا كان لدينا خيار من البلدان في الترتيب الأبجدي ، ونحن على الفور جروك قائمة كاملة واختيار واحد نحتاج على الفور ، لذلك نصيحة للحفاظ على الخيارات أسفل لا ينطبق (في الواقع ، عدد قليل من الخيارات في وقت يمكن أن تكون أقل فائدة ويحتمل أن تكون إهانة).

إذا كان لديك مساحة 200 الأسماء ، ولكن عليك فقط أن حقا تعلم نصف دزينة من فهم الكثير, ثم أنها سوف تكون أسهل بكثير جروك من وجود عشرات الأسماء مع قليلا بالنسبة إلى بعضها البعض.

أعلم أنك لا تريد مناقشة منطقية التجميع, ومع ذلك القيام تقسيم تحتاج إلى أن تكون قادرة على الفريق اثنين من مساحات مختلفة.أود أن تبدأ في النظر في مساحة جديدة في حوالي 30 الطبقات.ومع ذلك لن أعتبر مصدر قلق كبير.

يجب أن أقول أنني أجد كل ما سبق من المستغرب جدا في القراءة.

سهولة الاستخدام الخبراء يقولون لنا للحفاظ على عدد من الخيارات في القائمة إلى عدد محدود لذا نحن يمكن أن نرى على الفور جميع الخيارات.الأمر نفسه ينطبق على كيفية تنظيم العمل الخاص بك.

أنا عادة نتوقع 4-10 الأنواع في مساحة اسم.يحفظ كثيرا الصيد جولة الاشياء و التمرير صعودا وهبوطا.انها سريعة جدا وسهلة لنقل الأشياء حول استخدام resharper أنني لا أرى أي سبب لماذا لا.

شيء آخر يجب ذكره هو أنه غالبا ما يدفع إلى وضع الطبقة التي تحتوي على طرق الإرشاد في مساحة الاسم ، بحيث يمكنك تمكين أو تعطيل هذه أساليب الإرشاد مع using التوجيه.حتى إذا كان الشيء في مساحة الاسم هو ثابت الطبقة التي تحتوي على أساليب الإرشاد, الجواب هو 1.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top