2010-09-17 23 views
11

मुझे एक ऐसा नाम चुनने का काम सौंपा गया है जो वास्तव में हमारे वास्तुकला का आंतरिक नाम होगा। मैं इस ज़िम्मेदारी को गंभीरता से ले रहा हूं, क्योंकि मैंने बहुत सारे "बुरे" नामस्थानों के साथ काम किया है और दूसरों पर हमला नहीं करना चाहते हैं।नामस्थान नाम चुनते समय मुझे क्या पता होना चाहिए?

क्या मुझे "खराब" नामस्थान बनाता है?

मानव कारकों के संदर्भ में:

  • एक संक्षिप्त अनिवार्य रूप से कोई मतलब नहीं है कि: DDL, MOS, आदि
  • एक नाम स्थान में, एक और विक्रेता से एक आम एक से टकरा Office या Text या IO
  • की तरह
  • गैर-मूल अंग्रेजी बोलने वालों के लिए वर्तनी या उच्चारण करना एक नामस्थान है क्योंकि यह या तो एक विदेशी शब्द या उचित संज्ञा है: Vancouver

और इसी तरह।

मुझे वर्णनात्मक क्षमता और निमोनिक के संदर्भ में नामस्थान चुनने में सहज महसूस होता है। मैं सोच रहा हूं कि तकनीकी नामस्थान नामों के परिणाम क्या हो सकते हैं। उदाहरण के लिए, नामस्थान _ से कौन सी समस्याएं उत्पन्न हो सकती हैं, जो एक कानूनी सी # नामस्थान नाम है? e जैसे एक पत्र के बारे में क्या? क्या नामस्थान हैं जो कोडडॉम या परावर्तक को फिट करते हैं? कुछ नामस्थान जो सी # कारणों में कानूनी हैं अन्य नेट भाषाओं में समस्याएं हैं? क्या किसी नाम के लिए मोनो-अनुपालन नहीं है जो नामस्थान चुनना संभव है? क्या आपने नामस्थान के साथ काम किया है जिसने कंपाइलर या विजुअल स्टूडियो या विंडोज (या लिनक्स) फाइल सिस्टम से जुड़े कारणों के लिए अपना जीवन कठिन बना दिया है?

किसी भी मदद के लिए अग्रिम में पढ़ने और धन्यवाद के लिए धन्यवाद!

+1

IMO, सी # नामस्थान एकदम सही हैं, इसलिए मैं सिर्फ उन्हें कॉपी। 'सिस्टम' के बजाय मैं कंपनी का नाम, या उत्पाद का नाम उपयोग करता हूं। और यह सब मैं बदल गया हूँ। – BrunoLM

+0

@ ब्रूनोएलएम: परफेक्ट एक बहुत ही मजबूत शब्द है लेकिन मैं सहमत हूं। एमएस के नामस्थान बहुत अच्छी तरह से सोचा और व्यवस्थित हैं। लेकिन आप जावा के नामों को एक साथ रखकर जिस तरह से देख सकते हैं। एक .NET पृष्ठभूमि से आ रहा है मुझे लगता है कि जावा का संगठन अभी भी बेहतर है, आईएमएचओ। –

+0

मुझे प्यार है कि किसी ने इस सवाल से पूछा। पहले मैंने सोचा, यह इतनी छोटी बात है; लेकिन वास्तव में, सॉफ्टवेयर डेवलपर्स के रूप में, हमें हमेशा अच्छे डिजाइन निर्णय लेने का प्रयास करना चाहिए। यह इसका एक आदर्श उदाहरण है। और मैं बहुत सारे पुस्तकालयों को जानता हूं कि वहां नामहीन नाम हैं। –

उत्तर

18

गैर-तकनीकी सामग्री के लिए, फ्रेमवर्क डिज़ाइन दिशानिर्देश पढ़ें। उनके पास बहुत अच्छी सलाह है। संक्षेप में:

  • किसी कंपनी के नाम से शुरू करें।
  • स्थिर (संस्करण-स्वतंत्र) नाम चुनें। FrobCorp.FrobozzleV2.Utilities खराब है।
  • ऐसे नाम चुनें जो संगठन के राजनीति की बजाय कोड उद्देश्य को प्रतिबिंबित करते हैं। FrobCorp.AdvancedResearchDivision.CambridgeOffice खराब है; उन्नत शोध खोज का नाम बदलकर कल बदला जा सकता है और कैम्ब्रिज कार्यालय स्थानांतरित किया जा सकता है।
  • पास्कलकेस का उपयोग करें जब तक कि यह आपके ब्रांडिंग का उल्लंघन न करे। FrobCorp.jFrobozzle भयानक लग रहा है, लेकिन FrobCorp।Jfrobozzle भी बदतर लग रहा है।
  • उपयुक्त
  • और इसी तरह के plurals का उपयोग करें।

दिशानिर्देशों में बहुत अच्छी सलाह है कि मैंने यहां पुन: उत्पन्न नहीं किया है। उन्हें पढ़ें।

हालांकि, ऐसा लगता है कि आपको गैर तकनीकी सामान मिल गया है। दिशानिर्देशों में सलाह के बिट्स में से एक है "अपने नामस्थान के समान प्रकार का नाम न दें"। यह अच्छी सलाह नहीं है क्योंकि ऐसा करना पाठकों को भ्रमित कर रहा है; एक अच्छा तकनीकी कारण भी है।

तकनीकी कारणों से क्यों एक प्रकार अपने नाम स्थान के रूप में ही नामकरण एक भयानक विचार है के लिए, इस विषय पर मेरे लेख देखें:

http://blogs.msdn.com/b/ericlippert/archive/tags/namespaces/

+0

यह एक घर रन उत्तर है। –

+0

नामस्थान के लिए एक ही नाम नहीं होने के बारे में दिशानिर्देश अक्सर प्रोग्रामर द्वारा किया जाता था और जब मैंने इसे कई बार उल्लेख किया था, तो मैंने उसे आसानी से देखा है क्योंकि उसके पास उनके शीर्षक में प्रोग्रामर शब्द है। उन्होंने मुझे बताया कि उन दिशानिर्देश औसत लोगों के लिए हैं, जब वे फिट बैठते हैं तो उन्नत लोग उन्हें तोड़ सकते हैं। और जोड़ा भी एमएस वास्तव में खुद का उपयोग नहीं करता है। वैसे भी इन स्थितियों में क्या करना है जहां मुझे पता है कि अज्ञानता के कारण कोड गुणवत्ता पीड़ित है? क्योंकि जब आप जानते हैं कि परिवर्तन में एक बार है, तो इसे बाद में बदलने के लिए और अधिक जोखिम भरा है। –

+2

@ जोन: "नियम" और "दिशानिर्देश" के बीच का अंतर जानना महत्वपूर्ण है, और यह जानना महत्वपूर्ण है कि नियमों या दिशानिर्देशों को किसी बड़े लक्ष्य की खोज में सही समय कब दिया जाए। हालांकि, यह अधिकार के लिए एक अपील नहीं करता है! माइक्रोसॉफ्ट ने कभी-कभी इन दिशानिर्देशों का उल्लंघन किया है, और उनमें से कई उल्लंघनों को एनोटेटेड फ्रेमवर्क डिजाइन दिशानिर्देशों में उल्लेख किया गया है कि "आपको ऐसा क्यों नहीं करना चाहिए, क्योंकि हमारी गलती ने हमें बहुत दर्द दिया है"। ब्रैड अब्राम माइक्रोसॉफ्ट का उदाहरण एक नामांकन में एक चेतावनी कथा के रूप में एक संगठनात्मक विस्तार डालता है। –

0

सुनिश्चित करें कि आपके द्वारा वर्णित टक्कर के प्रकार से बचने के लिए नामस्थान विशिष्ट रूप से यथासंभव शुरू होता है। उदाहरण के लिए:

जो कुछ इकाई आप अपनी कंपनी के भीतर में है, उसके नाम के साथ
YourCompanyName.subnamespace.subsubnamespace 
YourLastName.YourFirstName.subnamespace.subsubnamespace 
-2

जाओ

+0

* तकनीकी कारण * के लिए क्या? .NET विकास sysem में शामिल कुछ, मनुष्य नहीं –

+0

कोई नहीं, जहां तक ​​मुझे पता है। यह बस सम्मेलन है। गवाह माइक्रोसॉफ्ट, क्रिस्टल, आदि – Beth

+0

एरिक लिपर का जवाब देखें कि यह एक बुरा विचार क्यों है। –

0

कोशिश भी मुश्किल नहीं है कि यह पहली बार सही पाने के लिए। कोई फर्क नहीं पड़ता कि आप कितना चालाक या साफ सोचते हैं कि आपका नामकरण सम्मेलन और संरचना हो सकती है कि आप नाम बदल रहे होंगे और चीजों को चारों ओर ले जायेंगे। यह वही है।

शुरुआत के लिए यह सुनिश्चित करना सबसे महत्वपूर्ण है कि आपके बेस नाम में टकराव की संभावना कम हो। बाद में आप ReSharper et al जैसे टूल के साथ आसानी से नेमस्पेस को दोबारा करने में सक्षम होंगे।

संबंधित मुद्दे