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