android - एंड्रॉइड ट्यूटोरियल में अधिकांश फ़ील्ड (क्लास सदस्य) `एम` के साथ क्यों शुरू होते हैं?


मुझे ऊंट के नियमों के बारे में पता है, लेकिन मैं इस एम नियम से भ्रमित हूं। इसका मतलब क्या है? मैं एक PHP डेवलपर हूं "हम" प्रकार के संकेत के रूप में चर के पहले अक्षरों का उपयोग करते हैं, जैसे बुलियन के लिए 'बी', पूर्णांक के लिए 'i' और इतने पर।

क्या 'एम' एक जावा बात है? क्या यह मोबाइल के लिए खड़ा है? मिश्रित?



Answers



यह संकेत एओएसपी (एंड्रॉइड ओपन सोर्स प्रोजेक्ट) से आता है, जो योगदानकर्ताओं के लिए कोड शैली दिशानिर्देश हैं :

फील्ड नामकरण सम्मेलनों का पालन करें

  • गैर-सार्वजनिक, गैर-स्थिर फ़ील्ड नाम मी के साथ शुरू होते हैं
  • स्थिर फ़ील्ड नाम एस के साथ शुरू होते हैं
  • अन्य फ़ील्ड एक लोअर केस पत्र के साथ शुरू होती हैं।
  • सार्वजनिक स्थिर अंतिम क्षेत्रों (स्थिर) ALL_CAPS_WITH_UNDERSCORES हैं

ध्यान दें कि लिंक्ड शैली गाइड एंड्रॉइड ओपन सोर्स प्रोजेक्ट में योगदान करने वाले कोड के लिए है।

यह व्यक्तिगत एंड्रॉइड ऐप के कोड के लिए एक स्टाइल गाइड नहीं है




बहुत से कोडिंग मार्गदर्शिका पंक्ति एक वर्ग के 'सदस्यों' के लिए मी का उपयोग करती हैं I तो जब आप प्रोग्रामिंग कर रहे हैं तो आप स्थानीय और सदस्य चर के बीच का अंतर देख सकते हैं।




मी उपसर्ग क्या है?

मी सदस्य चर या डेटा सदस्य के लिए खड़ा है गैर-सार्वजनिक और गैर-स्थिर क्षेत्रों के लिए मी उपसर्ग का उपयोग करें

कब इस्तेमाल करें?

private String mCityName;
private float mTemperature;

का उपयोग करने के लिए जब नहीं?

public static int mFirstNumber;
public static final String mDATABASE_NAME;

मैं क्या करूं?

निजी तौर पर, मैं इसका इस्तेमाल नहीं करता। यह कोड को और अधिक जटिल बनाता है और पठनीयता को अराजकता देता है यदि आप अभी भी कोडिंग के लिए नोटपैड का प्रयोग कर रहे हैं तो मेरे पास कोई शब्द नहीं है, लेकिन आधुनिक आईडीई सदस्य और स्थानीय चर या अन्य रंग को हाइलाइट करने और रंगाने में सक्षम हैं।

निष्कर्ष

उपयोग? "हां" या "नहीं" आपकी व्यक्तिगत पसंद है




यदि क्लास में सदस्य चर है, तो 'मी' का अर्थ है 'सदस्य' कई जावा प्रोग्रामर ऐसा करते हैं, यद्यपि आपके पास हाइलाइटिंग, टूलटिप्स पर माउस आदि से आधुनिक आईडीई की आवश्यकता नहीं है।




क्लीन कोड की किताब के अनुसार, यह एक साफ कोड नहीं है

आपको एम के साथ सदस्य चर का इस्तेमाल करने की आवश्यकता नहीं है इसके अलावा, लोगों को नाम का सार्थक हिस्सा देखने के लिए उपसर्ग या प्रत्यय की उपेक्षा करना सीखना है।




मुझे लगता है कि यह बहुत व्यक्तिगत है जो कोड सम्मेलनों का उपयोग किया जाता है। मैं निम्नलिखित उपसर्गों के साथ अपने चर का नाम देना पसंद करता हूं:

  • एम - विधि चर
  • सी - क्लास चर
  • पी - पैरामीटर चर

लेकिन मुझे लगता है कि प्रत्येक प्रोग्रामर की अपनी शैली है




जैसा कि पहले उल्लेख किया गया था, इसे अलग-अलग चर के लिए स्टाइल किया गया है। लेकिन कोड-पीढ़ी के लिए यह बहुत उपयोगी है। यदि आप "Alt + सम्मिलित करें" दबाते हैं तो आपको सबसे सामान्य कोड पीढ़ी गुणों के लिए खिड़कियां मिलेंगी। यदि आप अपने चर के लिए "प्राप्त" विधि उत्पन्न करना चाहते हैं तो आपको मिलेगा।

public class Foo{
   private int bar;

   public int getBar(){
       return this.bar;
   }

   public void setBar(int bar){
       this.bar = bar; 
   }

}

लेकिन अगर आप "एम, एस" घोषित करेंगे तो आपको मिलेगा:

public class Foo{
private int mBar;

public int getBar(){
   return mBar;
}

public void setBar(int bar){
   mBar = bar;
}
}

यह स्वचालित रूप से उत्पन्न हो जाएगा और आपके निर्माता से "मी" या "s" हटा दिया जाएगा, प्राप्त करें, विधि नाम सेट करें इस क्षेत्र के लिए "प्राप्त" और "सेट" के बाद "मी" के बिना उत्पन्न हो जाएगा Andoroid Fle-> सेटिंग-> कोड शैली-> जावा-> कोड जननेंद्रिय और एक तस्वीर के रूप में बनाने के लिए शायद यह मदद करेगा मेरे इंक के लिए क्षमा करें एंड्रॉइड कॉन्फ़िगर करें




ऐसा लगता है कि कुछ शुरुआती एंड्रॉइड / गूगल इंजीनियरों की व्यक्तिगत प्राथमिकता 'मी' के साथ सदस्य चर शुरू करने के लिए थी और इसलिए उन्होंने इसकी सिफारिश की।

अब यह नियम डेवलपर्स के गले को मजबूर कर दिया जा रहा है, जो न तो एओएसपी योगदानकर्ता हैं, सिर्फ इसलिए कि उस पृष्ठ को एंड्रॉइड कोड शैली नियम माना जाता है। उस नियम में किसी भी लाभ का थोड़ा सा है Google को इसे हटाने पर विचार करना चाहिए अन्यथा कृपया यह निर्दिष्ट करें कि Android Apps के लिए कोड शैली नियमों में से कौन सा वैकल्पिक है

कृपया नियम को हटाने के लिए इस याचिका पर अपनी टिप्पणी की टिप्पणी जोड़ें https://code.google.com/p/android/issues/detail?id=226814




यदि आप एक आधुनिक आईडीई (एंड्रॉइड स्टूडियो) का उपयोग कर रहे हैं, तो पठनीयता के मैटर के रूप में, अब (सदस्य चर के लिए, स्थिर क्षेत्रों के लिए एस) उपयोग नहीं किया जाना चाहिए। एंड्रॉइड स्टूडियो मी या एस को जोड़े बिना उन दोनों के बीच अंतर कर सकते हैं




यह भी कहा जा सकता है कि यह "मेरा" के लिए खड़ा है, जैसा कि क्लास / इंस्टेंस में है "यह चर मेरा है और कोई भी इसे प्राप्त नहीं कर सकता है।" स्थिर करने के लिए अलग है, जबकि यह केवल कक्षा के लिए उपलब्ध हो सकता है, यह उस कक्षा के सभी उदाहरणों द्वारा साझा किया जाता है। जैसे आप सर्कल खींच रहे थे जैसे आपको पता होना चाहिए कि प्रत्येक मंडल का त्रिज्या कितना बड़ा है

    private double mRadius;

लेकिन एक ही समय में आप सभी मंडलियों का ट्रैक रखने के लिए एक काउंटर चाहते हैं, आपके पास हो सकने वाले सर्कल वर्ग के अंदर

    private static int sCircleCount;

और उसके बाद आपके पास वर्तमान में मंडलियों की संख्या को बढ़ाने और घटाने के लिए केवल स्थिर सदस्य हैं




यह साबित करने के लिए कि आप निश्चित रूप से इस कोड को अपने कोड में चर नामकरण के लिए नहीं मान लेना चाहिए, मैं यहां एक मूल Android स्टूडियो से एक स्क्रीनशॉट पास करता हूं।

अपने मूल चर की तुलना में एम-चर को कम करने के लिए एक विशेष रूप से सॉर्ट किए गए ऑब्जेक्ट के अंदर वे चर खोजें। तो उन्हें "m" उपसर्ग के साथ अपने कोड में नाम देकर आप उन्हें अपने आप से ढेर में छिपाते हैं