2010-06-28 14 views
6

पिछले कई वर्षों में मैं FirstNameTxt के नामकरण सम्मेलन का उपयोग कर रहा हूं जब मैं 'प्रथम नाम' फ़ील्ड के लिए टेक्स्टबॉक्स नियंत्रण का जिक्र कर रहा हूं। हालांकि, मैंने देखा है कि अधिकांश अन्य डेवलपर्स नामकरण सम्मेलन का उपयोग करते हैं txtFirstNametxtFirstName बनाम FirstNameTxt

उपयोग करने के लिए सबसे अच्छा सम्मेलन कौन सा है? और यह दूसरी विधि पर क्यों पसंद किया जाता है?

+1

+1 अच्छा सवाल।क्या वह व्यक्ति जिसने इस प्रश्न को बंद करने के लिए मतदान किया है, कृपया कारण बताते हुए एक टिप्पणी छोड़ दें? – MarkJ

+0

स्पष्ट रूप से उन्हें लगा कि यह व्यक्तिपरक और तर्कवादी था, जो एक तरह से है। – Malfist

उत्तर

1

विजुअल स्टूडियो 2010 के बाद, हंगेरियन नोटेशन का उपयोग करने का बिल्कुल कोई कारण नहीं है।

इंटेलिजेंस के साथ आसानी से समान नियंत्रणों की खोज करने का एकमात्र कारण, पूर्ण इंटेलिजेंस से दूर हो जाता है जो पूर्ण पाठ में खोज करता है।

इस प्रकार कोड संपादक में Text टाइपिंग आपको सभी पाता है: firstNameText, lastNameText, anyText

और कोड में "txtFirstName" से "firstNameText" को पढ़ने में बहुत आसान है।

+3

वास्तव में मैं नहीं देखता कि शब्द के अंत में पाठ को कैसे जोड़ना शब्द की शुरुआत में इसे जोड़ने से कम हंगेरियन नोटेशन है। –

+0

@ सेर्जज: ऐसा इसलिए है क्योंकि अंत में पाठ (या बल्कि टेक्स्टबॉक्स) के पास संपत्ति के प्रकार से कोई लेना-देना नहीं है - यह एक चीज़ का मानव पठनीय नामकरण है: पहला नाम टेक्स्टबॉक्स। –

+0

@ मार्कज: क्या आपने वाकई मेरा जवाब पढ़ा? –

20

मुझे हंगेरियन नोटेशन का उपयोग करना पसंद है - 3-अक्षर abbrev के साथ प्रीपेडिंग - यदि किसी अन्य कारण से, सभी टेक्स्टबॉक्स नियंत्रण पृष्ठ के नियंत्रणों की सूची में एक साथ समूहित होते हैं।

+1

+1 बिल्कुल यही कारण है कि मैं इसे उसी कारण से –

+1

+1 करता हूं, हालांकि मुझे कभी-कभी थोड़ा असंगत महसूस होता है क्योंकि नियंत्रण * केवल * चीज है जिसे मैं हंगेरियन नोटेशन का उपयोग करता हूं। –

+0

+1 - हमारे विकास समूह के भीतर हमारा मानक उन सभी समूहों के लिए हंगेरियन केस है (उन्हें प्रति नियंत्रण संक्षेप में इंगित करने वाले दस्तावेज़ के साथ) –

-1

एक दूसरे की तुलना में बेहतर नहीं है। सबसे महत्वपूर्ण बात यह है कि आप जो भी सम्मेलन चुनते हैं उसमें लगातार होना चाहिए।

चूंकि आप पिछले कई वर्षों से अपने वर्तमान सम्मेलन का उपयोग कर रहे हैं, इसलिए मैं नहीं बदलेगा क्योंकि तब आप सम्मेलन तोड़ देंगे। बेशक, आप नए सम्मेलन के लिए वापस जाने और अपने सभी मौजूदा कोड को दोबारा बदलने का विकल्प चुनते हैं। लेकिन वह सवाल पूछता है "परेशान क्यों?"।

+1

मैं असहमत हूं। एक लाभ प्रदान करता है (इंटेलिसेंस में उसी प्रकार के समूह नियंत्रण), दूसरा आपको कुछ भी प्रदान नहीं करता है। सम्मेलन खुद के लिए एक पूर्ण औचित्य नहीं है। –

+0

@Adam: हालांकि मैं आपसे असहमत हूं। दूसरा आपको बेहतर रीडबिलिटी प्रदान करता है, पहला आपको नए इंटेलिजेंस के साथ कुछ भी प्रदान नहीं करता है। –

+0

"अन्य" (दूसरा) कुछ भी प्रदान नहीं करता है। चर के प्रकार की पहचान करने के लिए नाम को प्रकार से संलग्न करना जरूरी नहीं है। आप क्यों कहते हैं कि पहला दृष्टिकोण नए इंटेलिजेंस के साथ कुछ भी नहीं प्रदान करता है? –

0

अनुसंधान से मैंने उसी विषय पर किया है, ऐसा कोई वास्तविक सहमति या सर्वोत्तम अभ्यास नहीं है। लोग तर्क देंगे कि यह txtFirstName, FirstName, और FirstNameTxt होना चाहिए। मेरे सुझाव यह है कि जब तक इसके अनुरूप हो तो आप ठीक हैं। नाम बदलते समय कोडिंग से कुछ भी बुरा नहीं होता है।

एक तरफ मैं txtFirstName का उपयोग करता हूं।

+0

+1। 'TxtFirstName' और 'FirstName' दोनों (हालांकि मैं 'firstName' का तर्क दूंगा, क्योंकि यह एक उदाहरण चर है, सार्वजनिक सदस्य नहीं) समझ में आता है, लेकिन 'FirstNameTxt' मुझे कोई नहीं बनाता है; प्रकार की जानकारी पहले से ही उपलब्ध है, अगर इसे क्रमबद्ध करने में सहायता नहीं की जा रही है तो इसे नाम में क्यों रखा जाए? –

+0

@ एडम: ऐसा इसलिए है क्योंकि यह "फर्स्टनाम टेक्स्टबॉक्स" है, न कि "फर्स्टनाम"। आपके पास टाइपिंग स्ट्रिंग नामक 'फर्स्टनाम' नामक एक और प्रॉपर्टी हो सकती है जो ठीक उसी नाम से करेगी जो इसका नाम है। –

+0

@ फ्रांतिसेक: इसे 'फर्स्टनाम' नाम नहीं दिया जाना चाहिए, उदाहरण के रूप में चर (यदि हम एमएस-अनुशंसित सम्मेलनों के बारे में बात कर रहे हैं) ऊंट-पके हुए नहीं हैं, न कि पास्कल-आधारित। –

0

मैं आमतौर पर नियंत्रण नामों के उपसर्ग के रूप में "उपयोगकर्ता अनुभव" के लिए "ux" का उपयोग करता हूं। यह समान नाम बनाए रखते हुए नियंत्रण प्रकारों को स्विच करना आसान बनाता है। चूंकि नियंत्रणों में साझा विरासत पदानुक्रम होता है, इसलिए अक्सर एक से दूसरे में स्विच करना संभव होता है, उदाहरण के लिए लेबल से टेक्स्टबॉक्स में "एलबीएल" से "txt" में उपसर्ग को बदले बिना। यह सूची में सभी नियंत्रणों को एक साथ समूहित करता है इसलिए मुझे उस प्रकार के नियंत्रण को याद रखने की आवश्यकता नहीं है जिसे मैं ढूंढ रहा हूं।

+0

मैं नियंत्रण के लिए "ForenameTextbox" का उपयोग करता हूं, क्योंकि मुझे हंगेरी नोटेशन से नफरत है जो शोर जोड़ता है, लेकिन "ux" एक नया है - मुझे यह पसंद है कि –

+0

आपके पास कभी भी समान जानकारी प्रदर्शित करने वाले विभिन्न प्रकार के दो नियंत्रण नहीं हैं? उदाहरण के लिए, उपयोगकर्ता सुरक्षा के आधार पर, आप फर्स्टनाम टेक्स्टबॉक्स या फर्स्टनाम लेबल दिखाते हैं? –

+0

अक्सर एक ही रूप/नियंत्रण पर नहीं। मैं केवल पढ़ने के लिए/संपादन योग्य विचारों के लिए लगभग हमेशा अलग रूपों या उपयोगकर्ता नियंत्रण करता हूं। जब ऐसा होता है तो मैं आमतौर पर एक प्रत्यय जोड़ता हूं, यानी uxFirstNameLabel। –

0

मैं हंगेरियन नोटेशन का उपयोग नहीं करता हूं। अगर मुझे अपने फॉर्म पर नियंत्रण के सटीक नाम याद रखने में परेशानी है, तो मैं कुछ गलत कर रहा हूं। सबसे अधिक संभावना है कि फॉर्म क्लास बहुत अधिक कर रही है और इसमें कई जिम्मेदारियां हैं।

यह तय करने के लिए कि मैं आम तौर पर उपयोगकर्ता नियंत्रणों का उपयोग करके उपखंडों में फॉर्म को विभाजित करता हूं और उन पर स्पष्ट रूप से अलग चिंताओं को अलग करता हूं। एक अतिरिक्त बोनस के रूप में कोड परीक्षण करने के लिए आसान हो जाता है।