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