आप जावा में व्यक्तिगत / शौक परियोजनाओं के लिए किस पैकेज के नामकरण सम्मेलन का उपयोग करते हैं?


143

मैं पहले से ही एक अद्वितीय पैकेज नाम (यानी पैकेज com.stackoverflow.widgets) बनाने के लिए डोमेन नाम का उपयोग करने के मानक जावा पैकेज नामकरण सम्मेलन से परिचित हूं । हालाँकि, मैंने कभी भी किसी भी सिफारिश को नहीं देखा कि व्यक्तिगत परियोजनाओं के लिए पैकेज के नाम कैसे चुनें। मैं मानता हूं कि यह इसलिए है क्योंकि यह वास्तव में व्यक्तिगत स्वाद का मामला है।

तो, आप निजी परियोजनाओं के लिए पैकेज के नाम का चयन कैसे करते हैं जो इसे कभी भी उत्पादन में नहीं लाएगा (आप अपने खाली क्षेत्र में एक नए ढांचे के साथ प्रयोग कर सकते हैं)। मान लें कि आपके पास एक निजी वेबसाइट नहीं है जिसका डोमेन आप अपनी पैकेज संरचना बनाने के लिए उपयोग कर सकते हैं, तो आप क्या करेंगे (या क्या करेंगे)? क्या आपके पास हॉबी प्रोजेक्ट्स के लिए नए पैकेज के नाम पैदा करने के लिए एक तार्किक प्रणाली है, या आप बस साधारण थ्रो-पैकेज पैकेज नामों का उपयोग करते हैं जैसेmypackage ?

चूंकि मैं सिर्फ यह देखने के लिए उत्सुक हूं कि इस पर विभिन्न लोगों के विचार क्या हैं, इसलिए मैंने इसे सामुदायिक विकि बना दिया है।

मेरे लिए व्यक्तिगत रूप से, मैंने इसे कभी ज्यादा सोचा नहीं था, लेकिन मैं आज रात विकेट के साथ खेलना चाहता था और मेरे साथ यह हुआ कि मुझे इस बात का स्पष्ट पता नहीं है कि मैं अपने शौक के प्रोजेक्ट को कैसे व्यवस्थित करना चाहता हूं। शौक परियोजनाओं के लिए एक अलग, विशिष्ट पैकेज नामकरण सम्मेलन (मेरे दिमाग में, कम से कम) व्यक्तिगत और काम से संबंधित कोड को स्पष्ट रूप से एक दूसरे से अलग रखने के लिए एक अच्छे तरीके के रूप में काम करेगा।

मैं एक साधारण hierarchal नामकरण सम्मेलन के बारे में सोच रहा था, एक रूट फ़ोल्डर में अपनी व्यक्तिगत परियोजनाओं के लिए स्रोत रखने के लिए:

  • myprojectsरूट फ़ोल्डर के रूप में उपयोग करें
  • प्रोजेक्ट का नाम जोड़ें
  • किसी भी अतिरिक्त उप नाम जोड़ें

इसलिए, मेरा विकेट प्रोजेक्ट पैकेज में होगा myprojects.learningwicketऔर यूनिट परीक्षण पैकेज में होगा myprojects.learningwicket.tests(उदाहरण के लिए)।


1
सामान्य, अपने आप को एक व्यक्तिगत डोमेन (firstname-lastname.net) प्राप्त करें और इसे पैकेज नाम के रूप में उपयोग करें। पैकेज का उद्देश्य विश्व स्तर पर अद्वितीय होना है, इसलिए मायप्रोजेक्ट वास्तव में इसे काट नहीं सकते हैं।
व्लादिमीर Dyuzhev

5
-ऑनियन डोमेन का उपयोग करना भी एक विकल्प (जैसे onion.duskgytldkxiuqc6.packagename) है। जब तक निजी कुंजी गुप्त रहती है, आप डोमेन नाम के नियंत्रण में रहते हैं। तो यह रजिस्टर (उत्पन्न) करने के लिए स्वतंत्र है, और यह स्थायी है (पारंपरिक डोमेन के विपरीत)। यह जावा सम्मेलन के पत्र के अनुरूप है, और यह आपको विशिष्ट पहचान देता है।
साटनिन

14
आप हमेशा एक GitHub खाता बना सकते हैं और io.github.username। * का उपयोग कर सकते हैं।
बर्डी हार्बरो

2
@BardiHarborow धन्यवाद, मैंने आपके सुझाव का इस्तेमाल किया।
निक वोल्किन

3
@GabrielBB, GitHub पेज आपको yourusername.github.io पर HTML और Jekyll साइटों की मेजबानी करने की अनुमति देता है, और इसलिए github.io के उप-डोमेन githHub उपयोगकर्ताओं के लिए github.com (जो आंतरिक के लिए उपयोग किया जा सकता है) के अनुरूप है। GitHub प्रोजेक्ट्स किसी भी समय)।
बाड़ी हार्बरो डे

जवाबों:


49

यदि आप केवल व्यक्तिगत परियोजनाएं कर रहे हैं जहां कोई और कोड का उपयोग नहीं करेगा, तो आप एक पैकेज नाम बना सकते हैं जो आपको पसंद है। के साथ शुरू होता है कि कुछ मत करना com.या net.या अन्य शीर्ष स्तर के डोमेन हालांकि, क्योंकि है कि अर्थ होगा कि आप डोमेन के स्वामी (यानी। का उपयोग कर com.johnअपने पैकेज का नाम के रूप में सिर्फ इसलिए आपके नाम जॉन होने वाला एक अच्छा विचार नहीं है) ।

यदि आप किसी और को कोड देने जा रहे हैं, तो आपको एक विश्व स्तर पर अद्वितीय पैकेज नाम का उपयोग करना चाहिए, जो कि जावा सम्मेलनों के अनुसार आपको पंजीकृत होना चाहिए और एक डोमेन नाम का उपयोग करना चाहिए।


1
तो अगर मैं पैकेज नाम को संबोधित करना चाहता हूं तो com.xyzक्या इस पैकेज का नाम कहीं पंजीकृत होना चाहिए ?? PS xyzमेरा क्लाइंट है।
प्रसाद

9
मुझे आश्चर्य है कि क्या मैं अपनी github आईडी का उपयोग उस और github डोमेन के लिए कर सकता हूं? जैसे com.github.mygithubid.myproject?
किरिल जी।

2
@KirillG। मैं इसके खिलाफ सिफारिश करना चाहूंगा, क्योंकि गिटहब आईडी को किसी भी समय, किसी भी समय बदला जा सकता है। दी गई, कोई भी डोमेन बदल सकता है, लेकिन आसानी से या अक्सर नहीं (सामान्य रूप से वैसे भी नहीं)। हालांकि मुझे लगता है कि यह शौक परियोजनाओं के लिए ठीक है।
सारा

26

मैं सिर्फ अपने इनिशियल्स का उपयोग करता हूं: fg.nameofproject.etc

यह टाइपिंग को कम करता है। इसे sf.net या com के साथ किसी भी समय उपसर्ग किया जा सकता है। or org। या com.google।

जैसा कि परियोजना व्यक्तिगत है, इसे विशेष रूप से अपने ताजा दबाए गए व्यक्तिगत उपहार शर्ट की तरह व्यवहार करें - यह अच्छा लगेगा।


42
bond.james.007
अपवोट

19
के अनुसार @click दिशा निर्देशों है कि हो सकता है bond.james._007- यह करने के लिए एक ही अंगूठी नहीं है ...: - {
corsiKa


19

<sarcasm>बाह। किसी भी स्वाभिमानी प्रोग्रामर का अपना डोमेन नाम होगा। यह स्पष्ट रूप से एक ट्रिक प्रश्न है। हर किसी का अपना निजी डोमेन नाम होता है! </sarcasm>:-)

ठीक है, सभी गंभीरता में, कस्टम डोमेन नाम खरीदना शायद सबसे आसान विकल्प है। लगभग 10 डॉलर प्रति वर्ष के लिए, आप डोमेन और फॉरवर्ड ईमेल की मेजबानी करने के लिए प्रतिष्ठित प्रदाता पा सकते हैं।


18
अजीब तरह से, यह आपके आत्मविश्वास को भी बढ़ावा देगा।
17

26
अच्छा जवाब है, लेकिन एक शुरुआती प्रोग्रामर शायद कुछ ट्यूटोरियल वेबसाइट या वीडियो का पालन करने के लिए एक वेबसाइट खरीदना नहीं चाहता है कि जीयूआई कैसे बनाएं।
जोकेम कुइजपर्स

17

मैं अपने अधिकांश शौक प्रोजेक्ट्स को Google कोड में संग्रहीत करता हूं, इसलिए मैं प्रोजेक्ट साइट का उपयोग पैकेज नाम के रूप में करता हूं com.googlecode.donkirkby.someproject:।


8
कितना अंधा हो सकता है हम अपने कार्यों की मूर्खता नहीं देख सकते थे?!
जोए सबे

1
आपको Google कोड, @Joey याद है? मैंने पिछले कई वर्षों से ज्यादातर GitHub का उपयोग किया है , इसलिए मुझे बस बंद करने से पहले Google कोड से अपनी कुछ पुरानी परियोजनाओं को स्थानांतरित करना पड़ा।
डॉन किर्कबी

तो क्या आपने संकुल का नाम बदला, googlecode नाम रखे, या ...?
सर्व-इन्

1
मैंने पुराने कोड का कोई उपयोग नहीं किया है क्योंकि मैंने इसे @ सर्व-इंक में स्थानांतरित किया है। या तो विकल्प काम करेगा।
डॉन किर्कबी

3

मेरा नाम अंजन है

आमतौर पर, मैं com.anjan का उपयोग करता हूं

मेरे पास अपनी खुद की एक फंतासी कंपनी है - कभी-कभी मैं इसका उपयोग करता हूं

sourceforge के साथ परंपरा (हाइबरनेट और दिखाए गए अन्य पैकेजों के रूप में) net.sf. * है

इसलिए, आपके मूड के आधार पर, आप उसके साथ जा सकते हैं।


13
जब तक आप भी anjan.com के मालिक नहीं हैं। मुझे लगता है कि आप ऐसा करने में बहुत गलत हैं।
फ्रेड्रिक

7
@ सौभाग्य से, ऐसा लगता है कि ajan.com जल्द ही किसी भी समय किसी भी पुस्तकालय को जारी नहीं करेगा।
corsiKa

1
@ कोर्सीका: आप सही कह रहे हैं, जब तक मैं कुछ भी जारी नहीं कर रहा हूं, मैं ठीक हूं। :-)
अंजन

3
@anjanb खैर, मैं वेबसाइट पर गया। वे पालतू भोजन करते हैं। मैं कोई विशेषज्ञ नहीं हूं, लेकिन अधिकांश पालतू खाद्य कंपनियां कई सॉफ्टवेयर लाइब्रेरी =) जारी नहीं करती हैं
corsiKa

3

मुझे लगता है कि आपने काम कर लिया है। यहां से बचने का प्रलोभन पैकेज नाम के साथ बिल्कुल भी परेशान नहीं करना है। कुछ कीस्ट्रोक्स को बचाना आसान है क्योंकि "मैं सिर्फ कुछ टेस्ट कोड लिख रहा हूं।" लेकिन तब कोड अच्छा और उपयोगी और बड़ा हो जाता है, और फिर आपको एहसास होता है कि आपके पास एक ठोस शुरुआत है जो लंबे समय तक रहने वाली लाइब्रेरी या एप्लिकेशन हो सकती है। यह एक पुस्तकालय या एक अनुप्रयोग नहीं हो सकता है जो कभी भी आपके घर नेटवर्क को छोड़ देता है, लेकिन बिंदु यह है कि आपने आगे नहीं सोचा है। यह कंप्यूटर विज्ञान का डेनमार्क भूत है - हमेशा आगे की सोचें, अगर केवल थोड़ा सा।

अपने शौक कोड के लिए मैं जो नामकरण सम्मेलन का उपयोग करता हूं, वह आपका बहुत पसंद है। मेरे पास एक शीर्ष-स्तरीय निर्देशिका है जिसका नाम "फ़्यूचर" है (लंबे, उबाऊ कारणों से कि यह नाम क्यों आया) के बारे में मेरे सभी कोड हैंग हो जाते हैं। मैं अपने कोड को पैकेज लाइब्रेरी में रखने की कोशिश करता हूं और व्यवस्थित करता हूं, भले ही यह एक वर्ग या पैकेज हो जो मैं किसी अन्य परियोजना के लिए उपयोग नहीं करता हूं। मैं सभी एप्लिकेशन (जो कि ऐसी कोई भी चीज़ है, जो फ़ुटुरा .app में एक शून्य मुख्य (स्ट्रिंग [] args)) है। * फ़ोल्डर। मैं अपने स्वयं के कोड के लिए मानक जावा लाइब्रेरी पैकेज नामों की नकल करने की कोशिश करता हूं, हालांकि कुछ मामलों में मैंने अपने स्वयं के स्वाद (यानी इंटरनेट के लिए futura.inet, न केवल सॉकेट, कोड, और futura.collections के कारण सम्मेलन को तोड़ दिया) -सुथ सामान।) डेविड पैरामीट को पैराफेयर करने के लिए: हमेशा जेनेरिक रहें। हमेशा जेनेरिक रहें!

जिस प्रश्न का आप पोस्ट करते थे, उस देखभाल से, मुझे संदेह है कि आप मेरे अंतिम बिंदु से भी सहमत हैं: आपको हॉबीस्ट हैकिंग को एक उद्यम-स्तरीय परियोजना के रूप में नहीं मानना ​​है, लेकिन अगर आप उस अनुशासन को घर के खेल में लाते हैं, शौक सभी अधिक पुरस्कृत है।


2

मैं अपने OpenID URL का उपयोग करता हूं और फिर मैं अपने प्रोजेक्ट का नाम जोड़ता हूं। उदाहरण के लिए, com.myopenid.cd1.twitterमेरे द्वारा विकसित किए जा रहे ट्विटर क्लाइंट का रूट पैकेज है।


मुझे यह पसंद आया, लेकिन फिर मुझे एहसास हुआ कि यह अब मौजूद नहीं है। :( janrain.com/myopenid-service-ends "1 फरवरी 2014 तक MyOpenID सेवा बंद कर दी गई है।"
उत्तराधिकारी


1

मैं सिर्फ अपने नाम का उपयोग करता हूं: surname.initials.xxx, संक्षिप्तता और टकराव से बचाव के बीच एक अच्छा समावेश है। मुझे लगा कि मुझे सार्वजनिक रूप से कोड प्रकाशित करने के लिए एक उचित टकराव मुक्त नाम स्थान देना चाहिए। मेरे पास एक छोटा सा कार्यक्रम भी है जो मैंने लिखा है जो पूरी निर्देशिका पेड़ों को वापस ला सकता है इसलिए मुझे लगा कि मुझे कभी भी इसे बहुत दर्द रहित प्रकाशित करने के लिए फिर से तैयार करना होगा ... इसलिए मैंने इस पर बहुत अधिक नींद नहीं ली।

Surname.initials.xxx के बाद, मैं एप्लिकेशन पैकेज के लिए या तो ऐप का उपयोग करता हूं, लाइब्रेरी पैकेज के लिए काम करता हूं, और सामान के लिए जो मैं विशुद्ध रूप से प्रयोग कर रहा हूं।


1

आप lastname.firstname.project के बारे में क्या सोचते हैं ??? जैसे luz.marlon.project?


16
यह आपके लिए काम कर सकता है, लेकिन जॉन स्मिथ और बॉब जोन्स संघर्ष में भाग सकते हैं जब वे किसी दिन अपना कोड जारी करना चाहते हैं।
छिपकली

0

मैंने यही सवाल पूछने के बारे में सोचा। अब तक मैं उपसर्ग com.tehvan का उपयोग किया है, भले ही मैं वास्तव में एक कंपनी नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.