2011-03-18 15 views
5

के बजाय डेटामैपर का उपयोग करें DataMapper विचार ActiveRecord से definitely better है। आरडीबीएमएस और नोएसक्यूएल स्टोर्स समेत विभिन्न डेटा स्टोर्स के लिए इसमें एक एपीआई है। DataMapper ActiveRecord के बाद बहुत अधिक स्मार्ट है। इसमें "सामरिक उत्सुक लोडिंग" है। यह सुविधा एकल हाथ से "एन + 1 क्वेरी समस्या" मिटा देती है। इसके अतिरिक्त यह टेक्स्ट प्रॉपर्टी जैसे भारी क्षेत्रों की आलसी लोडिंग की अनुमति देता है। डेटामैपर आपको स्थितियों के घोंसला वाले हैश प्रदान करके किसी भी जटिल ऑब्जेक्ट ग्राफ़ को बनाने और खोजने की अनुमति देता है। ActiveRecods उत्पादन में संघों के लिए उपयोग करने के लिए अनुपयुक्त है। विधि शामिल बदसूरत और unconfigurable है। अक्टूबर 2010 में जोश साइमंड्स patch for this method बनाता है ताकि फ़ील्ड को उत्सुक लोड से बाहर रखा जा सके। लेकिन उस पथ को नजरअंदाज कर दिया गया था और आज रेल 3 में हमारे पास एक ही बदसूरत विधि शामिल है।ActiveRecord

शानदार एआरईएल के साथ रेल 3 में भी, ActiveRecord रेल के लिए सबसे अच्छा ओआरएम से बहुत दूर है। आप कह सकते हैं "वाह, वह नया मणि मेटावेयर Article.where(:title.matches => 'Hello%', :created_at.gt => 3.days.ago) जैसे अच्छे कोड लिखने की अनुमति देता है"। लेकिन प्रतीक्षा करें ... DataMapper इसे एक बॉक्स से बाहर का समर्थन करता है! शायद DataRper की तरह दिखने के लिए ActiveRecord को संशोधित करने के बजाय बेहतर ओआरएम का विस्तार और समर्थन करना है? डेटामैपर का अधिक विवरण http://datamapper.org/ पर पाया जा सकता है।

मुझे लगता है कि बाद में रिलीज में रेलों को हमें कौन से ओआरएम का उपयोग करना चुनने की अनुमति देनी चाहिए, जैसे कि यह डेटाबेस चयन की अनुमति देता है। यहां तक ​​कि इसमें केवल एक विकल्प "ActiveRecord" होगा, लोग उपलब्ध विकल्पों की खोज करेंगे। जब मैं रेल सीखना शुरू कर रहा था, मैंने सोचा कि केवल ActiveRecord के लिए समर्थन है। और बाद में मैंने कुछ और देखने की कोशिश भी नहीं की।

मैं ये सब सामान क्यों लिख रहा हूं? मुझे लगता है कि हमें इस अच्छे ओआरएम पर अधिक ध्यान देना होगा। यदि आप कुछ लोकप्रिय या लोकप्रिय मणि नहीं हैं, तो डेटामैपर का समर्थन जोड़ने के बारे में सोचें। DataMapper समुदाय को ActiveRecord या किसी अन्य ORM से कुछ माइग्रेशन मार्गदर्शिकाएं लिखनी चाहिए और दस्तावेज़ों को अपरिवर्तित रखना चाहिए और आप उनकी सहायता कर सकते हैं। मेरे लिए, डेटामैपर समुदाय को अधिक लोगों की आवश्यकता है और आप उनमें से एक हो सकते हैं। इस ओआरएम का एकमात्र नुकसान दस्तावेज की कमी है और आप मदद कर सकते हैं।

तो आप इसके बारे में क्या सोचते हैं?

उत्तर

4

रेल 3 आपको डिफ़ॉल्ट रूप से डेटामैपर का उपयोग करने की अनुमति देता है। यह आपको बस इस

 
    rails new project_name -m http://datamapper.org/templates/rails.rb 

रेल आप का चयन करने के लिए अनुमति देता है कर रेल 3. साथ datamapper उपयोग करना चाहते हैं, तो आप भी --skip सक्रिय रिकॉर्ड विकल्प का उपयोग कर सकते हैं। :) (सरल नहीं हो सकता है, लेकिन इसके वहाँ।

और हाँ, Datamapper भयानक है। :)

+0

मुझे पता था और इसका उपयोग करें। लेकिन यह इतना स्पष्ट नहीं है कि यह होना चाहिए (रेल में आपको यह नहीं मिल सकता है। केवल "स्किप-एक्टिव-रिकॉर्ड") – AlexParamonov

1

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

+0

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