एक ORM की ताकत यह है कि यह आपको ऑब्जेक्ट-ओरिएंटेड तकनीकों का उपयोग करके एप्लिकेशन व्यवहार को मॉडल करने की अनुमति देता है। ध्यान से इंजीनियर की दुनिया में, आपके पास एप्लिकेशन की एक परत है जहां व्यवसाय की भाषा बड़े करीने से विकास टीम की भाषा से मिलती है। ORM उस का एक प्रवर्तक है, यदि ORM का उपयोग समझदारी से किया जाता है।
कमजोरी यह है कि वास्तव में वास्तव में वस्तु-उन्मुख प्रोग्रामिंग प्राप्त करने वाले लोगों की संख्या बहुत कम है। बहुत से लोग स्पेगेटी और मीटबॉल लिखते हैं, जिनमें बहुत अधिक युग्मित वस्तुएं होती हैं, जिनमें उनका स्वयं का व्यवहार बहुत कम होता है और वास्तव में व्यवहार behavior०००-पंक्ति "सेवा" और "प्रबंधक" कक्षाओं में समाप्त होता है, और यह कोड अक्सर इतना जटिल होता है कि हर कोई डर जाता है। इसे बदलने के कारण वे यह पता नहीं लगा सकते हैं कि दुष्प्रभाव क्या होगा।
इसके अतिरिक्त, बहुत से लोग वास्तव में संबंधपरक मॉडल प्राप्त नहीं करते हैं। एक ORM उन्हें इसे प्राप्त करने में मदद नहीं करेगा, और यह संबंधपरक मॉडल को अमूर्त करके उनकी मदद नहीं करेगा। यह सिर्फ आपको अपने डोमेन लेयर पर जल्दी ध्यान केंद्रित करने और डेटाबेस डिजाइन के बारे में बहुत चिंतित होने से पहले ठीक करने की अनुमति देता है। यदि अच्छी तरह से लागू किया जाता है, तो समझदार स्कीमा माइग्रेशन टूल की मदद से, और ORM आपको कोड ऋण को बनाने से रोकने में मदद कर सकता है।
मैंने ऐसे एप्लिकेशन बनाए हैं जिनमें एक ORM ने एप्लिकेशन कोड को सरल, पठनीय और परीक्षण योग्य रखा, और उसका उचित प्रदर्शन था। मैंने उन अनुप्रयोगों को भी बनाए रखा है जहां पैटर्न का दुरुपयोग किया गया था और कोड को दृढ़, अप्रतिबंधित, धीमा और नाजुक था; यह पता चलता है कि ओआरएम खुद इसके साथ बहुत कम था, सिवाय इसके कि खराब कोड लिखने के बजाय जो खराब तरीके से एप्लिकेशन डोमेन को मॉडल करता था, विरासत इंजीनियरिंग टीम ने खराब कोड लिखा था जो खराब तरीके से एप्लीकेशन डोमेन और खराब सर्विस-लेयर कोड को मॉडल करता है जो सभी को उपेक्षित करता है उनका ओआरएम उन्हें प्रदान कर सकता है।
ORM आपको अधिक स्मार्ट नहीं बनाएंगे, लेकिन सही डेवलपर के हाथों में, अधिक रख-रखाव और उच्च-गुणवत्ता वाला कोड हो सकता है।