जब आप सॉफ़्टवेयर बना रहे हों, तो ऐसी चीज़ें होंगी जो आपको हर बार उन्हें लिखने के लिए निराश करेंगी। कोड के बिट्स जो बदसूरत दिखते हैं। या वे पंक्तियाँ जिन्हें आप कभी भी याद नहीं रख सकते कि कैसे लिखना है, इसलिए आप अपने कोडबेस में कहीं और कॉपी और पेस्ट करने के लिए एक उदाहरण पाते हैं। ये आपके प्रवाह को तोड़ते हैं! इसलिए उन्हें पहचानना और उन्हें अधिक सुविधाजनक बनाना महत्वपूर्ण है।
उदाहरण के लिए, आपको कभी-कभी अपने रेल ऐप में कस्टम कॉन्फ़िगरेशन की आवश्यकता होगी। शायद आप कुछ अतिरिक्त ऐप-विशिष्ट सेटिंग्स चाहते हैं। या हो सकता है कि आप जिन पुस्तकालयों का उपयोग कर रहे हैं वे 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/ . में मिल जाएगी निर्देशिका। फिर, यह इसे वाईएएमएल और ईआरबी के माध्यम से पाइप करता है, और Rails.env . का उपयोग करता है रेल पर्यावरण के लिए कॉन्फ़िगरेशन को पकड़ने के लिए। अंत में, यह शीर्ष-स्तरीय कॉन्फ़िगरेशन को थोड़ा अच्छा बनाने के लिए ओपनस्ट्रक्चर में सब कुछ लपेटता है। यहां एक बुनियादी सेटिंग कार्यान्वयन का सार दिया गया है।
यह वास्तव में सरल है। लेकिन यह सुविधाजनक है। यह काफी है याद रखने में आसान Settings.new उस फ़ाइल लोडिंग सामग्री की तुलना में। और ये छोटी-छोटी सुविधाएं जुड़ती हैं, और आपके कोडबेस को काम करने के लिए और अधिक मज़ेदार बना देंगी।
अपने कोड में, क्या आप किसी ऐसी चीज़ के बारे में सोच सकते हैं जो आपको परेशान करती है, आपके प्रवाह को बाधित करती है, या जहाँ आपको हर बार एक उदाहरण देखना पड़ता है? क्या आप अपने उपयोग को आसान बनाने का कोई तरीका खोज सकते हैं?