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