क्या उत्पादन डेटा के खिलाफ विकास करना बुरा है?


10

मैंने हमेशा सुना है कि उत्पादन डेटा के खिलाफ विकसित करने के लिए यह बुरा अभ्यास है और वर्तमान में देव> स्टेज> प्रोडक्शन मॉडल में जाने की प्रक्रिया में हूं, मुख्यतः क्योंकि मेरे पास न्यूनतम कौशल वाला एक नया कर्मचारी है और मैं उसके पास नहीं हूं। उत्पादन डेटा के साथ सीधे काम करते हैं।

लेकिन लंबे समय से मैंने कम से कम सिरदर्द के साथ उत्पादन डेटा के साथ सीधे काम किया है, शायद कुछ त्रुटियों को छोड़कर, यहाँ या वहाँ वर्तनी की समस्याएं, खराब ऑल्ट पाठ, गलत स्थान की ओर इशारा करते लिंक। यह मेरी ओर से सहकर्मी समीक्षा की कमी के कारण लगता है, न कि लाइव डेटा के साथ काम करने के कारण।

तो लाइव साइट पर इस तरह के बुरे व्यवहार का विकास क्यों हो रहा है?


आप विकास सर्वर पर अपने उत्पादन सर्वर पर मौजूद डेटा को केवल डुप्लिकेट कर सकते हैं।
HoLyVieR

1
mmmm ... मैं उत्पादन डेटा के साथ सीधे चीजों को करने के आपके तरीके का समर्थन किए बिना इस प्रश्न को कैसे बढ़ाऊं? : एस
वमर्केज़

2
@vmarquez क्या एक बुरी प्रथा के बारे में एक प्रश्न आवश्यक रूप से एक बुरा प्रश्न है?
प्लेनटेक्स्ट

नहीं ऐसा नहीं है। मैं वोट-अप करने वाला था, क्योंकि मुझे लग रहा था कि इस तरह के प्रश्न सर्वोत्तम प्रथाओं पर शिक्षित करने के लिए एक शानदार रूप हैं, और फिर, किसी तरह, मुझे अपने दिमाग में यह विचार आया कि मतदान को एक मौन स्वीकृति के रूप में लिया जा सकता है। इस प्रकार, इसके विपरीत प्रभाव को भड़काने वाले बुरे अभ्यास पर। अब मुझे लगता है कि मतदान भ्रामक हो सकता है ... कम से कम कुछ मामलों पर।
१mar:०४ में वार्मकेज़

1
लोग सभी प्रकार के अलग-अलग कारणों से चीजों पर वोट देते हैं। मैं "इस व्यक्ति को इस प्रश्न से कुछ मिल गया है" के अलावा कुछ भी मत लेना।
आर्टलंग

जवाबों:


17

यदि विकास के दौरान आप SQL कमांड चला रहे हैं, जिसमें INSERTया UPDATEमौजूदा डेटाबेस टेबल शामिल हैं, तो आप इस हद तक जोखिम उठा रहे हैं कि उन डेटाबेस टेबल मिशन क्रिटिकल हैं।

कुछ स्थान उत्पादन डेटाबेस को कुछ अंतराल पर विकास डेटाबेस में कहते हैं, सप्ताह में एक बार या डेवलपर के अनुरोध पर, ताकि आपके पास विकसित करने के लिए ताज़ा डेटा हो।

लेकिन अगर आपका उत्पादन डेटा आपके द्वारा किए जा रहे जोखिम से नहीं है, उदाहरण के लिए, यदि आप केवल कुछ डेटा के बारे में विचार कर रहे हैं, तो आमतौर पर यह कोई बड़ी बात नहीं है। अब, यदि आप टेबल स्कैन करने वाली रिपोर्ट चला रहे हैं, तो आपके पास टेबल को लॉक करने की क्षमता है, तो आपके मौजूदा उपयोगकर्ता प्रभावित हो जाते हैं।

मैं इस तरह के मामलों में अपने डेटाबेस प्रशासक को टाल दूंगा, अगर कोई "आधिकारिक" डीबीए नहीं है, तो मैं सावधानी के साथ काम करूंगा। यह एक विकास डेटाबेस बनाने के लिए काफी सरल है, यहां तक ​​कि अपने लिए भी। एक टीम पर यह महत्वपूर्ण है। असफल होने पर, यदि आप केवल एक डेटाबेस को भरने के बारे में आग्रह कर रहे थे, तो आप अपने विकास डेटाबेस तालिकाओं को DEV_थोड़ा बेहतर महसूस कर सकते हैं। हां, इसके लिए कुछ कोड परिवर्तनों की आवश्यकता होती है, लेकिन विकास में विकास के दौरान कुछ चर जोड़ना $debug = true, आदि आमतौर पर प्रयास के लायक होते हैं।

इसके लिए बहुत सारे तरीके। यह आपकी स्थिति पर बहुत निर्भर है।


सिंक प्रक्रिया पर +1। हम अपने विकास के लिए यहां मांग करते हैं। हमारे पास एक QA भी है जो उत्पादन में आने से पहले परिवर्तनों की अंतिम समीक्षा के लिए अधिक बार सिंक किया गया क्षेत्र है। लेकिन हम कभी-कभी उत्पादन डेटा के खिलाफ क्वेरी चलाते हैं, सिर्फ इसलिए कि समस्या डेटा से संबंधित है और इसे दोहराने के लिए बहुत कठिन है।
मिलनर

+1 और सिंक मुश्किल हो सकता है। कई मामलों में, आप, साफ़ ईमेल पते और नाम की तरह Prod-> टेस्ट धक्का के हिस्से के रूप काम करने के लिए आदि गलती से ईमेल "प्रिय रिच बास्टर्ड" से बचने के लिए चाहता हूँ
JasonBirch

11

आप अपने उत्पादन सर्वर पर उत्पादन डेटा के विरुद्ध विकास नहीं करना चाहते हैं। बहुत बड़े कारण हैं।

  1. विकास आपके उत्पादन बॉक्स को धीमा कर देता है और कमजोरियां पैदा करता है। यदि आप अपने कंप्यूटर को अनलॉक करके चले जाते हैं तो क्या होता है?
  2. यदि आप एक गलती करते हैं जो आपकी साइट पर जाने वाले लोग इसे देख सकते हैं।
  3. यदि आप अपने डेटाबेस में किसी लेन-देन के अंदर किसी भी तरह का डेटा अपडेट करते हैं और आप इसे तुरंत नहीं करते हैं या लेन-देन समाप्त होने में कुछ समय लगता है तो आप इसमें शामिल सभी तालिकाओं पर ताला लगा देंगे और आपको होने वाली समयावधि हो सकती है। ।
  4. कुछ डेटाबेस सिस्टम, विशेष रूप से SQL सर्वर अकेले SELECT स्टेटमेंट पर कई बार टेबल लॉक करेंगे! जिसका अर्थ है कि आप अनजाने में लोगों को आपकी साइट पर टाइमआउट या त्रुटि पृष्ठ दे सकते हैं।

यदि संभव हो तो मैं लाइव बॉक्स पर विकास कार्य कभी नहीं करूंगा। आपका सबसे अच्छा शर्त डेटाबेस और पृष्ठों का बैकअप बनाना और कॉपी के साथ काम करना और फिर अपने अपडेट को पुश करना है। एक उपकरण जिसने मुझे एक टन की मदद की है वह है Msft's SyncToy।


7

ठीक है, आप वास्तव में डेटा को गड़बड़ कर सकते हैं। कल्पना कीजिए कि एक खंड कहाँ से निकलता है। यहां तक ​​कि अगर आपके पास प्रति घंटा बैकअप है, तो इसे ठीक करने के लिए एक दर्द होगा।


3

यदि आप बिना सीटबेल्ट के गाड़ी नहीं चलाते हैं, तो उत्पादन डेटा पर विकास न करें। बस एक सुरक्षा मुद्दा है।


3

यदि आपके पास उत्पादन डेटा उपलब्ध है, तो उन्हें परीक्षण के लिए उपयोग करना उचित है, लेकिन उस डेटा की प्रतिलिपि के साथ एक अलग परीक्षण डेटाबेस का उपयोग करें। अन्यथा कई चीजें आपके कुछ "ब्लाबला" परीक्षण रिकॉर्ड के लिए काम करेंगी लेकिन वास्तविक परिदृश्य के लिए नहीं।

और लाइव उत्पादन डेटा के विकास के लिए - मर्फी के नियमों को याद रखें "जो कुछ भी गलत हो सकता है वह गलत हो जाएगा।", और बड़े बुरे परिणामों के साथ एक छोटी सी गलती करना इतना आसान है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.