"फोननंबर", "मोटरसाइकिल", "वेवलेंथ", आदि जैसे शब्दों के लिए ऊंट मामले को कैसे लिखें


75

मुझे यह समझने में समस्या हो रही है कि मेरे कुछ चर नामों के लिए कैमेलकेस सिंटैक्स कैसे लागू किया जाए ।

उदाहरण के लिए, मुझे ऊंट के मामले में "फोननंबर" जैसे शब्द को कैसे सही ढंग से लिखना चाहिए? यह है phoneNumberया phonenumber? इसी तरह "उपयोगकर्ता नाम" के साथ, यह है usernameया userName?

मुझे लगता है कि यह सही ऊंट मामले से नहीं लगती है जैसे motorCycle, passWord, sunDay, setUpया waveLengthये सिर्फ एक शब्द प्रत्येक रहे हैं के बाद से। मुझे लगता है कि ऐसा क्यों कहा जा सकता है hashMapलेकिन hashtableपिछले मामले में राजधानी के बिना ऊंट मामले में भी क्योंकि हैशटेबल एक शब्द है जबकि हैश मैप दो शब्द हैं।

लेकिन अगर मोटरसाइकिल का रंग एक है तो क्या यह तब से होगा motorcycleColorजब एक शब्द सम्‍मिलित है? क्या यह सही है या यह होना चाहिए phoneNUmber, waveLength, sunBlockऔर यहां तक कि sunDayसप्ताह के रविवार के लिए?

उदाहरण के लिए, विधि को क्यों कहा जाता है, getISOCountriesजबकि यह कहता है कि HttpHeadersयह स्पष्ट नहीं है कि अगर हमारे पास कोई विधि है String camelCaseString = dog.toCamelCase()या क्या है interface CamelCase

संबंधित: https://english.stackexchange.com/questions/889/when-should-compound-words-be-written-as-one-word-with-hyphens-or-with-spaces


7
ऐसे मामलों के लिए जहां आपके लिए यह बताना कठिन है कि क्या दो-शब्द वाक्यांश एक यौगिक शब्द है, एक पूंजीकरण चुनें और इसके साथ रहें। अधिकांश कोडिंग सम्मेलनों के साथ, एक ही परियोजना के अनुरूप होना सबसे महत्वपूर्ण है।
केविन

2
महान प्रश्न, मैंने हमेशा खुद से पूछा कि "फ़ाइलनाम" (और गलत "फ़ाइलनाम") कैसे लिखें। मुझे लगता है कि इस शब्द प्रोग्रामर से प्रोग्रामर के लिए अलग तरह से लिखा गया है ...
रे

3
@PacMani आप यहाँ चर्चा का आनंद सकता है !
जेसन सी

4
@ 909Niklas मैं "नाम" पूरी तरह से संभव के रूप में छोड़ देंगे। बस "सड़क" का उपयोग करें यदि यह एक स्ट्रिंग है, तो यह एक नाम है जब तक कि यह हानिकारक या भ्रमित न हो। usernameयह क्या है, यह एक कॉल साइन है, न कि "उपयोगकर्ता का नाम", इसलिए यह मोटरसाइकिल की तरह पहले नाम या अंतिम नाम (जिसे ऊंट होना चाहिए) से अधिक है
पीटर टर्नर

2
@PeterTurner कुछ प्रोग्रामर कहेंगे कि streetएक वर्ग और nameउसकी एक विशेषता / डेटा सदस्य होना चाहिए ।
JAB

जवाबों:


173

आपको उस पत्र को कैपिटल में बदलना चाहिए, जहां "सामान्य रूप से" एक स्थान होगा (जब आप सोर्सकोड के बजाय एक पत्र लिखेंगे)। आपकी पहली धारणा सही है:

  • यह एक "मोटरसाइकिल" है, न कि "मोटर साइकिल", इसलिए आपके चर का नाम होना चाहिए motorcycle, नहीं motorCycle
  • यह एक "हैश मैप" है, इसलिए आप साथ चलते हैं hashMap, नहीं hashmap
  • "रविवार" एक शब्द है -> sunday, नहीं sunDay
  • जबकि "सप्ताह का दिन" होगा dayOfWeek, नहीं dayofweek

4
इसके लायक क्या है, मेरी टीम और मैं आम तौर पर hashmapएक ही शब्द के रूप में उपयोग करते हैं , हालांकि विडंबना यह है कि हम नहीं करते हैं tree mapकंधे उचकाने की क्रिया
corsiKa

1
ठीक है, मोटरसाइकिल एक किनारे का मामला है (यह वास्तव में, मूल रूप से एक मोटर साइकिल थी, हालांकि अब यह कुछ अलग है); honeyBee(और नहीं honeybee, वास्तव में "हनीबी" नहीं बल्कि "हनी बी"), और butterfly
ओरोम

3
गैर-एड्रेस्ड setUpमामला एक किनारे का मामला है, हालांकि, यह एक एकल शब्द है, लेकिन JUnitऐतिहासिक रूप से इसका नाम फिक्सेशन इनिशियलाइज़ेशन है setUp
TC1

23
@ TC1 वास्तव में, "सेटअप" एक संज्ञा है , कभी क्रिया नहीं। कार्रवाई का सही रूप "सेट अप" करें। JUnitयह सही है, हम में से बाकी के किनारे मामले हैं। :)
जेसन सी

3
@JasonC धन्यवाद, आखिरकार यह समझ में आता है कि काउंटर-पार्ट क्यों है tearDown: D
TC1

44

भाग 1
मुझे लगता है कि जो आपको ट्रिप कर रहा है वह यह है कि आपके कुछ उदाहरण यौगिक शब्द हैं , जबकि अन्य नहीं हैं।

  • फोन नंबर // एक यौगिक शब्द नहीं है
  • मोटरसाइकिल // यौगिक शब्द
  • तरंग दैर्ध्य // यौगिक शब्द
  • sunblock // यौगिक शब्द
  • रविवार // यौगिक शब्द *
  • मोटरसाइकिल रंग // एक गैर-यौगिक शब्द के साथ प्रयुक्त यौगिक शब्द।

यौगिक शब्द यौगिक शब्द में दूसरे शब्द के लिए ऊंट मामले संकेतन का पालन नहीं करते हैं।

तो यह है motorcycleऔर नहीं motorCycle

लेकिन "फोन नंबर" एक यौगिक शब्द नहीं है और यह ऊंट मामले संकेतन का पालन करेगा । यानी phoneNumber

और वह होता है motorcycleColor:।

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

भाग 2
आपके दो उदाहरण थोड़े पेचीदा हैं।

  • हैश मैप
  • हैश टेबल

वे मुश्किल हैं क्योंकि कुछ उन्हें "हैशमैप" और "हैशटेबल" कहेंगे। मेरे द्वारा अभी-अभी जाँच की गई डिक्शनरी के अनुसार, वे अलग-अलग शब्द हैं, यौगिक शब्द नहीं। तो सही ऊंट का मामला hashMapऔर होगा hashTable। हर टीम उस सम्मेलन का अनुसरण नहीं करती है, इसलिए आपको अपने टीम के साथियों से पूछना चाहिए कि वे क्या पसंद करते हैं और फिर उसी से चिपके रहते हैं। इस मामले में संगति अधिक महत्वपूर्ण है जो एक शब्दकोश सही कह सकता है।

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


6
सप्ताह के अन्य दिन भी सभी यौगिक थे: "सोमवार" <- चंद्रमा का दिन, मंगलवार <- तिवारी का दिन, बुधवार <- वोडेन का दिन, गुरुवार <- थोर का दिन, शुक्रवार <- फ्रिग का दिन, शनिवार <- शनि का दिन
केविन 18

6
@kevincline: दिनों के नामों के उन रूपों को शायद अब पुरातन माना जाता है, इसलिए वास्तव में व्यावहारिक उद्देश्यों के लिए गिनती नहीं है। ... जब तक आप वास्तव में ऐसा कोड नहीं लिखते हैं जो if (currentDay == thorsDay) {...हम्म जैसा दिखता है ... बहुत खराब तारीख वाले पुस्तकालयों के पास प्रारूपण विकल्प के रूप में ऐसा नहीं होता है जब आप सप्ताह के दिन का पूरा नाम प्राप्त करना चाहते हैं।
FrustratedWithFormsDesigner

15
@FrustratedWithFormsDesigner: बिंदु यह था कि आधुनिक उपयोग में, रविवार एक यौगिक शब्द है जो सोमवार को उसी डिग्री पर है: बिल्कुल नहीं। यह सिर्फ एक दुर्घटना है कि "रविवार" में "सूर्य" अकेला खड़ा हो सकता है, जबकि "चंद्रमा का दिन" को "सोमवार" तक छोटा कर दिया गया था
केविन क्लाइन

6
बेहतर अभी तक, अपने चर के लिए बेहतर नामों का उपयोग हैशटैप या हैशटेबल से करें। यह एक फिसलन भरी सड़क है जो इस अद्भुत लाइन को कोड की ओर ले जाती है:HashMap hashMap = new HashMap();
एरिक एंड्रेस

8

जैसा कि अन्य लोगों ने बताया है कि शब्दों को जोड़ते समय ऊंट मामले का उपयोग किया जाता है। एक भी अंग्रेजी शब्द के भीतर ऊंट के मामले का उपयोग न करें। समस्या यह निर्धारित करने में आती है कि कौन से यौगिक एकल शब्द हैं। खुद के लिए छोड़ दिया, प्रोग्रामर अंग्रेजी के अपने ज्ञान के आधार पर विभिन्न फैसलों में आएंगे। यह पूंजीकरण में विसंगतियों की ओर जाता है, जो लगभग मिसिंगेलिंग के रूप में कष्टप्रद हैं।

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

अपनी परियोजना के लिए एकल संदर्भ लेने से पूंजीकरण और वर्तनी के बारे में अधिकांश तर्क हल हो जाएंगे। हैशटेबल जैसे कुछ यौगिक हैं जो शब्दकोशों में नहीं हैं, लेकिन जावा और सी # एपीआई में एकल शब्दों के रूप में पूंजीकृत हैं। आप उन लोगों के बारे में एक परियोजना-व्यापी निर्णय लेना चाहेंगे। जावा में, यह "हैशपॉप" है लेकिन "हैशटेबल" है। IMO "हैशटेबल" स्पष्ट रूप से गलत है; यह एपीआई में एक नाम के अलावा कभी भी एक शब्द के रूप में प्रकट नहीं होता है।


4

ऊँट केस करने का सबसे सरल तरीका है शब्द का परिसीमन।

आपके प्रश्न के उदाहरण:

  • फोन नंबर: phoneNumber
  • मोटरसाइकिल: मोटरसाइकिल
  • रविवार: रविवार
  • तरंग दैर्ध्य: तरंग दैर्ध्य

यदि आप इसे दो शब्दों में विभाजित नहीं करेंगे, तो आपको इस पर ऊंट मामले का उपयोग नहीं करना चाहिए। अन्यथा आप सिलेबल्स पर इसका उपयोग कर रहे हैं और यह कैसे मूर्खतापूर्ण है

  • auxIlIArY (यह एक 5 शब्द है; गैर-मोनोस्पेज़ / सैन्स-सेरिफ़ फोंट पर बकवास की तरह I का उल्लेख नहीं है)।

5
फोन नंबर का अपना शब्द नहीं है, इसे एक ही शब्द के रूप में Google में डालें, यह खुशी से सब कुछ देख लेगा जिसमें "फोन नंबर" है न कि फोननंबर। और सेटअप दो शब्द नहीं है, न ही पासवर्ड है।
जेफ लैंगमेयर

6
@JeffLangemeier एक बहुत छोटा वक्रोक्ति: "सेटअप" एक संज्ञा है, जबकि "सेट अप" एक क्रिया है। इसलिए यदि आपके पास एक वस्तु है जो यह दर्शाती है कि किसी चीज़ को कैसे सेट किया जाता है तो उसे कॉल किया जाएगा setup, जबकि यदि आपके पास कुछ सेट करने का कोई कार्य है तो उसे कॉल किया जाएगा setUp
21

2
@bdesham मुझे इस बात का एहसास है, लेकिन मैं बस सेटअप से दूर रहूंगा, क्योंकि एक बेहतर, कम अस्पष्ट क्रिया को इनिशियलाइज़ किया जाएगा, मैं वास्तव में सेटअप के वर्जन संस्करण के बारे में पूरी तरह से भूल गया था।
जेफ लैंगमेयर

1
मुझे लगता है कि "वा" से शुरू होने वाला wavelengthया तो हो सकता है या waveLengthइस पर निर्भर करता है कि प्रश्न में मूल्य आवृत्ति से विभाजित प्रसार वेग से संबंधित है, या क्या यह किसी प्रकार की लहर की "लंबाई" (जरूरी नहीं कि दूरी) से संबंधित है । उदाहरण के लिए, एक तरंग के साथ जुड़े नमूनों की संख्या के लिए एक ऑडियो संश्लेषण पुस्तकालय का चर wavelengthलेकिन नहीं होगा waveLength
23

2
@kevincline: ऑडियो सिंथेसिस इंजनों में, वेव टेबल्स का होना आम है, जिसमें एक तरंग के पूरे या एक से अधिक नमूने होते हैं। जब प्लेबैक तालिका के अंत तक पहुंचता है, तो यह या तो शुरुआत (सरल इंजन के लिए) या लहर में किसी अन्य स्थान पर वापस आ जाता है। निश्चित रूप से, WaveLengthकिसी भी तरह से थोड़ा अस्पष्ट होगा , लेकिन सबसे सरल परिदृश्य [यह बफर आकार या लूपिंग अनुभाग की लंबाई को संदर्भित करता है] लेकिन शब्द पूरी तरह से एक लंबे नाम में दिखाई दे सकते हैं।
सुपरकैट

4

यह वह जगह है जहां सादे अंग्रेजी के साथ एक जटिलता मिलती है कि कैसे एक बाद में प्रोग्रामिंग संदर्भों में टोकन के सफेद-अंतरिक्ष नियमों के साथ फिट होने के लिए अंग्रेजी का दुरुपयोग करता है।

आपके द्वारा दिए गए उदाहरण शब्दों में से, लगभग सभी यौगिक हैं। रविवार का दिन ऐसा नहीं है, जब यह एक यौगिक के रूप में उत्पन्न हुआ था, इसने बहुत पहले ऐसा किया था कि अब इसे मुश्किल से एक माना जा सकता है, विशेष रूप से इसका सूर्य को समर्पित होना धार्मिक और सांस्कृतिक के एक मजबूत हिस्से की तुलना में एक ऐतिहासिक जिज्ञासा है। अंग्रेजी बोलने वाले लोगों का दृष्टिकोण।

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

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

और जब एक टोकन बनाने के लिए अंतर-कैपिंग, अंतरिक्ष या हाइफ़न को हटा दिया जाता है और शीर्षक-मामले में लिखा गया दूसरा और बाद वाला शब्द, इसलिए phoneNumberया PhoneNumberआपके सम्मेलन के लिए उपयुक्त है।

जो बात phoneNumberअजीब लगती है, वह शायद यह है कि यह आमतौर पर phoneसबसे अधिक संदर्भों के रूप में दी जाती है, या numberजब संदर्भ एक टेलीफोन कनेक्शन के बारे में होता है।


2

कोड फ़ाइल के भीतर बीमा स्थिरता।

कोड प्रोजेक्ट के भीतर निरंतरता को बढ़ावा देना।

कोड लाइब्रेरी के भीतर प्राथमिकता को प्राथमिकता दें।

अवधारणाओं को दर्शाने के लिए शब्दों की कंपाउंडिंग में परिवर्तन होता है क्योंकि हम दिए गए एग्लूटीनेशन से अधिक परिचित होते हैं ।

उदाहरण के लिए...

  • 'टेलीफोन सेट' सिर्फ 'टेलीफोन' के लिए छोटा हो गया
  • 'टेलीफोन' सिर्फ 'फोन' के लिए छोटा हो गया
  • 'फ़ोन नंबर' को कभी-कभी 'फ़ोन-नंबर' में अनुबंधित किया जाता था
  • 'फोन-नंबर' जल्द ही 'फोननंबर' बन गया
  • 'फोननंबर' को अक्सर सिर्फ 'फोन' के लिए छोटा कर दिया जाता है
  • 'सेलफोन', या 'सेल' आज सामान्य उपयोग में हैं
  • 'होमफ़ोन', और 'वर्कफ़ोन' जल्द ही आम हो सकते हैं

ध्यान दें कि StackExchange वर्तनी-जाँचकर्ता अपना मन नहीं बना सकता। ऊपर दिए गए वाक्य के अंत में 'फोननंबर' ठीक था लेकिन यह वाक्य की शुरुआत में एक झंडे को (पूंजीकृत या नहीं)।

जितना ज़्यादा से ज़्यादा सभी चाहते हैं कि चीज़ें करने के लिए "एक सही तरीका" हो, जब बात भाषा की हो, तो वह कभी नहीं हो सकती। जब तक आप अपनी परियोजना पूरी करेंगे, तब तक उपयोग संभवत: बदल चुका होगा। निश्चित रूप से आपकी समझ बदल गई होगी और विधि / et.al की कार्यक्षमता हो जाएगी। शायद बदल भी गया होगा। (किस स्थिति में, आपको संभवत: नाम बदलना चाहिए।)


-1

कड़ाई से तकनीकी (यूएस) दृष्टिकोण से, जहां xxx-yyy-zzzz वह है जिसे आप आमतौर पर "फोन नंबर 'के रूप में सोचते हैं xxx भाग को ठीक से क्षेत्र कोड के रूप में संदर्भित किया जाता है, yyy भाग को ठीक से संदर्भित किया जाता है विनिमय, और zzzz को ठीक से संख्या के रूप में जाना जाता है।

चूंकि न केवल "फोननंबर" एक यौगिक शब्द (अभी तक) नहीं है, लेकिन अगर यह एक हो जाता है, तो यह गलत तरीके से इसके निर्माता के इरादे के बाहर कुछ संदर्भित करेगा, मैं कहूंगा कि कैमलकेस सिंटैक्स को किसी भी चर के लिए फोननंबर की आवश्यकता होगी जो इसे संदर्भित करता है, लेकिन यदि आप वास्तविक टेलीफ़ोन सिस्टम के साथ कुछ भी करने जा रहे हैं, मैं फ़ोन-एक्स्चेंजनंबर का उपयोग सात-अंको के लिए और दस-अंकीय संस्करणों के लिए फ़ोनअकाउंटरचेंज नम्बर के लिए करूँगा।


1
इससे बने बिंदुओं पर कुछ भी पर्याप्त नहीं लगता है और इस पूर्व उत्तर में बताया गया है जो 3 साल से पहले पोस्ट किया गया था
'16
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.