वर्तमान में, नामकरण चर के लिए कई मानक हैं, लेकिन उनमें से दो प्रोग्रामर के बीच सबसे लोकप्रिय हैं: यह ऊंट का मामला है ("ऊंट" अंकन) और अंडरस्कोर (एक विभाजक के रूप में अंडरस्कोर का उपयोग करके नामकरण चर)। कोई यह तर्क दे सकता है कि अन्य लोकप्रिय मानक हैं, लेकिन इस लेख के ढांचे के भीतर हम इन दोनों की तुलना करेंगे और प्रोग्रामर से पता करेंगे कि वे किस मानक का पालन करते हैं। बेशक, कुछ प्रोग्रामर भाषा या फ्रेमवर्क के कोडिंग मानकों से बंधे होते हैं, जिनका वे उपयोग करते हैं, लेकिन हम एक स्वतंत्र तुलना करने की कोशिश करेंगे।
अंडरस्कोर का उपयोग करने वाले नामों के लिए मानक यह है कि सभी शब्द निचले अक्षरों में लिखे गए हैं और अंडरस्कोर (_) द्वारा अलग किए गए हैं। आमतौर पर इस मानक का उपयोग फ़ंक्शंस और वेरिएबल्स के नाम के लिए किया जाता है, और कक्षाओं, संरचनाओं, इंटरफेस के नामों के लिए, पास्कल मानक का उपयोग किया जाता है (अनुवादक का ध्यान दें: किसी कारण से, लेख इसके बारे में कुछ नहीं कहता है, लेकिन जैसा कि मैंने पास्कल शैली विकिपीडिया में पाया है, यह अपरकंपेलकेस है, जब पहली बार हुआ था। शब्द एक बड़े अक्षर से शुरू होता है,
प्रमाण )। अंडरस्कोर मूल रूप से सी प्रोग्रामर्स द्वारा उपयोग किया गया था, और फिर सी ++ डेवलपर्स द्वारा एसटीएल लाइब्रेरी में कीवर्ड का नाम देने के लिए उपयोग किया गया था, और फिर बूस्ट में, यही वजह है कि इस मानक ने सी ++ प्रोग्रामर्स के बीच बहुत लोकप्रियता हासिल की है, लेकिन प्रमुख नहीं बन पाया है। साथ ही, यह मानक मानक PHP फ़ंक्शंस के नामों में उपयोग किया जाता है, और PHP प्रोग्रामर के बीच बहुत लोकप्रिय है। रूबी को अंडरस्कोर का उपयोग करने के लिए भी कहा जाता है।
दूसरी ओर ऊंट संकेतन, जावा भाषा और उसकी छोटी बहन जावास्क्रिप्ट में मानक है, हालाँकि यह अन्यत्र भी पाया जा सकता है। इस मानक के अनुसार, नाम के सभी शब्द पहले को छोड़कर, एक बड़े अक्षर से शुरू होते हैं। इस मामले में, बेशक, बिना सीमांकक के किसी भी सीमांकक का उपयोग नहीं किया जाता है। आमतौर पर, यह मानक फ़ंक्शन और चर नामों पर लागू होता है, और पास्कल मानक का उपयोग वर्ग नामों (संरचनाओं, इंटरफेस) में किया जाता है। C # camelCase का उपयोग भाग में किया जाता है: इसका कार्य क्षेत्र पैरामीटर नाम और स्थानीय चर तक सीमित है।
इन दो मानकों में से प्रत्येक की अपनी ताकत और कमजोरियां हैं। आइए मुख्य लोगों की सूची बनाएं:
- अंडरस्कोर बेहतर पढ़ा जाता है: मानक के साथ अंडरस्कोर और मानक की तुलना करें
- लेकिन ऊँट का मामला उदाहरण के लिए पठन लाइनों को आसान बनाता है:
my_first_var = my_second_var-my_third_var
और
myFirstVar = mySecondVar-myThirdVar
जाहिर है, ऊंट का मामला बेहतर तरीके से पढ़ता है: अंडरस्कोर और माइनस ऑपरेटर के मामले में, पहली नज़र में, अभिव्यक्ति को एक चर के रूप में लिया जा सकता है, हालांकि, सिंटैक्स हाइलाइटिंग इस समस्या को हल कर सकती है। - कैमल केस अंग्रेजी, रूसी और कई अन्य भाषाओं के विपरीत है: सामान्य भाषाओं में, एक वाक्य एक बड़े अक्षर से शुरू होता है, और अन्य सभी शब्द लोअरकेस में लिखे जाते हैं, ऊंट के मामले में, सब कुछ दूसरे तरीके से होता है। यह एक वास्तविक मस्तिष्क विस्फोट है।
- टाइप करना कठिन है। यहां तक कि इंटेलीजेंस के साथ, कई मामलों में आपको एक अंडरस्कोर टाइप करने की आवश्यकता होती है।
- कैमल केस असंगत है क्योंकि स्थिरांक का उपयोग करते समय (जो पूरी तरह से बड़े अक्षरों में लिखे गए हैं) हमें अंडरस्कोर का उपयोग करना होगा। दूसरी ओर, यदि आप वर्गों (संरचनाओं, इंटरफेस) के नामों में विभाजक के रूप में अंडरस्कोर का उपयोग करने का निर्णय लेते हैं, तो अंडरस्कोर का उपयोग करने वाला नामकरण मानक पूरा हो सकता है।
अनुवादक से: मैंने लेख को मूल के जितना संभव हो उतना करीब से अनुवाद करने की कोशिश की।
अपने दम पर, मैं जोड़ता हूं कि मेरी परियोजनाओं में मैं ऊंट मामले का उपयोग करना पसंद करता हूं, मैं केवल पहले शब्द के रूप में संक्षिप्त चर प्रकार (bProductActive, iProductsCount, sUserName) का उपयोग करता हूं, इस तरह "मस्तिष्क विस्फोट" की समस्या कुछ हद तक हल हो गई है - सभी वाक्य शब्द एक बड़े अक्षर से शुरू होते हैं।
इसके अलावा, ऊंट संकेतन का उपयोग करते समय सहकर्मी के विषय पर सहकर्मियों के साथ बहुत विवाद हुआ: कैसे अधिक सही ढंग से लिखने के लिए GenerateHTMLFromText या GenerateHtmlFromText, परिणामस्वरूप, हम दूसरे विकल्प पर बस गए, लेकिन एक अनसुलझे समस्या की भावना अभी भी थोड़ा कम करती है।
खैर, इस तथ्य के बारे में कि जावास्क्रिप्ट जावा की छोटी बहन है, लेखक ने थोड़ा पकड़ा, आखिरकार, ये पूरी तरह से अलग भाषाएं हैं, उनके पास केवल एक नाम और कोड डिज़ाइन मानक हैं।