जावा में दृढ़ता के लिए सीरियल का उपयोग किया जाता है। क्रमांकन का उपयोग करके कुछ वस्तुओं को जारी रखना ठीक हो सकता है। लेकिन, बड़ी संख्या में वस्तुओं के लिए, ORM, डेटाबेस आदि बेहतर हो सकते हैं। ऐसा लगता है कि लघुकरण केवल छोटी नौकरियों के लिए उपयोगी है। शायद मैं गलत हूँ। तो कृपया मुझे बताएं कि गैर-क्रमांकन विधियों पर क्रमांकन के फायदे क्या हैं? इसका उपयोग कब किया जाना चाहिए और इसे कब टाला जाना चाहिए?
यह सवाल मेरे दिमाग में आया कि DZone आर्टिकल क्या ऑब्जेक्ट सीरियलाइजेशन ईविल है?
और ये वो पंक्तियाँ हैं जिन्होंने मेरे प्रश्न को जन्म दिया:
यदि आप जावा और इसके सत्र ऑब्जेक्ट्स को देखते हैं, तो शुद्ध ऑब्जेक्ट क्रमांकन का उपयोग किया जाता है। यह मानते हुए कि एक आवेदन सत्र काफी कम समय का है, जिसका अर्थ है कुछ घंटों में, वस्तु क्रमांकन सरल, अच्छी तरह से समर्थित और सत्र की जावा अवधारणा में निर्मित है। हालाँकि, जब डेटा की अवधि अधिक समय तक रहती है, संभवतः दिन या सप्ताह, और आपको एप्लिकेशन के नए रिलीज़ के बारे में चिंता करनी होगी, तो क्रमिक रूप से बुराई जल्दी हो जाती है। जैसा कि कोई भी अच्छा जावा डेवलपर जानता है, यदि आप किसी वस्तु को क्रमबद्ध करने की योजना बनाते हैं, यहां तक कि एक सत्र में भी, आपको केवल एक 1L नहीं, बल्कि एक वास्तविक क्रमांकन आईडी (serialVersionUID) की आवश्यकता है, और आपको सीरियल इंटरफ़ेस लागू करने की आवश्यकता है। हालांकि, अधिकांश डेवलपर्स जावा डिसेरिएलाइज़ेशन प्रक्रिया के पीछे के वास्तविक नियमों को नहीं जानते हैं। यदि आपकी वस्तु बदल गई है, तो ऑब्जेक्ट में साधारण फ़ील्ड जोड़ने से अधिक, यह संभव है कि सीरियल आईडी न बदले जाने पर भी जावा ऑब्जेक्ट को सही ढंग से डिसेर्बलाइज नहीं कर सकता है। अचानक, आप अपने डेटा को किसी भी लंबे समय तक प्राप्त नहीं कर सकते हैं, जो स्वाभाविक रूप से खराब है।
अब, इसे पढ़ने वाले डेवलपर्स कह सकते हैं कि वे कभी भी ऐसा कोड नहीं लिखेंगे जिससे यह समस्या हो। यह सच हो सकता है, लेकिन एक पुस्तकालय के बारे में जो आप उपयोग करते हैं या कुछ अन्य डेवलपर अब आपकी कंपनी द्वारा नियोजित नहीं हैं? क्या आप गारंटी दे सकते हैं कि यह समस्या कभी नहीं होगी? गारंटी देने का एकमात्र तरीका एक अलग क्रमांकन विधि का उपयोग करना है।
1L
सही नहीं है।