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