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