यदि आपको रक्षात्मक कोडिंग के लिए अपनी पसंदीदा (चतुर) तकनीक का चयन करना है, तो वे क्या होंगे? यद्यपि मेरी वर्तमान भाषा जावा और ऑब्जेक्टिव-सी हैं (C ++ में पृष्ठभूमि के साथ), किसी भी भाषा में उत्तर देने के लिए स्वतंत्र महसूस करें। यहाँ जोर चालाक रक्षात्मक तकनीकों पर होगा जो कि हमारे यहां 70% + के अलावा अन्य लोग पहले से ही जानते हैं। इसलिए अब समय आ गया है कि आप अपने टोटकों की गहराई में खुदाई करें।
दूसरे शब्दों में इस निर्बाध उदाहरण के अलावा अन्य सोचने की कोशिश करें :
if(5 == x)
इसके बजायif(x == 5)
: अनपेक्षित असाइनमेंट से बचने के लिए
यहाँ कुछ पेचीदा सर्वश्रेष्ठ रक्षात्मक प्रोग्रामिंग प्रथाओं के कुछ उदाहरण दिए गए हैं (भाषा-विशिष्ट उदाहरण जावा में हैं):
- अपने चरों को तब तक लॉक करें जब तक आपको पता न हो कि आपको उन्हें बदलना है
यही है, आप सभी चर घोषित कर सकते हैं final
जब तक कि आपको पता नहीं है कि आपको इसे बदलने की आवश्यकता होगी, जिस बिंदु पर आप इसे हटा सकते हैं final
। एक सामान्य रूप से अज्ञात तथ्य यह है कि यह विधि परमों के लिए भी मान्य है:
public void foo(final int arg) { /* Stuff Here */ }
- जब कुछ बुरा होता है, तो सबूत के निशान को पीछे छोड़ दें
जब आप एक अपवाद होते हैं तो आप कई चीजें कर सकते हैं: जाहिर है कि इसे लॉग इन करना और कुछ सफाई करना कुछ ही होगा। लेकिन आप साक्ष्य का एक निशान भी छोड़ सकते हैं (जैसे "UNABLE TO LOAD FILE" या 99999 जैसे वैरिएबल वैल्यूज़ सेट करना डिबगर में उपयोगी होगा, यदि आप अपवाद- catch
वार को अतीत में उड़ा देते हैं तो)।
- जब यह स्थिरता की बात आती है: शैतान विवरण में है
आपके द्वारा उपयोग किए जा रहे अन्य पुस्तकालयों के अनुरूप हो। उदाहरण के लिए, जावा में, यदि आप एक ऐसी विधि का निर्माण कर रहे हैं, जो मानों की एक सीमा को निकालता है, तो निचले बाउंड को समावेशी और ऊपरी बाउंड को अनन्य बनाता है । यह इसे उन तरीकों के अनुरूप बना देगा String.substring(start, end)
जो उसी तरह से संचालित होते हैं। आप इस तरह का व्यवहार करने के लिए सूर्य जेडडीके में इन सभी प्रकार के तरीकों को प्राप्त करेंगे क्योंकि यह विभिन्न ऑपरेशनों को शामिल करता है जिसमें सरणियों के अनुरूप तत्व शामिल हैं, जहां सूचक शून्य ( समावेशी ) से लेकर सरणी की लंबाई ( अनन्य ) तक हैं।
तो आपकी कुछ पसंदीदा रक्षात्मक प्रथाएं क्या हैं?
अद्यतन: यदि आप पहले से ही नहीं हैं, तो बेझिझक झंकार करें। मैं आधिकारिक जवाब चुनने से पहले अधिक प्रतिक्रियाओं का मौका दे रहा हूं ।