2011-01-10 14 views
28

मैं तुम लोगों DataMapper बारे में सोचते हैं और क्या लाभ यह नया लाने पड़ता कि पर उत्सुक हूँ और रेल 3.DataMapper रेल में बनाम ActiveRecord 3

में ActiveRecord सुधार मैं अपनी राय की सराहना करते हैं।

उत्तर

2

मैंने रेल 2 में सक्रिय रिकॉर्ड और मेरब और रेल 3 में डेटामैपर का उपयोग किया- अब मैं दैनिक डीएम/रेल 3 का उपयोग करता हूं। मैंने एआर 3 पर पढ़ा है, लेकिन इसे केवल एक छोटी परियोजना (एक इन-हाउस एप।) में इस्तेमाल किया है

मुझे एकमात्र अंतर मिला है जो मुझे वास्तव में डीएम का strategic eager loading है। यह शायद ही कभी करता है जो उम्मीद करता है और यह क्या करता है, सही और गलत, यह एफएम के साथ करता है।

स्पष्ट eager loading in AR के साथ, कोई सवाल नहीं है कि क्या हो रहा है: यह कहता है कि यह क्या करता है और (आमतौर पर) जो करता है वह करता है।

जबकि "स्वचालित" उत्सुक लोड हो रहा है अच्छा लगता है, मुझे लगता है यह मेरे लिए दो नकारात्मक परिणाम है:

  1. समय की नहीं नगण्य मात्रा में छद्म उत्सुक लोड हो रहा है से अटे पड़े क्वेरी करने
  2. कोड अत्यधिक के स्रोतों के लिए खोज खर्च हैक जहां संबंधों को भौतिक बनाया जाता है और उन्हें केवल प्रधानों के लिए त्याग दिया जाता है और पहचान मानचित्र उन तरीकों से त्याग दिया जाता है जो कभी-कभी "छड़ी" नहीं करते हैं और कभी भी स्वयं-दस्तावेज नहीं होते हैं।

अन्यथा, मुझे एआर और डीएम विभिन्न स्थानों के साथ एक ही जानवर होने के लिए मिलते हैं। कहने के विपरीत, Sequel

+0

क्या आप अनुक्रम का उपयोग करते हैं? यदि नहीं, तो क्यों नहीं? – gucki

+1

@ गुकी मैंने इसे एक साल पहले एक परियोजना के लिए इस्तेमाल किया लेकिन बाद में डीएम पर स्विच किया। मैं वास्तव में उन समस्याओं को याद नहीं करता जिनके साथ हम बहुत अच्छे थे, मुझे लगता है * यह जारी रहने से पहले संबंधों से निपटने में समस्या हो सकती है, लेकिन मैं इसकी कसम खाता नहीं हूं। मुझे याद है कि सेक्वेल प्रति से कुछ भी गलत नहीं था, उदाहरण के लिए, बग, और समस्याएं डिज़ाइन-प्रतिबाधा विसंगतियां थीं। अगर मैं आज एक नई परियोजना शुरू कर रहा था, तो मैं निश्चित रूप से सेक्वेल की समीक्षा करूँगा क्योंकि मैं इन दिनों ओआरएम के बहुत बीमार हूं। –

11

मैं डीआर को एआर पसंद करता हूं। मुझे लगता है कि डीएम वास्तव में एक ओआरएम है जबकि एआर सिर्फ एसक्यूएल के आसपास एक रैपर है। डीएम बनाता है डेटा स्टोर्स के बीच स्विच करना बहुत आसान है। डीएम का प्रश्न वाक्यविन्यास बहुत अधिक सजातीय है। एसईएल (रणनीतिक उत्सुक भार) डीएम को एआर की तुलना में ऑब्जेक्ट स्टोर की तरह दिखता है।

इसके अलावा, डीएम कक्षाएं गुणों को सामने रखती हैं और यह कोड को और अधिक पठनीय बनाता है। डीएम दुनिया में आने के बाद मैंने कभी माइग्रेशन नहीं छोड़ा है। (भले ही आप वास्तव में चाहें तो हो सकता है)। रेल 3 के साथ, मैं लगभग पूरी तरह से डीएम का उपयोग कर रहा हूँ।

+0

क्या आप लोगों को डीएम को बहुत अधिक लागू करने की लागत नहीं मिलती है। उन सभी रत्नों के संदर्भ में जिन्हें आप उपयोग करना चाहते हैं, लेकिन वे मानते हैं कि आपके पास एआर है और फिर आपको रत्नों को हैक करने की आवश्यकता है। उदाहरण के लिए डेविस एक अच्छा उपयोगकर्ता ऑथ मणि है, लेकिन यह एआर चाहता है और यद्यपि पहले से ही तीसरे पक्ष के देवता-डीएम मणि है, यह एक तीसरी पार्टी है और कौन जानता है कि जब वे इसका समर्थन बंद कर देंगे या जब डिवाइसेज को अपडेट किए बिना डिवाइसे अपडेट किया जाएगा । यह सिर्फ और उदाहरण की स्थिति है। –

+3

devise-dm ठीक काम करता है। डीएम में भी बहुत सारे तीसरे पक्ष के रत्न हैं। समय के साथ, जैसा कि डीएम परिपक्व होता है, ये मुद्दे दूर हो जाएंगे। – piyush

+0

मुझे अभी तक एक सक्रिय रिकॉर्ड नहीं मिला है जो क्लास टेबल विरासत को संभाल सकता है, जबकि डेटामैपर्स प्रतीत होता है। क्या कोई इसकी पुष्टि कर सकता है? धन्यवाद –

संबंधित मुद्दे