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