आप अपने GUI नियंत्रणों का नाम कैसे देते हैं?


12

यह आमतौर पर हंगेरियन नोटेशन का उपयोग करने के लिए एक बुरा अभ्यास माना जाता है , लेकिन जीयूआई नाम userNameTextBoxऔर नियंत्रण को खोजने के लिए आम है userNameLabel

क्या आपने नाम में नियंत्रण प्रकार रखा है? क्या यह हंगेरियन नोटेशन का एक प्रकार नहीं है?


पूरे खान में नाम नहीं हैं क्योंकि उन्हें WPF
jk

जवाबों:


12

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

क्रेमि के एक अन्य प्रश्न के उत्तर के लिए देखें कि वह अभी भी कुछ स्थितियों में हंगरी का उपयोग क्यों करता है।

सभी कोड के साथ, संगति और आत्म मूल्यांकन प्रमुख है। यदि आप और आपकी टीम इस बात पर सहमत हैं कि विभिन्न GUI- नियंत्रण लेबल कैसे हैं, और किन तत्वों को लेबल की आवश्यकता है, तो आप ठीक रहेंगे :)


8

वास्तव में मैं हंगरी अंकन का उपयोग करता हूं, केवल जीयूआई नियंत्रण के लिए। मैं लेबल, रेडियो बटन और सूची दृश्य के लिए lblText, rbGroup1, lvTable आदि जैसे कुछ का उपयोग करता हूं।

वे कभी भी परिवर्तन नहीं करते हैं और यह स्पष्ट है कि चर एक GUI नियंत्रण क्या है और क्या नहीं है।

हालाँकि, चूंकि मैं बाध्यकारी संभावनाओं के साथ WPF का उपयोग करता हूं, इसलिए उन्हें वास्तव में नाम देना बिल्कुल भी आवश्यक नहीं है, क्योंकि यह C # प्रॉपर्टी से जुड़ा हुआ है।

Btw, एक नियंत्रण lvListViewPersons को कॉल करने की गलती न करें जो मैं कभी-कभी देखता हूं। यदि एक चर lv के साथ उपसर्ग है तो आप देख सकते हैं कि यह पहले से ही एक सूची है।


3
इससे सहमत हैं। जीयूआई नियंत्रण एकमात्र स्थान है जहां हंगरी संकेतन एक कार्डिनल पाप नहीं है (बेशक आईएमओ)
वेन मोलिना

4

हमारी टीम जीयूआई नियंत्रण के लिए हंगेरियन नोटेशन का उपयोग कर रही है, बाकी कोड के लिए नहीं।

विशिष्ट उदाहरण, एक पाठ के बाद एक लेबल:

  • lblFirstName
  • txtFirstName

साथ ही यह आपके टेक्स्टबॉक्स को ढूंढना आसान बनाता है, बस "txt" टाइप करें और intellisense बाकी काम करेगा।


1

मैं जीयूआई तत्वों के लिए हंगेरियन नोटेशन का उपयोग कर रहा हूं। यह वास्तव में दर्द जब आप QtDesigner, खुले दृश्य स्टूडियो को बंद करने और आप बटन पर सेट पाठ करना चाहते हैं यदि आप पाठ बॉक्स नामित किया है username, password,, आदि आप क्यूटी का उपयोग करते हैं, है ना बड़ी समस्या है क्योंकि सभी जीयूआई तत्वों के अंदर लिपटे रहे हैं uiवस्तु ( ui.username), लेकिन जब मैं विंडोज फॉर्म का उपयोग करता हूं, तो उपयोगकर्ता नाम का टेक्स्टबॉक्स केवल नाम स्थान को ब्लॉट करता है।

उस मामले में, txtUsername, btnLogin, lblStatus, आदि स्पष्ट रूप से बेहतर विकल्प हैं।


1

मैं GUI नियंत्रणों के लिए आयु संकेतन का उपयोग करने से बचता हूं - मैं 'lblFirstName' जैसे नियंत्रण का नामकरण करने से बचूंगा क्योंकि मुझे वास्तव में परवाह नहीं है कि यह एक लेबल है - डेटा बाइंडिंग बिंदु से यह सिर्फ बांधने के लिए कुछ है।

नियंत्रण के लिए जिसे एक नाम की आवश्यकता होती है, मैं आमतौर पर ux'उपयोगकर्ता अनुभव' के लिए उपसर्ग जोड़ता हूं । यह स्पष्ट करता है कि आइटम केवल उपयोगकर्ता के साथ बातचीत करने के लिए है। उदाहरण के लिए मेरे दृश्य मॉडल में एक संपत्ति हो सकती है FirstNameऔर दृश्य में एक नियंत्रण नाम हो सकता है uxFirstName। यह जोड़ा लाभ है कि मेरे नामित नियंत्रण के सभी मेरे आईडीई में अच्छी तरह से समूहीकृत हैं।


3
क्या uxउपसर्ग ही हंगेरियन नोटेशन नहीं है? हो सकता है कि दूसरी तरह (मैं दोनों के नाम भूल जाता हूं) जो अर्थ को इंगित करता है और टाइप नहीं, लेकिन फिर भी हंगेरियन ;-) का एक रूप है
वेन मोलिना

मुझे लगता है कि आप apps hungarianविरोध कर रहे हैं systems hungarian। Apps आयु को लगभग सिस्टम के रूप में हानिकारक नहीं माना जाता है, लेकिन मुझे लगता है कि couldux ’का अर्थ उच्च स्तर का भी माना जा सकता है, यहां तक ​​कि एप्लिकेशन भी माना जा सकता है। मुझे लगता है कि आप इसे परत
बाल

1

मुझे पता है कि लोग समग्र रूप से हंगेरियन नोटेशन को नहीं उठा सकते हैं, लेकिन मुझे अभी भी बहुत सारे स्थानों में यह बहुत उपयोगी लगता है। GUI के लिए मैं wnd उपसर्ग का उपयोग कम से कम करता हूं।

हंगेरियन नोटेशन का उपयोग नहीं करने की समस्या सरल है, एक बार जब आप एमएसवीएस के सुचारू पानी को छोड़ देते हैं, तो नेविगेशन नाक में गोता लगाता है। आप किसी प्रकार का देखते हैं SomeValue = SomeOtherValueऔर आपके पास कोई सुराग नहीं है जब तक कि आप हर लानत चीज को नहीं देखते हैं। Via grep या अच्छी पुरानी खोज, जो आमतौर पर उत्पादकता को वहीं मारती है, क्यूटी और MSVS के अलावा अन्य आईडीई वास्तव में लुकअप में खराब हैं।

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