wpf textBoxEmployeeName vs कर्मचारीNameTextBox




winforms naming-conventions (13)

आप कौन से नामकरण सम्मेलन का उपयोग करते हैं और क्यों?

मुझे कर्मचारीनामटिकास्टबॉक्स का उपयोग करना पसंद है, क्योंकि:

  • यह अंग्रेजी भाषा के परिप्रेक्ष्य से अधिक प्राकृतिक लगता है।
  • मुझे लगता है कि Intellisense के साथ देखना आसान है
  • सम्मेलन घटनाओं (माउसक्लिकइवेंट, माउसक्लिकइवेंटहैंडलर) और निर्भरता गुणों (विज़ीलिटीप्रॉपर्टी) के लिए इस्तेमाल किए गए सम्मेलन के समान है।

नोट: मैं संक्षेप (जैसे "टीबी") की बजाय पूर्ण नाम का उपयोग कर रहा हूं, क्योंकि यह एमएस के नामकरण सम्मेलनों के अनुसार है जो संक्षिप्ताक्षरों का प्रयोग करने से बचने के लिए कहते हैं।

http://msdn.microsoft.com/en-us/library/ms229045.aspx


विचार:

  1. एन्कोडिंग / संक्षेप से बचें

  2. नाम समान दायरे में समान नाम से बाहर होना चाहिए अनूठा-अधिकतर हिस्सा छोड़ दिया-अधिकांश भाग बनाएं मुझे संदेह है कि आपके पास कई पाठ बक्से हैं, लेकिन केवल एक कर्मचारी नाम है

  3. अनावश्यक संदर्भ से बचें कर्मचारियों के बारे में इस पृष्ठ पर सभी नाम हैं? क्या यह एक "कर्मचारी" पृष्ठ है? तब कर्मचारी नाम निरर्थक है नाम बॉक्स या नाम नियंत्रण बहुत सारे होना चाहिए।

  4. अनावश्यक संदर्भ से बचें: क्या आपके पास ऐसे नाम हैं जो नियंत्रण नहीं हैं? यदि हां, तो "बॉक्स", या "नियंत्रण" उपयोगी है, अन्यथा इतना नहीं।

प्रकटीकरण: मैं "ओटीटिंगर्स नामकरण नियमों" से "ओटीटिंगर" हूं, जो "क्लीन कोड" के अध्याय 2 में विकसित हुआ था। Http://agileinaflash.blogspot.com/2009/02/meaningful-names.html पर संक्षिप्त फ़ॉर्म देखें


मुझे लगता है कि माइक्रोसॉफ्ट के ऑब्जेक्ट नेमिंग कन्वेंशन को सी # के साथ-साथ विजुअल बेसिक में अपने नियंत्रण के नाम देने के लिए बेहतर है।


मैं किसी भी रूप में बफ़र संकेतन की सिफारिश नहीं करता। textbox अस्थायी नाम हंगर के संकेतन का एक रूप है। इसलिए मैं कर्मचारीनामटिकास्टबॉक्स के उपयोग का समर्थन करता हूं

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

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


मैं एक तीसरा विकल्प प्रस्तावित करता हूं: uiEmployeName कारण:

  1. यह हंगेरियाई नहीं है आप जिस नोटेशन का उल्लेख करते हैं, वह सिर्फ हंगेरियन के फ्लेवर हैं
  2. यदि आप किसी कर्मचारी का नाम टेक्स्ट बॉक्स को सूचीबद्घ में बदलते हैं तो आपको अपने चर का नाम बदलने की आवश्यकता नहीं है
  3. ऑब्जेक्ट के प्रकार को सम्मिलित किए बिना सब कुछ अच्छी तरह से intellisense में समूहीकृत किया गया है
  4. ऑब्जेक्ट का नाम इसके फ़ंक्शन का पालन करता है। यह उपयोगकर्ता का सामना करना पड़ रहा ऑब्जेक्ट है जो कर्मचारी का नाम प्राप्त करता है

VB में मुझे वास्तव में [ControlName] _ [ControlType] के साथ जाना पसंद है I मुझे याद नहीं है कि मैंने यह कैसे करना शुरू कर दिया, लेकिन मुझे लगता है क्योंकि यह तर्कसंगत क्रम जैसा लगता है यह थोड़ा कोडिंग को सरल करता है क्योंकि कोड सुझाव नियंत्रण प्रकार के बजाय नियंत्रण विवरण के आधार पर समूहबद्ध होते हैं।

मैं नाम सी # में उसी तरीके को नियंत्रित करता है जब तक कि मैं सी # के लिए सील का वरीयता का पालन करता हूं Case: [controlName] _ [controlType]

मैं अपने प्रकार के नियंत्रणों के लिए अपना संक्षिप्त रूप भी इस्तेमाल करता हूं, हालांकि वे अस्पष्ट नहीं हैं I

उदाहरण:

VB: Save_Btn और NewFile_MItem (मेनू आइटम)

C #: save_btn और newFile_mItem

यह मेरे लिए काम करता है, लेकिन निश्चित रूप से हर प्रोग्रामर की अपनी शैली है


अपने चर नामकरण इतना महत्वपूर्ण है मोटे ग्राहक दृश्य सम्मेलनों को छड़ी के छोटे-छोर दिए जाने लगते हैं यहां मेरा विचार है:

  1. अपने दृश्य पर वास्तविक व्यावसायिक मूल्यों के लिए कभी भी गेटर्स और सेटर्स न लगाएं। ऐसा मत करो:

    public Name EmployeeName { get; set; }
  2. एक कर्मचारी नाम प्राप्त करने या सेट करने के लिए, आपका राज्यपूर्ण कोड स्पष्ट रूप से एक विधि कॉल करेगा। ऐसा इस तरह से करें क्योंकि यह परियोजनाएं दर्शाती है कि राज्य को इस दृश्य पर संग्रहीत नहीं किया गया है, लेकिन दृश्य से प्राप्त या ट्रांसकॉर्फ़ किया जा सकता है:

    public void SetEmployeeName(Name employeeName);
    public Name GetEmployeeName();
  3. हंगरी के संकेत बेवकूफी है यह भाषाओं में उपयोगी थी <= वीबी 6 क्योंकि वे चर प्रकारों के देर से बंधन का इस्तेमाल करते थे। आप को स्वयं की रक्षा करनी थी क्योंकि प्रकार बेमेल रनटाइम की त्रुटियां थीं, समय संकलन नहीं करते थे। केवल txtEmployeeName उपयोग txtEmployeeName यदि आप भी strEmployeeName और intEmployeeNumber उपयोग करेंगे

  4. यदि पैटर्न का नाम prefixing आपके नामकरण सम्मेलन के अनुरूप नहीं है, यह नियंत्रण प्रकार (जो एक पैटर्न का प्रतिनिधित्व करता है) के लिए मत करो यदि आप commandNameFormatting नहीं बनाते हैं (नाम commandNameFormatting बजाय), तो एक textBoxEmployeeName बनाएँ न करें।

  5. संभवत: आपको किसी प्रकार के प्रत्यय की आवश्यकता होगी, क्योंकि कर्मचारी नाम चर के उद्देश्य का पर्याप्त रूप से वर्णन नहीं करता है। एक कर्मचारी नाम टेक्स्ट बॉक्स का उद्देश्य इनपुट प्राप्त करना है आप इसे ' EmployeeNameTextBox कह सकते हैं, अगर आपको आरामदायक बनाता है, लेकिन इसे EmployeNameInput को कॉल करना बेहतर हो सकता है इसमें अतिरिक्त बोनस है, अगर आपके पास लेबल है, तो यह स्पष्ट है कि EmployeeNamePrompt (या EmployeeNameLabel लेबल) पाठ बॉक्स के समान नहीं है। वर्णनात्मक प्रत्यय के कुछ प्रकार के बिना, आपके पास अंतर करने का एक अच्छा तरीका नहीं है


जैसा कि मैंने इसे पढ़ा है, एक आलेख में वर्णित आलेख में आलेख (अर्थात् संसाधनों के नाम ), अंत में नियंत्रण प्रकार का उपयोग करता है, FileMenu (और ArgumentException यह ArgumentException हालांकि यह एक नियंत्रण नहीं है)।

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


मैं [controlType] [DomainTerm] के साथ जाता हूं, जो इस मामले में पाठ बॉक्सएपियररी नाम है इसका कारण यह है कि जब आपके पीछे सी # कोड के लिए कोडिंग डोमेन विशिष्ट शर्तों से यूआई नियंत्रणों के बारे में अधिक ध्यान रखती है। यूआई (देखें) पक्ष कोडिंग के लिए हमें नियंत्रण प्रकार की पहचान / पहचान करने की आवश्यकता है, जो कि डोमेन की तुलना में थोड़ा अधिक महत्वपूर्ण है विशिष्ट पक्ष में, और जब से हम ' बाएं से दाएं ' से पढ़ते हैं, तब से यह नामकरण सम्मेलन प्रासंगिक है। मैं आम तौर पर txtEmployeeName या cmpEmployeeType का उपयोग करता हूं, लेकिन टेक्स्ट मैक्स के बजाय टेक्स्टबॉक्स को एमएस दिशा निर्देशों के अनुसार पसंद किया जाता है


मैं आम तौर पर तत्व प्रकार संक्षिप्त रखने की कोशिश करता हूं, उसके बाद एक भेदभाव वाला लेबल। मुझे लगता है कि यह जल्दी से तत्व के प्रकार और उद्देश्य को संप्रेषित करता है:

txtEmployeeName;
lblEmployeeName;

क्यों नहीं कर्मचारी का नाम? गंभीर रूप से नियंत्रण प्रकार नाम के एक हिस्से के रूप में कैसे होता है जब यह आपके आईडीई द्वारा पहले से प्रदान किया जाता है कोड को बनाए रखने में आसान प्रदान करने में सहायता करता है? वैलेटियन और क्लास नेमिंग के लिए ओटलेंस के नियमों पर विचार करें

कश्मीर


मैं (लगभग) हमेशा [controltype] [वर्णनात्मक नाम] का उपयोग करता हूं मैं अभी जानना चाहता हूं कि जब मैं कोड को देखता हूं, तब किस तरह का नियंत्रण होता है, और अगर मुझे नाम याद नहीं होता, तो इंटेलिसेंस मेरी मदद कर सकता है।

बस एक वर्णनात्मक नाम (एम्पलीफेनेम) का उपयोग करने के लिए मेरे लिए काम नहीं करता है किस प्रकार के नियंत्रण? क्या यह एक लेबल, एक पाठ बॉक्स या कॉम्बो बॉक्स है? या एक स्ट्रिंग? या एक फाइल? यह महत्वपूर्ण है कि नियंत्रण या चर का प्रकार हमेशा इसका एक हिस्सा होता है।



पहला नाम (टेक्स्ट बॉक्स अॉॉपरियरनाम) में नियंत्रण प्रकार का उपयोग करने का एकमात्र कारण है Intellisense (सभी टेक्स्टबॉक्स नियंत्रण तब एक साथ दिखाई देंगे) के साथ आसान समूह बनाना। उस से परे, वास्तव में उस तरह का उपयोग करने के लिए कोई लाभ नहीं है। मुझे दूसरे तरीके (कर्मचारीनामटेक्स्टबॉक्स) को अधिक पठनीय और उस तरह से व्यक्तिगत रूप से पसंद है, लेकिन बहुत से लोग अभी भी नियंत्रण प्रकार के साथ पहले चलेंगे, क्योंकि यह एक लंबा समय के लिए किया गया था।





hungarian-notation