2012-02-22 15 views
15

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

मेरी समझ के अनुसार Mootools को जावास्क्रिप्ट लिखने का पसंदीदा तरीका नहीं माना जाता है क्योंकि यह डिफ़ॉल्ट प्रोटोटाइप-आधारित ओओ भाषा पर पारंपरिक ओओ की नकल करता है। तो अब वास्तव में जावास्क्रिप्ट और दुनिया के साथ चलने की इच्छा को समझने के लिए, मैंने अन्य दृष्टिकोणों का प्रयास करने का फैसला किया, इसलिए फिर मैं jquery पर वापस आ गया, और महसूस किया कि केवल jquery पर्याप्त नहीं है। तो रीढ़ की हड्डी, रीढ़, ember.js, sprouteCore जैसे मौजूदा प्रवृत्त ढांचे को देखना शुरू कर दिया। आश्चर्यजनक रूप से मैंने पाया कि इन मूलभूत ढांचे पर पारंपरिक ओओ की तरह नकल करने की कोशिश की जाती है, केवल कन्स्ट्रक्टर होने और वर्ग की वस्तु बनाने और उदाहरण कक्षाओं को बनाने के लिए इस वर्ग वस्तु का पुन: उपयोग करके। तो

  • क्या मुझे कुछ याद आ रही है?
  • क्या mootools रास्ता वास्तव में गलत है?
  • Mootools परियोजना बहुत जीवित है और विज्ञप्ति नए संस्करणों/सुविधाओं, लेकिन मैं नहीं इंटरनेट पर, यह भी वहाँ बनाम रीढ़ की हड्डी/रीढ़ आदि
+0

er। एक लंबे मार्जिन द्वारा Mootools गलत नहीं है। मैं जावा देवों की एक टीम/काम करता हूं जिसने क्लासिक ओओ पैटर्न की वजह से इसे चुना है। वास्तव में कुछ बहुत ही ज्ञात पीपीएल के साथ इसके चारों ओर एक छोटा लेकिन समृद्ध समुदाय है। हालांकि मुट्टूलों के पास विरासत, इवेंट इत्यादि हैं, लेकिन यह स्वयं सटीक क्लाइंटसाइड एमवीसी समाधान नहीं है। जब मुझे समय मिलता है तो मैं और अधिक पोस्ट करूंगा। –

+0

या नहीं। आपकी अन्य पोस्ट 'दुनिया के खिलाफ moootools' प्रकार का गलत स्वर सेट करता है। हालांकि ग्लो। –

+0

@title बदल गया .. – Nachiket

उत्तर

41

के रूप में कोई comparisions हैं कई लोगों को इसके बारे में बात देख पा रहे हैं मेरी समझ के अनुसार Mootools को जावास्क्रिप्ट लिखने का पसंदीदा तरीका नहीं माना जाता है क्योंकि यह डिफ़ॉल्ट प्रोटोटाइप-आधारित ओओ भाषा पर पारंपरिक ओओ की नकल करता है।

आप इसे कहां से प्राप्त करते हैं? जावास्क्रिप्ट के बारे में सबसे बड़ी बात यह है कि इतनी कमजोर टाइप की गई है (देखें कि मैंने वहां क्या किया है) - आप वही चीज़ों को एक तरह से लिख सकते हैं। इसे अमूर्त करने और इसे पुन: पैकेज करने के कई तरीके भी हैं - और यह आपके ऐप को कैसे व्यवस्थित करने के लिए एक सरल new Array() बनाम [] से लागू होता है।

यदि आप जावास्क्रिप्ट से प्यार करते हैं (या सिर्फ इसे जानते हैं और गुप्त रूप से इससे नफरत करते हैं), तो आप म्यूटूल के साथ ठीक होंगे। एपीआई ज्यादातर मूल जेएस या ईएस 5 स्पेक है या - शायद ही कभी - एक अतिरिक्त उपयोगिता जो 'प्राकृतिक' भी महसूस करती है। उल्लेखनीय अपवाद है जो Class है। और तथ्य यह है कि आप किसी विशेष निर्माता Type फ़ंक्शन पर ऑब्जेक्ट पास करके प्रोटोटाइपिकल विरासत से निपटने के लिए अमूर्त कर सकते हैं जो आपका उदाहरण देता है ... ओह रुको। यह अलग दिखता है लेकिन यह सामान्य जावास्क्रिप्ट की तरह बहुत ज्यादा लगता है। केवल आसान - क्यों आपको पसंद नहीं करेंगे?

क्लाइंटसाइड एमवीसी बूम के इन दिनों और यह 'ऐप्स विकसित करने का नया तरीका' बना रहा है। अचानक, jQuery लोगों को नल के पानी की लक्जरी दी गई थी! मैंने पर म्यूटूल डेवलपर्स के बहुत सारे से बात की है और (अन) आश्चर्यजनक रूप से पता चला है कि ज्यादातर सोचते हैं कि म्यूटूल को शायद ही कभी ऐसा कुछ चाहिए। मैं उनके साथ सहमत हूं। एकमात्र अंतराल छेद टेम्पलेटिंग के साथ एक व्यू कंट्रोलर है लेकिन कुछ उचित समाधान हैं।

बात यह है कि आप सीधे MooTools के साथ एक एमवीसी ढांचे की तुलना नहीं कर सकते हैं, यह वही नहीं है। बिलकुल। आप तथाकथित मॉडल कन्स्ट्रक्टर बनाम कक्षाओं की तुलना कर सकते हैं।

मैंने अब विभिन्न एमवीसी ढांचे के समाधान और पैटर्न का शोध करने में कुछ समय बिताया है यह देखने के लिए कि क्या हमारे नए ऐप को 'सर्वोत्तम अभ्यास' आकार में ढाला जा सकता है।

असल में, मैंने backbone.js (साथ और w/o mootools एडाप्टर के साथ) की कोशिश की और इसे MooTools के बाद उपयोग करने के लिए अजीब पाया - यह एक कदम पीछे की तरह महसूस किया। जब मैं कहता हूं का उपयोग करें, मेरा मतलब यह नहीं है कि मैं इसका उपयोग नहीं कर सकता लेकिन यह का विस्तार करने और आगे बढ़ने के लिए अजीब लगता है। मुझे यकीन है कि यह अनुभव करने के लिए बस नीचे है, हालांकि, अभी तक सभी रीढ़ की हड्डी पैटर्न उदाहरणों को पढ़ना है।

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

म्यूटूल में, मैंने अभी अपना मॉडल वर्ग बढ़ाया होगा और एक कस्टम क्लास म्यूटेटर प्रॉपर्टी (जैसे Binds या Implements) परिभाषित कर सकता था। किया हुआ। लिखें कि आप क्या जानते हैं, वे कुछ भी नहीं ...

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

एम्बर.जेएस मुझे एक और इंटरफ़ेस के रूप में थोड़ा और moo-ish मिला हालांकि यह काफी क्लिक नहीं किया गया था। स्पष्ट रूप से, रीढ़ की हड्डी को सेटअप करने में कम परेशानी थी।

अन्य प्रयास भी हैं। Composer एक है - एक बार फिर mootools के लिए, लेकिन यह रीढ़ की हड्डी होने के लिए बहुत कठिन प्रयास करता है और उन लोगों द्वारा लिखा जाता है जो ढांचे के लिए अपेक्षाकृत नए हैं इसलिए मैं इसे परिपक्व नहीं कहूंगा। नॉकआउट इत्यादि। शाब्दिक रूप से हर दिन एक नया है।

गैरिक चेंग ने Neuro नामक एक ढांचा जारी किया जिसमें बड़ी क्षमता है।

मैंने Epitome लिखा - कक्षाओं और घटनाओं के आधार पर एक पूर्ण एमवीपी कार्यान्वयन और एएमडी मॉड्यूल में लिपटे, इसे जांचने में संकोच न करें। यह आपको एक निर्माता, प्रलेखन निर्माता और शुरू करने के लिए कई छोटी उपहारों के साथ आता है।

शॉनमोनस्टार ने शिपयार्ड जारी किया, जिसका उपयोग मोज़िला फ्लाइट डेक - http://seanmonstar.github.com/Shipyard/ द्वारा किया जाता है। जबकि यह मूल mootools नहीं है, यह mootools वर्ग के साथ mootools-ish है - केवल w/o मूल निवासी, तो एक महान विकल्प।

बीटीडब्ल्यू, irc.freenode.net #mootools या मेल सूची आज़माएं और आपको हमेशा एक अच्छा जवाब मिलेगा।

वैसे भी, एमवीसी पर पर्याप्त है। MooTools के बारे में अंक अनगिनत बार बना दिया गया है। हैटर नफरत करेंगे। जो लोग इसे प्यार करते हैं वे वापस नहीं देखते हैं। यदि आप ओओपी पृष्ठभूमि से प्रोग्रामर हैं या कुछ ऐसा ढूंढ रहे हैं जो पैटर्न के लिए खुद को अच्छी तरह से प्रस्तुत करता है, तो अपने आप को एक पक्ष बनाओ और इसके साथ चिपके रहें। रोमांचक समय आगे हैं। 1.5 के लिए रोडमैप: 2.0 के लिए एएमडी (उर्फ, Prime) होस्ट ऑब्जेक्ट प्रोटोटाइप वैकल्पिक। आलोचकों की आंखों में ये दो सबसे बड़े बोलने वाले बिंदु हैं। कोई और 'गंदे' प्रोटोटाइप नहीं है ताकि लोग गैर-ऑब्जेक्ट्स पर गलत तरीके से और hasOwnProperty चेक के बिना गलत तरीके से उपयोग कर सकें। वैसे भी ...

चिंता करने की अन्य चीजें महत्वपूर्ण हो सकती हैं। जैसे, 'समुदाय' का आकार। मुझे लगता है कि एक स्वस्थ समुदाय होना एक बड़ी बात है, लेकिन यदि आप jquery को देखते हैं, तो वास्तविक योगदानकर्ता बनाम उपयोगकर्ताओं की मात्रा कम है। गुणवत्ता वाले कोड बनाम अच्छे दिखने वाले प्रभावों का अनुपात खराब है। जिन प्लगइन का आप उपयोग कर सकते हैं - बहुत सारे लिखित या मृत और असमर्थित नहीं हैं। जब आप रेखा खींचते हैं, तो यह आपके विचार से बहुत कम ग्लैमरस होता है!

मैं यह नहीं कह रहा हूं कि mootools या अन्य ढांचे में इन समस्याओं का सामना नहीं है। म्यूटूल लोगों को कहना उचित है और विशेष रूप से कोर देव काफी निजी हैं और वे जो करते हैं उसके बारे में कम मुखर हैं। यह गलत इंप्रेशन भेज सकता है, मुझे नहीं पता। यह निश्चित रूप से कोई jQuery नहीं है। आखिरकार - यदि आपके पास संसाधन हैं और पता है, तो सबसे अच्छा काम करता है और क्या स्केल करेगा इसका उपयोग करें। यहां तक ​​कि इन्हें कॉफ़ीस्क्रिप्ट का उपयोग करते हैं और इसके द्वारा कसम खाता है। मैं न्याय करने के लिए कौन हूं ...

पूर्ण प्रकटीकरण के हित में - आपको भर्ती के दौरान एक सभ्य mootools देव खोजने के लिए यह बहुत कठिन लगेगा। अनदेखा नहीं किया जा सकता है ...

+4

* के साथ काम किया जा सकता है * पूर्ण प्रकटीकरण के हित में - आपको भर्ती के दौरान एक सभ्य mootools देव खोजने के लिए यह बहुत कठिन लगेगा। * - सच पर्याप्त, हालांकि हम उज्ज्वल पक्ष को देखकर इस समस्या को कम करते हैं: आप किसी भी परेशान आदतों को तोड़ने के बिना, शुरुआत से मुट्टूल का उपयोग करने के लिए किसी को प्रशिक्षित करेंगे। –

+1

अच्छी तरह से Dimitar कहा! –

+1

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

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