रुबी में रूचि - रूबी

मैंने रूबी स्क्रिप्ट का एक सेट विकसित किया है।उनमें से प्रत्येक "आत्मनिर्भर" होना चाहिए, इसलिए कोई उपयोगकर्ता इसे स्वयं चला सकता है। लेकिन मैं उन्हें अन्य स्क्रिप्ट बनाने के लिए भी उपयोग करना चाहता हूं, मेरा मतलब है कि उदाहरण के लिए इसका उपयोग करने के लिए, लेकिन इसे पूरी तरह से चलाने के लिए, बिना ` script.rb`।

So far what I have is just a couple of scripts (अलग फाइलें) जहां मेरे पास कोई कक्षा नहीं है, बस कुछ विधियां हैं। उपयोगकर्ता इनपुट लेने और उन विधियों को चलाने की प्रक्रिया किसी भी कार्य के बाहर है। मैं देखता हूं कि यह मॉडल सही नहीं हो सकता है।

मेरा सवाल यह है कि, अब मुझे प्रत्येक स्क्रिप्ट को निहित रखने के लिए क्या करना चाहिए, बल्कि अन्य स्क्रिप्ट को इसका उपयोग करने की अनुमति देना चाहिए? क्या प्रत्येक स्क्रिप्ट में केवल एक मुख्य विधि के साथ एक वर्ग होना चाहिए जो मैं चलाऊंगा object.main?

या शायद एक साधारण स्क्रिप्ट लिखने का मेरा दृष्टिकोण, कोई वर्ग भी अच्छा नहीं है?

अगर मैं एक नई लिपि शुरू करता हूं, तो क्या मुझे हमेशा उद्देश्य का रास्ता तय करना चाहिए?

उत्तर:

उत्तर № 1 के लिए 1

जब मैं स्क्रिप्ट से एक लिखता हूं, तो मैं अक्सर इसे कक्षा में लपेटता हूं। आपने पुन: उपयोग और क्लीनर दस्तावेज सहित ऐसा करने के कुछ फायदे बताए हैं।

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

इस:

#!ruby

def amethod(i)
i+1
end

ARGF.each do |l|
if l.chomp.to_i > 0
puts amethod(l.chomp.to_i)
end
end

हो जाता है:

#!ruby

class OneAdder
def amethod(i)
i+1
end

def initialize
ARGF.each do |l|
if l.chomp.to_i > 0
puts amethod(l.chomp.to_i)
end
end
end
end

OneAdder.new

संबंधित सवाल
सबसे लोकप्रिय