2009-01-17 6 views
6

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

उत्तर

10

रेल आपके लिए बहुत सारे काम करने के लिए रुबी की मेटाप्रोग्रामिंग सुविधाओं का व्यापक उपयोग करता है, लेकिन अंत में कोई जादू — नहीं है, यह सब सिर्फ कोड है और इसे पर्याप्त समय और प्रयास समझा जा सकता है।

मचान हमेशा आपके मॉडल पर सीआरयूडी संचालन करने के साथ उठने और चलाने के तरीके के रूप में किया गया था। इरादा हमेशा था कि मचान को आपके वास्तविक उत्पादन कोड के साथ प्रतिस्थापित किया जाना चाहिए।

5

मैं रेलवे के बारे में पाइथोनिस्टा की सिफारिश नहीं लेगा, इससे पहले कि मैं Django पर रूबीस्ट की राय नहीं रखूंगा, जब तक वे कम से कम दोनों प्लेटफार्मों की समझ के उचित स्तर का प्रदर्शन नहीं कर सकें, और वहां कुछ मूल्यवान लोग भी कर सकते हैं।

ढांचे (समान रूप से Django पक्ष पर मेरी सीमित समझ के लिए) समान आर्किटेक्चर हैं लेकिन अलग-अलग बढ़ते हैं और विभिन्न भाषाओं की ताकत का लाभ उठाते हैं।

मैं मानता हूं कि रेल के पास "जादू" की उचित मात्रा है, और convention-over-configuration चीज ढांचे का एक बड़ा हिस्सा है। मैं देख सकता हूं कि यह एक पायथन विशेषज्ञ को कैसे बंद कर सकता है, और यह शायद उचित है - रूबी की सापेक्ष शक्तियों में से एक मेटा-प्रोग्रामिंग क्षमताओं है जो जादू को घटित करता है। शायद इसकी वजह से, आमतौर पर ऐसा लगता है कि पाइथन में monkey-patching को संदिग्ध माना जाता है, जबकि रूबी में यह आम है। एक बेहतर और बदतर चीज नहीं, बस अलग है।

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

1

मुझे नहीं लगता कि कैसे काले बॉक्स के रूप में रेल को देखा जा सकता है। आपके पास स्रोत है कुछ रूबी थोड़ा मुश्किल है और मेटाप्रोग्रामिंग चीजों को ट्रैक करने में मुश्किल बना सकती है लेकिन यह सब आपके लिए देखने के लिए है। इसके अलावा मचान आलोचना तब तक समझ में नहीं आती जब तक कि वे जेनरेट किए गए मचानों के बजाए पुराने मचानों के बारे में बात नहीं कर रहे हैं जो सिर्फ बुनियादी कोड टेम्पलेट्स बनाते हैं जो देखने के लिए ठीक हैं।

मुझे लगता है कि djangoist को अनजान नहीं किया गया था, लेकिन वे वास्तव में कुछ और मतलब था जैसे कि रेल कुछ चीजों पर बहुत मुश्किल रूबी और स्टॉम्प का उपयोग करती है, जो इसे बंदरगाह वर्गों को बंदरगाह से नहीं करना चाहिए। यह एक मामला है जिसे बनाया जा सकता है।

बेशक उन्हें वास्तव में खराब नहीं करना चाहिए क्योंकि मुझे यकीन है कि Djangos ऑस्ट्रेलिया में बच्चों को खाते हैं।

5

आपको क्या लगता है कि मेरब है? यह Rails डेवलपर्स का झंडा रेल में बहुत अधिक जादू के खिलाफ विद्रोह है।

रेल 3 जादू पर कटौती करने, मेरब के कई हिस्सों में खींचने और साफ चीजों को हटाने का प्रयास है।

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

Django ऐसा नहीं करता है, यह पायथन रास्ता नहीं होगा। यह बेहतर या बुरा नहीं है, केवल अलग अलग है।

अब आपने पूछा, क्या रेल में बहुत अधिक जादू है?

याद रखें Arthur C Clark's Third law of prediction: कोई भी पर्याप्त उन्नत तकनीक जादू से अलग नहीं है।

तो शायद आपके डेवलपर मित्र बस इतना कह रहे थे कि रेल उनके लिए आरामदायक महसूस करने के लिए बहुत उन्नत तकनीक है।

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

2

आपको इस प्रश्न के विविधता के पिछले उत्तरों को पढ़ने में कुछ समय बिताने में उपयोगी लग सकता है (उदाहरण के लिए, मैंने इसके बारे में here) को समझाया है।

1

मुझे लगता है कि "निष्पक्ष" की अवधारणा यहां गलत है। यह सब स्वाद का मामला है। मुझे डर है कि रेल बंदर रूबी के निर्माण प्रकारों को पैच करता है (जिसके परिणामस्वरूप "5.days" जैसी चीजें होती हैं)। मैं इस जादू पर विचार करता हूँ। कुछ rubyist इसे ठोस इंजीनियरिंग पर विचार कर सकते हैं।

मुझे लगता है कि रेलवे कहने का उद्देश्य है कि आपकी भाषा रनटाइम में बहुत सी स्पष्ट चीजें हैं। यदि आप मानते हैं कि यह अच्छा या बुरा आप पर निर्भर है।

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