सॉफ्टवेयर बनाते समय, कुछ चीजें होंगी जो हर बार उन्हें लिखने पर आपको निराश करेंगी। कोड के टुकड़े जो बदसूरत लगते हैं। या वे लाइनें जिन्हें आप कभी भी ठीक से लिखना याद नहीं रख सकते, इसलिए आप अपने कोडबेस में कहीं और एक उदाहरण ढूंढते हैं और कॉपी-पेस्ट करते हैं। ये आपके फ्लो को तोड़ते हैं! इसलिए उन्हें पहचानना और उन्हें अधिक सुविधाजनक बनाना महत्वपूर्ण है।
उदाहरण के लिए, आपको कभी-कभी अपने रेल्स ऐप में कस्टम कॉन्फ़िगरेशन की आवश्यकता होगी। हो सकता है आप कुछ अतिरिक्त ऐप-विशिष्ट सेटिंग्स चाहते हों। या हो सकता है कि आपके द्वारा उपयोग की जा रही लाइब्रेरी अपने कॉन्फ़िगरेशन फाइलों के लिए config/ में देखना न चाहें। आमतौर पर, आप YAML-ERB-read-Rails.env नृत्य करेंगे:
YAML.load(ERB.new(File.read(Rails.root.join('config', 'google_analytics.yml'))).result)[Rails.env] लेकिन यह थोड़ा हास्यास्पद है। और कभी-कभी आप ERB भूल जाएंगे, और जब आप इसकी उम्मीद नहीं कर रहे होंगे तो चीजें टूट जाएंगी।
हमारे कोडबेस में, हमारे पास इसे और अधिक सुविधाजनक बनाने के लिए एक सरल Settings क्लास है:
require 'settings' GoogleAnalyticsSettings = Settings.new(:google_analytics) GoogleAnalyticsSettings.google_analytics_id # => "UA-XXXXXXX-1" Settings स्वचालित रूप से config/ डायरेक्टरी में सही कॉन्फ़िगरेशन फाइल ढूंढ लेगा। फिर, यह इसे YAML और ERB के माध्यम से पाइप करता है, और Rails.env का उपयोग करके रेल्स वातावरण के लिए कॉन्फ़िगरेशन को पकड़ लेता है। अंत में, यह सब कुछ एक OpenStruct में लपेटता है ताकि शीर्ष-स्तरीय कॉन्फ़िगरेशन तक पहुंच थोड़ी अच्छी हो जाए। यहां एक बुनियादी Settings कार्यान्वयन का गिस्ट है।
यह वास्तव में सरल है। लेकिन यह सुविधाजनक है। Settings.new याद रखना उस सभी फाइल लोडिंग सामान की तुलना में बहुत आसान है। और ये छोटी सुविधाएं जुड़ती हैं, और आपके कोडबेस को काम करने में बहुत अधिक मजेदार बना देंगी।
आपके कोड में, क्या आप किसी ऐसी चीज के बारे में सोच सकते हैं जो आपको परेशान करती है, आपके फ्लो को तोड़ती है, या जहां आपको हर बार एक उदाहरण देखना पड़ता है? क्या आप इसे अपने लिए उपयोग करना आसान बनाने का कोई तरीका ढूंढ सकते हैं?