क्या आप रूबी में या बाहर कोष्ठक छोड़ते हैं? [बन्द है]


86

जब संभव हो .. क्या आप रूबी में या बाहर कोष्ठक छोड़ते हैं?

जवाबों:


95

रूबी स्टाइल के तत्वों से

रूबी आपको सामान्य रूप से कोष्ठक छोड़ने की अनुमति देता है, इस प्रलोभन का विरोध करता है।

कोष्ठक कोड का पालन करना आसान बनाता है। सामान्य रूबी शैली निम्नलिखित मामलों को छोड़कर, उनका उपयोग करने के लिए है:

  • हमेशा खाली कोष्ठक छोड़ दें
  • कोष्ठक ईआरबी सीमांकक से घिरे एक एकल आदेश से बाहर रह सकते हैं - ईआरबी मार्कर यह सुनिश्चित करते हैं कि कोड अभी भी पठनीय है
  • एक पंक्ति जो एक एकल आदेश है और एक एकल सरल तर्क को कोष्ठक के बिना लिखा जा सकता है। व्यक्तिगत रूप से, मुझे लगता है कि मैं इसे कम और कम करता हूं, लेकिन यह अभी भी पूरी तरह से पठनीय है। मैं नियमित रूप से रूबी कोड में एकल लाइनों को पसंद नहीं करता हूं जिसमें कई तर्क और कोई कोष्ठक नहीं हैं।
  • बहुत सारे रूबी-आधारित डोमेन स्पेसिफिक लैंग्वेजेस (जैसे रेक) अपने बयानों में अधिक प्राकृतिक भाषा के एहसास को संरक्षित करने के लिए कोष्ठक का उपयोग नहीं करते हैं।

27

मैं भविष्य में मेरी मदद करने के लिए टिप्पणी के रूप में parens का उपयोग करता हूं ... जो वर्तमान में मेरे मुकाबले कम मस्तिष्क कोशिकाओं की संभावना है :-)

2 साल पहले आपके द्वारा लिखे गए कुछ कोड को देखने और इसे गलत समझने से बुरा कुछ नहीं है, ताकि आप इसे संशोधित करते समय कुछ तोड़ दें।

यदि भविष्य में मुझे भविष्य में कुछ मिनट (या घंटे) की बचत होगी, तो मैं कथन को स्पष्ट करने के लिए आवश्यकता के अनुसार डालूँगा।


2
+1 "मैं भविष्य में मेरी मदद करने के लिए टिप्पणियों के रूप में पार्न्स का उपयोग करता हूं ... जिनके पास वर्तमान में मुझसे कम मस्तिष्क कोशिकाएं होने की संभावना है :-)" यह SO सच है, और वास्तव में मैं ऐसा क्यों करता हूं। यह मेरे बाद किसी के लिए भी दयालु होना है जिसे मेरे कोड का उपयोग करना है। संक्षेप में, यह एक रखरखाव की बात है।
टीन मैन

9

जब मैं DSL- ईश सामान कर रहा होता हूं, तो उन्हें छोड़ देता हूं, जैसे t.column या has_many रेल में। बाकी समय, यह आमतौर पर स्पष्टता के लिए नीचे आता है, और यह शायद एक भी विभाजन है।


8

मुझे लगता है कि मैं दोनों करता हूं, लेकिन मैं निश्चित रूप से उन्हें रखता हूं यदि यह पठनीयता में जोड़ता है और उन बयानों से बचता है जो अस्पष्ट लगते हैं।


8

यदि आप फ़ंक्शन कॉल का मतलब रखते हैं, तो मैं हमेशा कोष्ठक लगाता हूं क्योंकि इसे पढ़ना हमेशा आसान होता है। यदि आप परिस्थितियों में मतलब रखते हैं (यदि, जबकि) मैं केवल आवश्यक होने पर कोष्ठक लगाता हूं।


2
मैं सहमत हूँ। उदाहरण के लिए php में मैं जल्दी से $ उपसर्ग द्वारा एक var स्पॉट कर सकता हूं .. जावास्क्रिप्ट में मैं कोष्ठक () द्वारा एक फ़ंक्शन को शामिल कर सकता हूं। रूबी में एक var या func (कोष्ठक के बिना) के बीच का अंतर हमेशा देखना आसान नहीं होता है।

7

मैं उन्हें बाहर छोड़ने की कोशिश करता हूं, यदि संभव हो तो। मुझे लगता है कि यह कोड को पढ़ना आसान बनाता है (आम तौर पर बोलना)।


4

जो भी आमतौर पर अधिक पठनीय है।

लेकिन मैं हमेशा कोष्ठक का उपयोग करता हूं जब मैं दूसरे लोगों के मापदंडों के अंदर फ़ंक्शन कॉल करता हूं


2

जब मैं इस तरह के दावे assert_equal करते हैं तो मैं उन्हें छोड़ देता हूं। हो सकता है कि वह इसे डोमेन विशिष्ट भाषा की तरह बना दे।


1

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

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


4
"मेरे शिक्षक मुझे अपनी अपरिहार्य बताते हैं"। यह है, और डिबग करना कठिन हो सकता है। मैं अस्पष्ट पैरामीटर असाइनमेंट से बचने के लिए उनका उपयोग करने की सलाह देता हूं।
टिन मैन

डाउनवोट के रूप में "आंखों पर आसान" आईएमओ फ़ंक्शन तर्कों के आसपास कोष्ठक को छोड़ने का एक घटिया कारण है।
Marcello Romani

2
नॉन-पैरेंस भीड़ से बात करते हुए मैं इस समस्या में भाग गया, दूसरे दिन if owner.is_a? thing //worked fine if owner.is_a? thing && x > 1 //not fine मैं केवल कुछ हफ़्ते के लिए रूबी सीख रहा हूं और जहां मैं काम करता है सबसे कम संभव अक्षर का उपयोग करता है और यदि आप किसी अन्य भाषा से आते हैं, तो एक सीख है यह जानने के लिए कि जब आप एक इंपीटिशन हैश, प्रतीकों की एक सरणी, एक समारोह में प्रतीकों को पारित कर रहे हैं ... मैं एक प्रशंसक नहीं हूं।
मेगा मैन

@ मेग्मनif owner.is_a? thing and x > 1
an32328p

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