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