required
एक बहस और लौ युद्ध के दिल में इसकी उपयोगिता रही है। दोनों तरफ बड़े-बड़े शिविर मौजूद हैं। एक शिविर को यह पसंद आया कि एक मूल्य की गारंटी मौजूद थी और वह अपनी सीमाओं के साथ जीने के लिए तैयार था लेकिन दूसरे शिविर को required
खतरनाक या अपवित्र महसूस हुआ क्योंकि इसे सुरक्षित रूप से नहीं जोड़ा जा सकता है और न ही हटाया जा सकता है।
मुझे इस बात के बारे में और अधिक समझाना required
चाहिए कि खेतों को संयम से क्यों इस्तेमाल किया जाना चाहिए। यदि आप पहले से ही एक प्रोटो का उपयोग कर रहे हैं, तो आप एक आवश्यक फ़ील्ड नहीं जोड़ सकते क्योंकि पुराने एप्लिकेशन को वह फ़ील्ड प्रदान नहीं किया जाएगा और सामान्य रूप से एप्लिकेशन विफलता को अच्छी तरह से संभाल नहीं पाते हैं। आप यह सुनिश्चित कर सकते हैं कि सभी पुराने एप्लिकेशन पहले अपग्रेड किए गए हैं, लेकिन एक गलती करना आसान हो सकता है और यह मदद नहीं करता है यदि आप किसी भी डेटास्टोर (यहां तक कि अल्पकालिक की तरह,) में प्रोटोज स्टोर कर रहे हैं । एक आवश्यक फ़ील्ड निकालते समय एक ही तरह की स्थिति लागू होती है।
कई आवश्यक फ़ील्ड "स्पष्ट रूप से" आवश्यक थे जब तक ... वे नहीं थे। मान लीजिए कि आपके पास id
एक Get
विधि के लिए एक फ़ील्ड है । यह स्पष्ट रूप से आवश्यक है। को छोड़कर, बाद में आपको id
इंट से स्ट्रिंग या इंट 32 से इंट 64 में बदलने की आवश्यकता हो सकती है । एक नए muchBetterId
फ़ील्ड को जोड़ने की आवश्यकता है , और अब आपको पुराने id
फ़ील्ड के साथ छोड़ दिया गया है जिसे निर्दिष्ट किया जाना चाहिए, लेकिन अंततः पूरी तरह से अनदेखा कर दिया जाता है।
जब उन दो समस्याओं को जोड़ दिया जाता है, तो लाभकारी required
क्षेत्रों की संख्या सीमित हो जाती है और शिविर यह तर्क देते हैं कि क्या अभी भी इसका मूल्य है। required
विचार के विरोधी जरूरी नहीं थे, लेकिन इसका वर्तमान स्वरूप। कुछ ने सुझाव दिया कि एक अधिक अभिव्यंजक मान्यता पुस्तकालय विकसित किया जाए जो required
कुछ और उन्नत के साथ-साथ जाँच कर सके name.length > 10
, जबकि एक बेहतर विफलता मॉडल होना भी सुनिश्चित करता है।
Proto3 कुल मिलाकर सादगी का पक्ष लेता है, और required
हटाना सरल है। लेकिन हो सकता है कि required
अन्य विशेषताओं के साथ संयोजित होने पर, प्राइमो 3 के लिए संयुक्त भावना को हटा दिया जाए, जैसे कि प्राथमिकताओं के लिए फ़ील्ड उपस्थिति को हटाना और डिफ़ॉल्ट मानों को हटाना।
मैं एक प्रोटॉफ डेवलपर नहीं हूं और इस विषय पर किसी भी तरह से आधिकारिक नहीं हूं, लेकिन मुझे अभी भी उम्मीद है कि स्पष्टीकरण उपयोगी है।