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