आप क्या चाहते हैं कि डेवलपर्स अलग तरीके से करें? [बन्द है]


35

एक डेवलपर के रूप में, मैं अपना अधिकांश समय कोड, यूआई, डेटा संरचनाओं और इसी तरह के बारे में सोचने में बिताता हूं, लेकिन (मैं बहादुरी से मानता हूं) मैं अपने ऐप के निहितार्थों पर विचार करने की प्रवृत्ति नहीं रखता जब तक कि यह तैनात करने का समय नहीं है। अप्प।

सबसे पहले, मुझे क्षमा करें। दूसरे, आप क्या चाहते हैं मैं, और अन्य डेवलपर्स जिनसे आप निपटते हैं, वे अलग तरीके से करेंगे? कौन सी चीजें आपके लिए जीवन को आसान बना देंगी, कम समस्याओं का कारण बन सकती हैं, सहकारिता को प्रोत्साहित करेंगी और क्रैश, प्रदर्शन के मुद्दों और कॉन्फ़िगरेशन के बुरे सपने को कम करेंगी?

जवाबों:


34
  1. दिन 0 से सुरक्षा के बारे में सोचें और बनाएं।
  2. सब कुछ के लिए संस्करण नियंत्रण का उपयोग करें: स्रोत कोड, प्रलेखन, कॉन्फ़िगरेशन, आदि।
  3. प्रलेखन, प्रलेखन, प्रलेखन।
  4. प्लेटफ़ॉर्म-देशी पैकेजिंग का उपयोग करके साफ स्थापना और डी-इंस्टॉलेशन
  5. पुस्तकालयों और निष्पादनयोग्य से अलग कॉन्फ़िगरेशन डेटा
  6. परीक्षण और माइग्रेशन के समानांतर विभिन्न संस्करणों को चलाने के लिए समर्थन
  7. मजबूत, कॉन्फ़िगर करने योग्य लॉगिंग
  8. लाइटवेट, सटीक, सुरक्षित निगरानी
  9. एप्लिकेशन चेकपॉइंटिंग और बैकअप
  10. आपका आवेदन समस्याओं पर कैसे प्रतिक्रिया करता है: स्मृति से बाहर, फ़ाइल सिस्टम पूर्ण, नेटवर्क डाउन, अनुपलब्ध / दूषित कॉन्फ़िगरेशन फ़ाइलें, समय तिरछा?
  11. हमेशा अलग विकास, परीक्षण और उत्पादन वातावरण होता है। सभी मुफ्त VM sofware के साथ, कोई बहाना नहीं है!

याद रखें कि आपके एप्लिकेशन में संभवतः ऊपर या नीचे से अधिक राज्य हैं। एक स्टेट डायग्राम बनाएं। अधिकांश अनुप्रयोगों में ऐसे राज्य होते हैं:

  • नीचे
  • प्रारंभ करने
  • वसूली
  • अप-लेकिन-नहीं-स्वीकार करने के काम
  • इंतज़ार कर रही
  • checkpointing
  • प्रसंस्करण
  • पूरी तरह खत्म करना
  • बंद करना
  • नीचे

सोचें कि यदि सिस्टम प्रत्येक स्थिति के दौरान क्रैश हो जाए तो क्या होगा। कैसे एक sysadmin राज्य के संक्रमण की निगरानी और नियंत्रण करेगा?


4
वाह। वह राज्य आरेख विचार AWESOME है। मैं इसे दिन के सबसे अच्छे उत्तर स्निपेट के लिए नामांकित करता हूं!
जुआन

बस एक निपिक: सुरक्षा एक डिजाइन समस्या का अधिक है। आपको पहले अपने संदर्भ में "सुरक्षित" का मतलब क्या होना चाहिए (उपयोगकर्ताओं को क्या करने में सक्षम होना चाहिए, क्या गुप्त है आदि)। अन्यथा वहाँ छोटे डेवलपर्स कर सकते हैं ...
sleske

17

एसए से "उपयोगकर्ता" को भेदें।

एक "उपयोगकर्ता" को आपके सॉफ़्टवेयर का उपयोग करने का तरीका जानने की आवश्यकता है। उपयोगकर्ता आपके सॉफ़्टवेयर को कैसे स्थापित करें जैसी चीज़ों की परवाह नहीं करते हैं।

SA को इस बात की परवाह नहीं है कि आपके सॉफ़्टवेयर का उपयोग कैसे किया जाए, लेकिन सॉफ़्टवेयर स्थापित करने के तरीके के बारे में कुछ महत्वपूर्ण विवरणों को जानना आवश्यक है।

उन प्रत्येक भूमिकाओं के लिए अलग से प्रलेखन लिखें, जिनमें से प्रत्येक के लिए प्रासंगिक जानकारी भी शामिल है।


3
मुझे लगता है कि यह उल्लेख योग्य है कि व्यवस्थापक अपने नेटवर्क के प्रत्येक पहलू के साथ तत्काल विशेषज्ञ होने चाहिए, साथ ही उन पर चलने वाले कार्यस्थान और अनुप्रयोग। जब हमारे पास वित्त लोग हमसे पूछते हैं कि उनके पेरोल सॉफ़्टवेयर पर अपडेट कैसे किया जाए तो यह आसान है, जब हमारे पास लॉजिस्टिक्स है तो हमसे पूछें कि वे अपना ऑर्डर क्यों नहीं दे सकते हैं, यह हम पर है कि हम पहले से ही जानते हैं कि उनकी प्रक्रिया में क्या होता है आदेश। मुझे लगता है कि प्रत्येक प्रणाली वास्तव में प्रत्येक व्यक्ति से कैसे बात करती है, इसके बारे में दस्तावेज़ीकरण आसानी से भूल जाता है, जिससे हम "मूर्ख" दिखते हैं, क्योंकि हम उनके काम का जटिल विवरण नहीं जानते हैं
बॉबी

9

मेरी इच्छाओं में से एक अपवाद और त्रुटि कोड में उचित संदेशों का समावेश है। यह पूरी तरह से किसी ऐसे व्यक्ति के लिए अपारदर्शी है जिसने आवेदन का विकास नहीं किया JimmyNotAtHomeException: it's late!है।

लेकिन एक संदेश जैसे कि Unable to find jimmy - initial manual call_mother procedureबहुत मददगार है।


2
मैं सहमत हूँ। कृपया, लॉग में जाने के लिए कई लॉग स्तर और दस्तावेज़ हैं!
क्लिंटन ब्लैकमोर

दुर्भाग्य से, कुछ कंपनियों के लिए गुप्त त्रुटि संदेश आपके व्यवसाय मॉडल का हिस्सा हैं जो आपको अनुबंधों का समर्थन करते हैं। वे वास्तव में आपको समझना नहीं चाहते हैं।
घुंघरू 21

8

संचार, संचार, संचार। एक sysadmin और एक देव के बीच हर समस्या बहुत हमेशा संचार की कमी के लिए वापस ट्रैक किया जा सकता है। यदि एक परियोजना से पहले sysadmins (या उसके प्रतिनिधि) और देवों को एक साथ मिला और एक अच्छी रूपरेखा पर चर्चा हुई, तो SOOOOOOOOOO कई समस्याओं को लाइन के नीचे टाला जा सकता है। मैं आपको यह नहीं बता सकता कि आप कितनी चीजों को प्राप्त कर लेते हैं क्योंकि आप सबको एक बॉक्स में विकसित करते हैं, केवल यह देखने के लिए कि क्या यह आग की लपटों में नीचे चला जाए क्योंकि ऐप फिर ऐप सर्वर + डीबी सर्वर + इंटरफ़ेस सर्वर, आदि में अलग हो जाता है। इस विषय को लाने के लिए यश।


8

परियोजना में हमें जल्दी संलग्न करें। वास्तविक असली की तरह, प्रारंभिक कल्पना चरण में।

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

ऐसी तकनीक चुनें जो ठीक उसी तरह से केंद्रीय रूप से प्रबंधित और कॉन्फ़िगर की जा सके। सुनिश्चित करें कि यह हमारे द्वारा उपयोग किए जाने वाले केंद्रीय प्रबंधन टूल के साथ अच्छी तरह से एकीकृत है।

हमेशा सबसे कम सामान्य भाजक का उपयोग करके परीक्षण करें। इसका मतलब है कि एक गैर-व्यवस्थापक के रूप में, सबसे अधिक उपयोग होने वाले आदिम ओएस, एप्लिकेशन सूट और ब्राउज़र प्लेटफॉर्म पर। हम अपने उन सभी उपयोगकर्ताओं के लिए आवश्यक ब्राउज़र अपग्रेड करना पसंद नहीं करते जो अंतिम संभव मिनटों में हम तक पहुँच गए थे।

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


Whish मैं दो बार upvote सकता है :-)।
सेल्के

7

अभिजात्य मत बनो।

"मेरा समय बर्बाद मत करो, दोस्त। तुम सिर्फ एक कुत्ते का बच्चा हो; मैं सॉफ्टवेयर लिखता हूं और आप इसे केवल सेवा करते हैं। इसलिए बस अपनी क्षुद्र चिंताओं के साथ चुप रहो और जैसा मैं कहता हूं, ठीक है?"

एक डेवलपर ने वास्तव में एक बार उन शब्दों को कहा था (1)। ईमेल में। CC'd एक बड़े वितरण समूह के लिए। निहितार्थ स्पष्ट था: एक डेवलपर के रूप में, वह संपूर्ण सॉफ्टवेयर ब्रह्मांड का स्वामी और स्वामी था; और मैं बस एक दिहाड़ी मजदूर था जो अपने मूल्यवान समय को बर्बाद करने के लिए उसके लिए बहुत तुच्छ कार्यों से निपटने के लिए काम पर रखा था। बेशक, यह लगभग सबसे खराब मामला है, लेकिन आप जानते हैं, मैंने उस टिप्पणी के मजबूत और कमजोर गूँज को पहले और बाद में (2) कई डेवलपर्स से सुना है।

आप मुझसे ज्यादा पैसा कमा सकते हैं (लेकिन यह मत मानिए!)। लेकिन यह उन प्रणालियों के निर्माण, संचालन और रखरखाव के लिए एक टीम लेता है, जिन पर हमारे उपयोगकर्ता भरोसा करते हैं। अंतत: हम सभी उनकी सेवा करते हैं।

मुझे लगता है कि आपकी नौकरी और आपके कौशल मेरा से अलग हैं। मैं आपकी क्षमताओं का सम्मान करता हूं। मुझे आशा है कि आप मेरे प्रश्नों का उत्तर तब भी देंगे जब वे आपके लिए प्राथमिक और मूर्ख प्रतीत होंगे। मैं ख़ुशी-ख़ुशी इस शिष्टाचार को वापस करूँगा!

मैं पागल शक्ति-यात्रा पर नहीं हूं, क्योंकि बहुत सारे बुरे (या बस अनियंत्रित) देवों ने विभिन्न मंचों में कहा और सोचा और पोस्ट किया है। लेकिन मेरी चिंताएं आपकी तुलना में अलग हैं, और मेरे सवाल और सुझाव मेरे अहंकार की सेवा में नहीं हैं। वास्तव में मेरा काम आपको सभी उपयोगकर्ताओं के लिए टिप-टॉप रनिंग स्थिति में उपलब्ध और उत्तरदायी रखकर, आपको बेहतर दिखना है। ऐसा करने के लिए, मुझे बाकी नेटवर्क और सिस्टम को भी टिप-टॉप आकार में रखना होगा।

मैं पूरी तरह से जानता हूं कि आप अतीत में बेवकूफ, शक्ति-पागल और / या सीधे सादे आलसी प्रशंसा में भाग चुके हैं। मैं एक होने की कोशिश कर रहा हूं और एक जैसी दिखने की नहीं। यदि आप इस संभावना के लिए कमरा छोड़ देते हैं, और जब आप इसे देखते हैं, तो इसे स्वीकार करते हैं, मुझे पूरा यकीन है कि आपको वह मिलेगा जो आपको चाहिए, जबकि उन अन्य गधे अभी भी इस बात के बारे में ध्यान दे रहे हैं कि एक गधे ने उनके sysadmin क्या हैं।


(१) वह यह भी जोर दे रहा था कि उसके प्रोग्राम (सॉफ्टवेयर आवश्यकताओं को लिखने और प्रबंधित करने के लिए एक उपकरण) को स्थापित करने और चलाने के लिए डोमेन व्यवस्थापक विशेषाधिकारों की आवश्यकता है। यह एक बड़ा सुरक्षा जोखिम था।

(२) मैंने कई भयानक डेवलपर्स के साथ भी काम किया है जो आवश्यक होने पर सिखा सकते हैं, और जब आवश्यक हो तो सीख सकते हैं।


अच्छाई मुझे, क्या बेवकूफी है। यह कहना काफी बुरा है, लेकिन इस जगह के आसपास नकल करना शर्मनाक है
harriyott

माना। उस डेवलपर को वास्तव में उनके श्रेष्ठ (जो उम्मीद के साथ ही सीएसएस ;-)) द्वारा पूरी तरह से चबाया जाना चाहिए था।
सेल्के

6

सम्मान करें कि सिस्मडिन्स के पास एक काम है, और उन्हें अपना काम करने दें। बहुत सी कंपनियों के पास असंगत सिस्मिन्स हैं और यह अक्सर यथार्थवादी नहीं होता है। लेकिन मैंने देखा है कि अभिमानी डेवलपर्स सिस्टम समूहों की सलाह को अनदेखा कर देते हैं, क्योंकि सिस्मैमिन्स ने अपनी क्षमता साबित कर दी है।

एक नई प्रणाली के डिजाइन पर चर्चा करें। अक्सर मूल्यवान अंतर्दृष्टि होती है। डेवलपर्स अक्सर sysadmins के साथ चर्चा को देखते हैं और "समय से पहले अनुकूलन" के रूप में प्रारंभिक आवश्यकताएं देते हैं। मैंने वास्तव में एक विकास समूह के प्रमुख को यह कहते हुए देखा कि यह अपने समय की बर्बादी थी कि नए डेटाबेस सर्वरों के लिए sysadmins और DBAs के साथ आवश्यकताओं की चर्चा करें, यहां तक ​​कि यह वर्णन करने के लिए कि क्या यह एक लेखन-गहन या पठनीय भार है, या कितना भंडारण की आवश्यकता होगी।

Sysadmins के साथ प्रदर्शन समस्याओं पर चर्चा करें। ईमानदारी से केवल sysadmins सिस्टम पर प्रदर्शन मैट्रिक्स की ठीक से व्याख्या करने में सक्षम हैं। मैंने देखा है कि डेवलपर्स हमेशा यह तय करते हैं कि लिनक्स हमेशा मेमोरी को लीक करता है क्योंकि "फ्री" द्वारा बताई गई मुफ्त मेमोरी हमेशा घट जाती है, 10 वीं बार "फ्री" के आउटपुट के बारे में भी बताया गया है।

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

सिस्टम प्रॉब्लम का सॉल्यूशन सिनेमैड्मिन पर चर्चा किए बिना न करें। मैंने एक रोगात्मक वातावरण में काम किया, जहां डेवलपर्स एक समाधान डिजाइन करेंगे और छोटे कार्यान्वयन सहायता के लिए पूछेंगे। यूनिक्स समूह के सदस्य खुद के अलावा, यूनिक्स समूह के प्रमुख और उनके मालिक, डेवलपर्स को "ग्राहक" के रूप में व्यवहार करना चाहते थे, न कि सह-कार्यकर्ता के रूप में एक समग्र बुनियादी ढांचा कार्य करने की कोशिश कर रहे थे। ग्राहक के हमेशा सही होने का अर्थ यह नहीं था कि वे क्या कर रहे थे या क्यों कर रहे थे। मैं एकमात्र ऐसा व्यक्ति था जो इस समस्या का वर्णन करने पर जोर देता था ताकि एक सही समाधान निर्धारित किया जा सके। इस तरह के रूप में पैथोलॉजिकल वातावरण बनाने वाले तरीकों से कार्य न करें। यह एक शुद्ध लाभ में परिणाम नहीं करता है - इसके बजाय, सिस्टम प्रबंधक रक्षात्मक रूप से कार्य करेंगे और सभी को नुकसान होगा।

तुम अब स्कूल में नहीं हो। ये वास्तविक दुनिया प्रणाली हैं और वे एक आदर्श तरीके से कार्य नहीं करते हैं। उदाहरण के लिए, सब कुछ शून्य विलंबता नहीं है। जब एक सिसडमिन आपको चेतावनी देता है कि क्लस्टरिंग समाधान केवल राजनीतिक उद्देश्यों के लिए हैं, और सिस्टम की अतिरिक्त जटिलता समग्र विश्वसनीयता कम हो जाती है, तो इसे गंभीरता से लें। आपको वास्तविक-विश्व विफलता मोड के लिए डिज़ाइन करना होगा, उदाहरण के लिए जब आप टीसीपी के माध्यम से सर्वर से हार जाते हैं, तो कनेक्शन संभवतः आपके लिए रीसेट नहीं किया जाएगा। Sysadmins वास्तविक दुनिया की विफलता के तरीके को समझते हैं।

या तो सुनो, जो आपके sysadmin आपको बताता है, या प्रबंधन से शिकायत करें कि आपके sysadmins अक्षम हैं और उन्हें निकाल दिया जाना चाहिए। अपने sysadmin को नजरअंदाज करने का कोई मतलब नहीं है।

विचार करें कि आप अपने आवेदन को कैसे तैनात करेंगे। एहसास है कि अपने sysadmins के साथ इस पर चर्चा करना समझ में आता है। यदि आपके पास 100 सर्वर हैं जो समान हैं, केवल एक कॉन्फ़िगरेशन फ़ाइल के आधार पर अलग-अलग हैं, तो आप इन कॉन्फ़िगरेशन फ़ाइलों के मास्टर प्रतियों को एक केंद्रीय स्थान पर संग्रहीत करने पर विचार कर सकते हैं। एहसास करें कि हर कोई कितना बेहतर है यदि आपका आवेदन फिर से तैनात करना आसान है। यदि सिस्टम में कोई समस्या है, तो क्या आप एक मिनट के अंदर एक अतिरिक्त में फिर से तैनात करेंगे, या टूटे हुए मरम्मत के समय उम्र का इंतजार करेंगे? यदि आप अपने आवेदन को फिर से तैनात कर सकते हैं, तो ओएस को अधिक आसानी से और सुरक्षित रूप से अपग्रेड किया जा सकता है। आप भविष्य में इस बारे में परवाह कर सकते हैं।

यदि आपको कोई समस्या है जो आपको लगता है कि ओएस के कारण हो सकती है, तो यह समझ में आता है कि तुरंत sysadmin को इसकी जांच करने के लिए कॉल करें। लेकिन एक सरसरी जांच के बाद कुछ भी नहीं पता चलता है, आपको समस्या को समझाने का कर्तव्य है।

समझें कि "धीरे-धीरे जवाब देना" और "बिल्कुल भी जवाब नहीं देना" में अंतर है।


3

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

यह एक सामान्य नियम है, लेकिन यह मत मानिए कि आप विशेष हैं, और इसलिए आम तौर पर सॉफ्टवेयर पैकेजों के सामान्य सम्मेलनों को तोड़ने का आशीर्वाद दिया जाता है, जब तक कि आपके प्लेटफ़ॉर्म पर सॉफ़्टवेयर के बहुतायत में होने के कारण एक बहुतायत से अच्छा कारण नहीं होता। "मुझे दृढ़ता से लगता है कि ऐसा होना चाहिए" हर किसी के सामान्य सेटअप को तोड़ने के लिए पर्याप्त अच्छा नहीं है; यह उस कारण से जुड़ा होना चाहिए जो आपके सॉफ़्टवेयर को कार्य करने की कोशिश कर रहा है।


3

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


3

कृपया अपने सॉफ़्टवेयर को स्वचालित शैली में दर्जनों या सैकड़ों प्रणालियों पर तैनात करना संभव बनाएं। यदि किसी संगठन को सॉफ़्टवेयर पैकेज की आवश्यकता है, तो sysadmins के पास निश्चित रूप से हर बॉक्स पर मैन्युअल रूप से इसे स्थापित करने का समय नहीं है। यदि किसी फ़ाइल को लाइसेंसिंग की जानकारी होना आवश्यक है, तो उसे कैसे प्रदान करना है, इसका दस्तावेजीकरण करना एक बड़ा लाभ होगा।

एडोब में ऐतिहासिक रूप से कुछ इंस्टॉलर थे जो कि काम करने के लिए एक वास्तविक दर्द थे ; कृपया इससे ऊँचा लक्ष्य रखें!


2

पहले दिन से स्केलिंग के बारे में सोचें। Sysadmins एक प्रदर्शन समस्या पर पैसा / हार्डवेयर फेंककर चमत्कार कर सकता है लेकिन कभी-कभी इनमें से कोई भी मदद नहीं करेगा - विशेष रूप से लॉकिंग के बारे में सोचें - कभी-कभी आप खुद को लॉकिंग समस्या से बाहर नहीं निकाल सकते। हालांकि पूछने के लिए धन्यवाद :)

ओह और जहां संभव हो 64-बिट करने की कोशिश करें, और बहु-थ्रेडेड भी :)



2

यहाँ और सब से परे ...

  • एक नकली उत्पादन वातावरण (लाइव सर्वर के समान कॉन्फ़िगरेशन वाला एक विकास सर्वर या वीएम) और फिर रिलीज प्रक्रिया का परीक्षण करने के लिए इसका उपयोग करने के लिए कहें। फिर हमें इस रिलीज़ प्रक्रिया प्रदान करें, जिसमें परिवर्तनों की सूची और उन्हें लागू करने का क्रम शामिल है (यानी 1. रखरखाव मोड दर्ज करें, 2. SQL अपडेट लागू करें, 3. X संस्करण के लिए अद्यतन स्रोत, 4. रखरखाव मोड छोड़ दें, 5. प्रार्थना)
  • सुनिश्चित करें कि आपके पास एक रखरखाव मोड है जो डेटा अखंडता को बनाए रखने के लिए उपयोगकर्ताओं को किक कर सकता है। आप नहीं चाहते कि हम लॉग इन और लेनदेन को अंजाम देने वाले उपयोगकर्ताओं के साथ कई सर्वरों पर एक बड़ा सिस्टम अपडेट चला रहे हों ... जो कि ज्यादातर मामलों में विफल रहने का एक नुस्खा है।
  • एक विकास मॉडल का उपयोग करें जो कुछ हद तक मानकीकृत है। उदाहरण के लिए, काम (वेब ​​समूह) पर हमारे सभी नए एप्लिकेशन Zend फ्रेमवर्क का उपयोग करते हैं।
  • हमें चेंजलॉग्स प्रदान करें जो हम पढ़ सकते हैं, जिसमें तय की गई बग्स की एक सूची भी शामिल है जिसे हम परिवर्तनों के दायरे का अंदाजा लगाने के लिए देख सकते हैं। कभी-कभी हम संभावित समस्याओं की पहचान कर सकते हैं क्योंकि हमारे पास एक अलग दृष्टिकोण है।

2

हालांकि अवास्तविक यह मददगार होगा यदि डेवलपर्स को दुनिया पर सेट होने से पहले प्रोडक्शन सिसडमिन या डीबीए भूमिका में काम करने के लिए मजबूर किया गया था।

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


पूरी तरह से सहमत। मैं एक देव हूँ, लेकिन कुछ महीनों के लिए व्यवस्थापक के रूप में काम किया है, और इसे एक अत्यंत मूल्यवान अनुभव पाया। यह वास्तव में आपके क्षितिज को व्यापक बनाता है।
सेल्के

1

1) लॉग फ़ाइल जो विवरणों में त्रुटियों को लॉग करती है। या ELMAH जैसी अच्छी त्रुटि ट्रैकिंग प्रणाली।

2) स्थापना, कार्यान्वयन और एसए गाइड के लिए विस्तृत दस्तावेज।

3) प्लस अन्य अद्भुत एसएएस से ऊपर उल्लेखित सामान। :)

यही सब मैं अभी सोच सकता हूं।


1

पुस्तक रिलीज यह! उत्पादन में गलत क्या हो सकता है के बारे में डरावनी कहानियों का एक अच्छा चयन किया है। इसे पढ़कर मन में संचालन के साथ डिजाइन के लिए प्रेरणा / विचार प्रदान कर सकते हैं। (यह माइकल न्यगार्ड द्वारा लिखा गया है, जिन्होंने विकास और संचालन दोनों पक्षों पर काम किया है।)


1
  • ऐनक के बिना विकसित न करें
  • दस्तावेज़ (या सुनिश्चित करें कि जो लोग दस्तावेज़ ऐसा करते हैं)
  • ग्राहक का समर्थन करने से डरो मत (समर्थन के उच्च स्तरीय स्तर के रूप में)

1

मेरे अनुभव में, वह बात जो सबसे अधिक अंतर लाती है अगर डेवलपर्स दिन से तैनाती के बारे में सोचेंगे। जैसे ही आप उत्पादन / ग्राहक वातावरण में एक नई सुविधा की कल्पना करना शुरू करते हैं, यह सोचना शुरू कर देते हैं कि इसे किस तरह से तैनात किया जाएगा। पर्यावरण, और यह कैसे चलेगा।

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


मैं आपकी टिप्पणी से सहमत हूं। परिनियोजन इंजीनियर के रूप में मैं तैनाती के दौरान अविश्वसनीय मात्रा में जटिलताओं से निपटता हूं जिसे सरल बनाया जा सकता है यदि इंजीनियर केवल मेरी बात रखता है।
djangofan

0

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


0

मैं चाहता हूं कि डेवलपर्स क्यूए कार्यों से बेहतर जुदाई करें। मुझे लगता है कि जब कोई डेवलपर किसी प्रोजेक्ट के लिए कुछ यूनिट टेस्ट केस बनाने में सक्षम होता है तो वह अच्छा होता है, लेकिन अगर वह टेस्ट क्यूए पास कर लेता है तो अच्छा होगा। वास्तव में, इसका अच्छा है जब डेवलपर्स QA इंजीनियरों को थोड़ी मदद देते हैं क्योंकि यह अंत में DEV को लाभ देता है।


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