2016-05-05 11 views
8

मैं कोड लिखना चाहता हूं जो दूसरों को आसानी से समझ सकता है।बूलियन विशेषताओं के लिए नामकरण सम्मेलन

क्या hide_email या email_hidden जैसे बूलियन गुणों की एक परंपरा शैली है?

+1

प्रश्न चिह्न बूलियन विधियों के लिए एक अच्छी प्रणाली है, लेकिन इसका उपयोग चर नामों में नहीं किया जा सकता है। –

उत्तर

14

मैंने पढ़ा चाहते हैं इस तरह सोचें:

  • एक बूलियन विशेषता को एक साधारण हां/कोई प्रश्न का उत्तर देना चाहिए।
  • पूछना "है?" हां/कोई प्रश्न पूछने का एक आसान तरीका है।
  • तो एक बूलियन विशेषता नाम वाक्य is <attribute_name> पूरा करना चाहिए
  • तो बस is क्योंकि रूबी के लिए ? प्रत्यय पसंद हटाने शैली विधि के नाम "है" (अधिक के लिए नीचे देखें), बस email_hidden
साथ छोड़

तो, अपने विशिष्ट मामले के लिए, इस तरह से अपनी विशेषता का नाम: सवाल "ईमेल छिपा हुआ है" के साथ

  • प्रारंभ ?. जिसे कोड में email_is_hidden के रूप में प्रदर्शित किया जा सकता है।
  • is निकालें और आप के साथ छोड़ दिया रहे email_hidden
  • रूबी ऑन रेल्स एक "विधेय" संस्करण (एक है कि एक ? में समाप्त होता है) अपने बूलियन विशेषता का और रिटर्न true/false अपेक्षा के अनुरूप परिभाषित करता है।इसलिए, जब आपकी विशेषता डेटाबेस में email_hidden नामित है, तो आपको स्पष्टता के लिए अपने कोड में email_hidden? के रूप में संदर्भित करना चाहिए और रेलवे सम्मेलन पर रूबी है।
1

यह email_hidden? होगा। रूबी समुदाय ने इसका उपयोग किया है।

कृपया अंत में ? पर ध्यान दें।

+0

मुझे लगता है कि आप एक प्रश्न चिह्न के साथ विशेषता को बचाने का मतलब नहीं है? मुझे पता है कि रेल में आप सभी विशेषताओं को एक प्रश्न चिह्न के साथ कॉल कर सकते हैं। –

+0

मैं देखता हूं कि आपका क्या मतलब है। मैंने सोचा था कि आपके पास एक बुलियन विशेषता थी जो अन्य पूछना चाहती थी। नहीं, आप 'email_hidden' या 'email_hidden?' को एक सेटर विधि के रूप में उपयोग नहीं करना चाहते हैं। आप इसे छिपाने वाली विधि के लिए 'hide_email' जैसी क्रिया का उपयोग करना चाहते हैं और इसे 'ईमेल_hidden =' दूसरों को आपके लिए सेट करने की अनुमति देने के लिए करना चाहते हैं। – Uzbekjon

+1

वे जिस तरह से आपने सवाल पूछा ... ऐसा लगता है कि आप एक ईमेल की स्थिति की जांच करने के लिए एक बूलियन विधि के बारे में बात कर रहे हैं, न कि इसे छिपाने की प्रक्रियाओं को निष्पादित करने के तरीके के बारे में नहीं, और सफलता के मामले में सफलता और झूठी स्थिति में विफलता। –

2

नाम के इन दो उदाहरण लेते हुए आप दिया:

  • hide_email एक विधि इस तरह के एक कार्य के लिए एक अच्छा नाम, एक विधि है कि सभी प्रक्रियाओं को निष्पादित करता है आपके सिस्टम के दायरे में एक ई-मेल को छिपाने के लिए किया जाएगा । लेकिन यह एक ई-मेल की स्थिति लौटने वाली बुलियन विधि के लिए कभी भी अच्छा नाम नहीं होगा।
  • email_hidden?, अंत में एक प्रश्न चिह्न (?) के साथ, एक बूलियन विधि के लिए सही नाम होगा जो इंगित करता है कि ई-मेल छिपा हुआ है या नहीं।

यदि आप वास्तव में अच्छा कोड लिखना चाहते हैं तो रूबी सम्मेलनों पर विचार करें। आपके सिस्टम में प्रक्रियाओं के बारे में सोचते समय भी वे आपकी मदद करेंगे।

+1

प्रश्न चिह्न चर में नहीं हो सकते हैं, केवल विधि नाम –

+0

@ मैक्सप्लेनर ने कहा। मैंने इसे बूलियन के बाद "विधि" शब्द डालने के लिए संपादित किया। –

2

रूबी कोड smeels ने कहा कि सभी बुलियन विधियों के साथ खत्म होना चाहिए?

सक्रिय रिकॉर्ड पर आप देख सकते हैं

User.valid? 

या माणिक में आप

[].nil? 
[].empty? 

मिल सकता है आप को पता है रूबी के सम्मेलनों के बारे में इस

http://blogs.visoftinc.com/2010/04/12/ruby-beauty-method-naming-conventions/

+0

रूबी में आप 'obj.is_a? (कुछ)' या 'हैश.has_key? (: Foo) देख सकते हैं। यह कहने के लिए कि 'is_XXX?' या 'has_XXX? 'का उपयोग करना स्वीकार्य है जब आप' self' –

संबंधित मुद्दे