पैकेज के नामों में एक अलग शब्द कैसे होना चाहिए? निम्नलिखित में से कौन सा सही हैं?
com.stackoverflow.my_package
(अंडरस्कोर)com.stackoverflow.my-package
(हाइफ़न)com.stackoverflow.MyPackage
(टेढ़े मेढ़े संयुक्त शब्द)
सामान्य मानक क्या है?
पैकेज के नामों में एक अलग शब्द कैसे होना चाहिए? निम्नलिखित में से कौन सा सही हैं?
com.stackoverflow.my_package
(अंडरस्कोर)com.stackoverflow.my-package
(हाइफ़न)com.stackoverflow.MyPackage
(टेढ़े मेढ़े संयुक्त शब्द)सामान्य मानक क्या है?
जवाबों:
यहां बताया गया है कि आधिकारिक नामकरण सम्मेलनों के दस्तावेज क्या हैं:
संकुल
एक अनूठा पैकेज नाम का उपसर्ग हमेशा सभी लोअरकेस ASCII अक्षरों में लिखा है और शीर्ष स्तर के डोमेन नामों में से एक हो सकता है, वर्तमान में
com
,edu
,gov
,mil
,net
,org
, या अंग्रेजी दो अक्षर का कोड देशों की पहचान करने में से एक आईएसओ में विनिर्दिष्ट मानक 3166, 1981।पैकेज नाम के बाद के घटक एक संगठन के अपने आंतरिक नामकरण सम्मेलनों के अनुसार भिन्न होते हैं। इस तरह के सम्मेलनों में निर्दिष्ट किया जा सकता है कि कुछ निर्देशिका नाम घटक विभाजन, विभाग, परियोजना, मशीन या लॉगिन नाम हो सकते हैं।
उदाहरण
com.sun.eng
com.apple.quicktime.v2
edu.cmu.cs.bovik.cheese
ध्यान दें कि विशेष रूप से, शीर्ष-स्तरीय डोमेन उपसर्ग के बाद कुछ भी उपरोक्त दस्तावेज़ द्वारा निर्दिष्ट नहीं है। जेएलएस निम्नलिखित उदाहरण देकर भी इससे सहमत हैं:
com.sun.sunsoft.DOE
gov.whitehouse.socks.mousefinder
com.JavaSoft.jag.Oak
org.npr.pledge.driver
uk.ac.city.rugby.game
निम्नलिखित अंश भी प्रासंगिक है:
कुछ मामलों में, इंटरनेट डोमेन नाम एक मान्य पैकेज नाम नहीं हो सकता है। इन स्थितियों से निपटने के लिए कुछ सुझाए गए सम्मेलन हैं:
- यदि डोमेन नाम में एक हाइफ़न, या कोई अन्य विशेष वर्ण पहचानकर्ता में अनुमत नहीं है, तो इसे अंडरस्कोर में परिवर्तित करें।
- यदि परिणामी पैकेज नाम घटकों में से कोई भी कीवर्ड है तो उन्हें अंडरस्कोर करें।
- यदि परिणामी पैकेज नाम घटकों में से कोई भी एक अंक के साथ शुरू होता है, या किसी भी अन्य चरित्र को जो कि एक पहचानकर्ता के प्रारंभिक चरित्र के रूप में अनुमति नहीं है, तो घटक के लिए एक अंडरस्कोर होता है।
तीनों ही कन्वेंशन नहीं हैं।
का उपयोग करें com.stackoverflow.mypackage
।
पैकेज के नाम ऊंट आवरण या अंडरस्कोर या हाइफ़न पैकेज नामकरण सम्मेलन का पालन नहीं करते हैं ।
इसके अलावा, Google जावा स्टाइल गाइड बिल्कुल उसी (यानी com.stackoverflow.mypackage
) सम्मेलन को निर्दिष्ट करता है :
5.2.1 पैकेज के नाम
पैकेज के नाम सभी छोटे हैं, लगातार शब्दों के साथ बस एक साथ (कोई अंडरस्कोर नहीं)। उदाहरण के लिए,
com.example.deepspace
, नहींcom.example.deepSpace
याcom.example.deep_space
।- Google जावा स्टाइल गाइड: 5.2 पहचानकर्ता प्रकार के नियम: 5.2.1 पैकेज नाम ।
कोई भी अंडरस्कोर _ (इसके ठीक) का उपयोग कर सकता है
किसी को भी हाइपेन का उपयोग नहीं करना चाहिए - (इसका बुरा अभ्यास)
किसी को पैकेज के नाम के अंदर बड़े अक्षरों का उपयोग नहीं करना चाहिए (बुरा अभ्यास)
नोट: यहाँ "बुरा अभ्यास" तकनीकी रूप से आपके लिए उपयोग करने की अनुमति है, लेकिन पारंपरिक रूप से लिखने के लिए यह अच्छा व्यवहार नहीं है।
आधिकारिक नामकरण परंपराएं इतनी सख्त नहीं हैं, वे उपसर्ग ( com
आपके उदाहरण में) को छोड़कर ऊंट मामले की संज्ञा को 'मना' नहीं करते हैं ।
लेकिन मैं व्यक्तिगत रूप से ऊपरी मामलों के पत्रों और हाइफ़नेशन , यहां तक कि संख्याओं से बचता हूं । मैं com.stackoverflow.mypackage
भी Bragboy का सुझाव दिया पसंद करेंगे।
(hyphenations '-' पैकेज नामों में कानूनी नहीं हैं)
संपादित करें
दिलचस्प है - भाषा विनिर्देशन के नामकरण सम्मेलनों के बारे में भी कुछ कहना है।
में अध्याय 7.7 अनोखा पैकेज नाम हम चाहते हैं कि (ताकि केमलकेस अंकन ठीक हो जाएगा) अपर केस अक्षरों से मिलकर पैकेज के नाम के साथ उदाहरण देख सकते हैं और वे एक अंडरस्कोर ( "मरियम-लो" -> "mary_lou") द्वारा hyphonation को बदलने के लिए सुझाव देते हैं और उपसर्ग जावा अंडरस्कोर वाले कीवर्ड ("com.example.enum" -> "com.example._enum")
पैकेज नामों में ऊपरी केस पत्रों के कुछ और उदाहरण अध्याय 6.8.1 पैकेज नामों में पाए जा सकते हैं ।
अंडरस्कोर पैकेज नामों में बदसूरत दिखते हैं। क्या मूल्य के लिए, तीन या अधिक शब्दों के यौगिकों के मामले में मैं इनिशियल का उपयोग करता हूं (उदाहरण के लिए:) com.company.app.ingresoegresofijo (ingreso/egreso fijo) -> com.company.app.iefijo
और फिर पैकेज के उद्देश्य को दस्तावेज में package-info.java
।
पैकेज के नाम में शब्दों का समास कुछ ऐसा है जो अधिकांश डेवलपर्स नहीं करते हैं।
आप कुछ का उपयोग कर सकते हैं।
com.stackoverflow.mypackage
जेएलएस नाम घोषणा को देखें
com.stackoverflow.my.package