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