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