प्रवाह में रहना
(... या , मैं सिंगल-फाइल प्रोग्रामिंग के प्रति जुनूनी क्यों हो गया हूं और आपको भी ऐसा करना चाहिए)
स्कूल में और फिर से करियर की शुरुआत में जो बड़ा झूठ बोला जाता है, वह यह है कि प्रोग्रामिंग में "अच्छा" होना कठिन और कठिन समस्याओं को और अधिक सुरुचिपूर्ण तरीके से हल करने के बारे में है। सच्चाई बहुत अधिक सांसारिक है - प्रोग्रामिंग में अच्छा होने के बारे में ज्यादातर छोटी-छोटी समस्याओं के एक बड़े सेट को जल्दी और सफाई से हल करने के बारे में है। हालाँकि, जो सच है, वह यह है कि ऐसा करने के लिए "फ्लो स्टेट" कितना मूल्यवान है। काम में डूबे रहने में सक्षम होने से आप डोमेन के बीच जल्दी से बदलाव कर सकते हैं, उपयोगकर्ता से व्यावसायिक तर्क तक राज्य के प्रवाह को डेटा स्टोर के माध्यम से और फिर से वापस ट्रैक कर सकते हैं।
कई "अच्छे" प्रोग्रामिंग अभ्यास जटिलता जोड़ते हैं:
- अलग मॉडल और विचार और नियंत्रक।
- अपने सभी परीक्षण समानांतर फाइलों और फ़ोल्डरों में रखें।
- CSS को इनलाइन न करें — इसे अलग-अलग CSS फ़ाइलों के पदानुक्रम में रखें, जिसे क्लास और ID द्वारा संदर्भित किया गया हो।
- सीएसएस भी न लिखें - एक प्रीप्रोसेसर का उपयोग करें और इसे कुछ मध्यवर्ती भाषा से उत्पन्न करें।
- संकुल और मॉड्यूल के नेस्टेड नेमस्पेस का उपयोग करें, प्रत्येक अपने स्वयं के मानक नियमों के साथ थिन_जीएस नाम देने के लिए।
ठीक उसी तरह जिस तरह से सर्वेक्षण के पैमानों को औसत मानव की भेदभाव करने की क्षमता (आमतौर पर 5-7 विकल्प, 9 से अधिक कभी नहीं) के खिलाफ प्लॉट किया जाता है, ऐसे फ्रेमवर्क जो कम फाइलों पर भरोसा करते हैं, कम प्रकार के होते हैं, और यथासंभव फ्लैट पदानुक्रम में व्यवस्थित होते हैं। नए डेवलपर्स के लिए तेजी से आगे बढ़ना आसान है, और काम करते समय हर किसी के लिए प्रवाह स्थिति में रहना आसान है।
"अच्छे" प्रोग्रामर "खराब" भाषा होने के लिए PHP और जावास्क्रिप्ट को बदनाम करना पसंद करते हैं; अभी तक दोनों सरल "एकल-फ़ाइल" पैटर्न का समर्थन करने के लिए उल्लेखनीय हैं। जावास्क्रिप्ट जेएसएक्स के माध्यम से ऐसा करता है; PHP केवल प्रत्येक PHP स्क्रिप्ट को मनमाने ढंग से HTML को शामिल करने की अनुमति देता है। मैंने सिंगल-फाइल डेवलपमेंट के आनंद को फिर से बनाने का फैसला किया है, लेकिन पायथन के लिए। उम्मीद है कि यह "नोटबुक" अजगर डेटा विज्ञान समुदायों, "बूट कैंप" सॉफ्टवेयर डेवलपर समुदायों और वेब अनुप्रयोग विकास की अग्रिम पंक्तियों के बीच स्पष्ट अंतराल को पाट देगा।
अगले कुछ ब्लॉग पोस्टों में, मैं अपने विकास के अनुभव को सरल और सुव्यवस्थित करने के लिए अपनाई गई कई "खराब" प्रथाओं के बारे में बात करूँगा। इससे भी बेहतर, मैं उन विभिन्न ओपन सोर्स लाइब्रेरी की घोषणा करूँगा जिन्हें मैंने खोजा, विस्तारित या विकसित किया है।