मैं कुछ समय के लिए कोड करने के लिए कॉन्फ़िगर फ़ाइलों और उनके संबंधों पर विचार कर रहा हूं और हवा के दिन और दिशा के आधार पर मेरी राय बदल रही है। अधिक से अधिक हालांकि मैं Lisp सीखते समय सबसे पहले मेरे पास वापस आ रहा हूं: डेटा और कोड में बहुत कम अंतर है। यह कॉन्फ़िगर फ़ाइलों के लिए दोगुना सच लगता है। जब सही प्रकाश में देखा जाता है तो एक पर्ल स्क्रिप्ट पर्ल के लिए एक कॉन्फिग फाइल से थोड़ी अधिक होती है। यह QA और श्रम के विभाजन जैसे कार्यों के लिए काफी भारी परिणाम देता है जैसे कि कॉन्फ़िगर फ़ाइलों को बदलने के लिए कौन जिम्मेदार होना चाहिए।
विन्यास फाइल से पूर्ण विकसित भाषा तक रेंगना आम तौर पर धीमा होता है और सामान्य प्रणाली की इच्छा से प्रेरित होता है। अधिकांश प्रोजेक्ट कुछ कॉन्फिग आइटम के साथ छोटे से शुरू करने लगते हैं जैसे कि लॉग्स लिखना कहाँ है, डेटा, उपयोगकर्ता नाम और पासवर्ड आदि देखने के लिए, लेकिन फिर वे बढ़ने लगते हैं: सुविधाएँ चालू या बंद होने में सक्षम होने लगती हैं। संचालन का समय और क्रम नियंत्रित होने लगता है, और, अनिवार्य रूप से, कोई व्यक्ति इसमें तर्क जोड़ना शुरू करना चाहता है (जैसे कि मशीन X और 15 का उपयोग करता है यदि मशीन Y है)। एक निश्चित बिंदु पर कॉन्फ़िगरेशन फ़ाइल एक डोमेन विशिष्ट भाषा बन जाती है, और उस पर एक खराब लिखा हुआ होता है।
अब जब मैं मंच बनाने के लिए तैयार हो गया, तो यहाँ मेरे सवाल हैं:
- कॉन्फिग फाइल का असली उद्देश्य क्या है?
- क्या विन्यास फाइल को सरल रखने का प्रयास किया जाना चाहिए?
- उन्हें (डेवलपर्स, उपयोगकर्ता, व्यवस्थापक, आदि) में परिवर्तन करने के लिए कौन जिम्मेदार होना चाहिए?
- क्या उन्हें स्रोत नियंत्रित किया जाना चाहिए (प्रश्न 3 देखें)?
जैसा कि मैंने पहले कहा था कि इन सवालों के मेरे जवाब लगातार बदलते हैं, लेकिन अभी मैं सोच रहा हूं:
- एक गैर-प्रोग्रामर को व्यवहार के बड़े हिस्से को जल्दी से बदलने की अनुमति देने के लिए
- हां, कुछ भी जो मोटे अनाज का नहीं है, कोड में होना चाहिए
- उपयोगकर्ताओं को विन्यास फाइल के लिए जिम्मेदार होना चाहिए और प्रोग्रामर को विन्यास फाइल और कोड के बीच एक विन्यास परत के लिए जिम्मेदार होना चाहिए जो अनुप्रयोग के अधिक बारीक नियंत्रण देता है।
- नहीं, लेकिन महीन दाने वाली मध्यम परत होनी चाहिए