मैं कोड में उपलब्ध प्रत्येक फ़ील्ड और प्रत्येक विधि के अंदर नल के खिलाफ अंधेरे से बचाव के विचार के खिलाफ हूं।
नीचे दी गई सहायता मुझे जहां शून्य मान के खिलाफ जांच करने के लिए बारे में निर्णय लेने:
1- कौन अपने तरीके लागू किया जाएगा?
यदि कोई विधि निजी है और आपके पास इसका नियंत्रण है कि इसका उपयोग कैसे किया जा रहा है, तो मुझे यह नहीं लगता कि यह शून्य जांचों के विरुद्ध सुरक्षा के लिए समझ में आता है जब तक कि यह शून्य मानों की अपेक्षा करने के लिए विधि के तर्क का हिस्सा न हो। यदि कोई विधि सार्वजनिक (जैसे एपीआई) के सामने आती है, तो निश्चित रूप से शून्य जांच एक बड़ी चिंता होनी चाहिए।
2- सॉफ्टवेयर डिजाइन:
छवि है आप method1(fromAnimalToString(animal));
बुला और किसी कारण fromAnimalToString()
के लिए कर रहे हैं कभी नहीं अशक्त रिटर्न (हालांकि कोई रिक्त स्ट्रिंग के बजाय वापस कर सकती है)।
तो इस तरह के मामले में, यह Method1 में animal != null
() के शरीर की जांच करने के कोई मतलब नहीं होगा
3 परीक्षण:
सॉफ्टवेयर इंजीनियरिंग में, यह सब संभव परिदृश्यों कि कभी भी कर सकते हैं परीक्षण करने के लिए लगभग असंभव है निष्पादित। हालांकि, सामान्य और वैकल्पिक परिदृश्यों का परीक्षण करें और सुनिश्चित करें कि प्रवाह अपेक्षित है।
क्या यह हमेशा यह देखने के लिए आसान नहीं होगा कि ऑब्जेक्ट का संदर्भ 'शून्य' है या नहीं? आप एक और मार्ग भी जा सकते हैं, और यह सुनिश्चित कर सकते हैं कि आप जिस वस्तु का उपयोग करते हैं, वह शून्य नहीं हो सकता है। –
* हर * ऑब्जेक्ट संदर्भ के लिए? : ओ उनमें से कुछ कभी शून्य नहीं होंगे (वे कन्स्ट्रक्टर में सेट हैं)। –
भले ही आप कोड अनुबंध का उपयोग नहीं कर रहे हैं, आपको अपनी विधियों की शुरुआत में गार्ड क्लॉज लिखना चाहिए। – jason