मैं अपनी परियोजना और इन जावास्क्रिप्ट फ्रेमवर्क के बारे में कहां गलत हूं?


107

सबसे पहले, मैं जिस प्रोजेक्ट को बनाना चाहता हूं, उसकी सबसे बड़ी हड्डियां एक सिंगल पेज वेब ऐप के रूप में लागू किया गया एक विकी इंजन है। मैं सड़क से नीचे बहुत सारे फीचर अतिरिक्त के साथ गेट-गो से उपलब्ध सुविधाओं का एक सेट होने की योजना बना रहा हूं।

बुनियादी सुविधाओं

  • पृष्ठ निर्माण (उस लेख के लिए विकि लेख और चर्चा मंच दोनों बनाता है)
  • मार्कअप और WYSIWYG अला मार्किटअप
  • मार्कअप / html / WYSIWYG के बीच-बीच में रूपांतरण
  • त्वरित नेविगेट करने के लिए एक साइड बार
  • संपादन / दृश्य चुनने के लिए एक शीर्ष टूलबार

उन्नत सुविधाओं

  • अलग-अलग विधि से नेविगेट करने के लिए कॉन्फ़िगर करने योग्य साइड बार
  • विन्यास योग्य टूलबार (संभवतः पसंद की मार्कअप भाषा जोड़ें)
  • टैग
  • संपादन योग्य टूडू
  • ड्रैग और ड्रॉप अपलोड और इमेज अटैचमेंट

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

मैंने एक अच्छी परियोजना के लिए काफी व्यापक खोज की है जिसमें से अपनी परियोजना को बंद करना है, लेकिन TiddlyWiki के अलावा कोई भी अच्छी जावास्क्रिप्ट आधारित विकी इंजन नहीं लगता है। मैंने मौजूदा विकी इंजनों के ऊपर जेकरी लगाने पर भी विचार किया था, लेकिन मेरा मानना ​​है कि मैं इसे फिर से लिखना समाप्त कर दूंगा, वैसे भी (इसके ठीक वैसे ही और अधिक रोमांचक होने के रूप में मुझे अपनी पसंद की सुविधाओं को जोड़ने के लिए)। किसी भी तरह से मैं एक जावास्क्रिप्ट पुस्तकालय + ढांचे के साथ इस जानवर को लागू करने पर पहुंचा हूं।

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

तो अब हम शुरू करें:

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

मेरे विकल्प


jquery / UI + बैकबोनज

संपूर्ण

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

यूआई

हालांकि jQueryUI या jqueryTools प्रतिस्पर्धी हो सकते हैं लेकिन वे निश्चित रूप से अन्य रूपरेखाओं की यूआई क्षमताओं के साथ ऑन-बराबर नहीं लगते हैं। विशेष रूप से वे प्रभाव पर भारी लग रहे हैं, लेकिन सभ्य लेआउट टुकड़ा करने की क्रिया समर्थन पर कमी है।

javascriptMVC

संपूर्ण

JavascriptMVC मेरे लिए ऐसा लगता है कि यह अनिवार्य रूप से jquery + MVC (jqueryMX) एक्सटेंशन है, साथ ही दस्तावेज़ीकरण (डॉक्यूमेंटजेएस), फ़ंक्शनल टेस्ट (फ़ंकयूइट), और कोड और डिपेंडेंट मैनेजमेंट (स्टीलजेज़) के लिए कुछ अन्य ऐप भी हैं। अतिरिक्त मॉड्यूल के लाभों के अलावा, मुझे लगता है कि कार्यात्मक बहस वास्तव में बैकबोनज बनाम jqueryMX पर आती है क्या मैं इस पर सही हूं और किसी ने दोनों के साथ काम किया है या तुलना की है?

  • विशेषताएं: ज्यूपिटर (जेएमवीसी का निर्माता) उनकी विशेषताओं का अवलोकन
  • JqueryMX से लिंक करें

यूआई

जावास्क्रिप्ट के लिए जो भी उपलब्ध है उसके ऊपर JavascriptMVC MXUI आइटम जोड़ता है, इसलिए मुझे लगता है कि बहुत कम से कम यह उस श्रेणी में एक मामूली जीत है।

knockoutjs

संपूर्ण

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

यूआई

पलक झपकते ही

Dojo और ExtJS

संपूर्ण

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

यूआई

Dojo में dijit UI लाइब्रेरी है ExtJS में UI फीचर्स हैं लेकिन वे Ext core में नहीं हैं। यहाँ प्रलेखन है और यहाँ उनके डेमो हैं

कैपुचिनो

संपूर्ण

और फिर कैप्पुकिनो है। कोई CSS, no html, लेकिन यह भी मौजूदा जावास्क्रिप्ट पुस्तकालयों का उपयोग करने के लिए कठिन हो सकता है। उद्देश्य-जे डरावना नहीं लगता, खासकर यह देखते हुए कि वे सादे जावास्क्रिप्ट को भी लिखने में सक्षम हैं। डेमो प्रभावशाली हैं और विकी इंजन के लिए UI की जरूरतों को बारीकी से समझते हैं। कोको आधारित एपीआई बहुत कुछ लेने के लिए है जो इससे परिचित नहीं है, लेकिन शायद यह इसके लायक है। मैंने सुना है कि लेआउट इंजन के साथ काम करना हमेशा आसान नहीं होता है, लेकिन एक युवा और संभवतः विघटनकारी तकनीक इस तरह से निश्चित रूप से कुछ कमियां होंगी।

यूआई

पलक झपकते ही

मैं इतना लिखने के लिए माफी माँगता हूँ, लेकिन हे, कम से कम इसके कुल्हाड़ी बनाम y बनाम z सवाल के जवाब के लिए उम्मीद नहीं है। तो तुम क्या सोचते हो? विकी इंजन की तरह मेरे डेस्कटॉप का आधार क्या होना चाहिए, जो समय के साथ उम्मीद से अधिक फीचर रिच (जटिल पढ़ें) बन जाएगा?


9
एक अविश्वसनीय रूप से विस्तृत और अच्छी तरह से सोचा आउट प्रश्न के लिए +1!
सीन विएरा

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

1
@ ब्रायन फ्लैगन ने एक उत्तर में कदम रखा - भले ही "मेटा"।

1
क्या आपने tiddlywiki.com को देखा है , मुझे लगता है कि यह एक शुद्ध स्व-युक्त विकि है जो जावास्क्रिप्ट में किया गया है
बर्नहार्ड

हाँ, मैंने tiddlywiki को देखा है। कई मायनों में यह इस परियोजना के लिए प्रेरणा है लेकिन मेरे पास इस परियोजना के लिए अपना आधार और दिशा है।
फंकी हाँ

जवाबों:


4

मैं पहले सुझाव दूंगा कि आपके प्रोजेक्ट के लिए विशिष्ट UI आवश्यकताएं हैं। स्पिन के लिए आपने कौन सी रूपरेखाएँ आज़माई हैं?

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

ExtJS 4 आपको लुक और फील को कस्टमाइज़ करने के लिए आपके UI को "स्किन" करने की भी अनुमति देता है।

यदि आप जावास्क्रिप्ट में नए हैं, और जावा के साथ सहज हैं, तो आप GWT , JSF , या यहां तक ​​कि वाडिन जैसे सर्वर-साइड समाधान में देख सकते हैं।


19

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


6

आजकल सभी गुस्से में है ( GitHub और Meteorpedia पर सबसे अधिक तारांकित पूर्ण-स्टैक जावास्क्रिप्ट ढांचा , उल्का में लिखा गया एक विकि इंजन है।

लांच वीडियो आप 1:28 से झुका हो जाएगा।

यह यूआई के संबंध में अज्ञेयवादी है, और बूटस्ट्रैप और फेमस के साथ बड़े पैमाने पर परीक्षण किया गया है । यह एक ही कोडबेस से मोबाइल ऐप भी बनाता है।


1
और रिएक्ट के साथ एकीकरण हैं लेकिन यह केवल उन लोगों के लिए है जो इसमें 100% हैं। वहाँ भी jquery plugins और svg / कैनवास ड्राइंग पुस्तकालयों w / oa उल्का के बारे में ज्ञान का उपयोग कर कोई समस्या नहीं हैं।
imslavko

1

आपकी पसंद का फ्रेमवर्क आपके यूआई विकल्पों को बाधित नहीं कर सकता है जितना आप कल्पना कर सकते हैं। सामग्री प्रबंधन को डिकॉप करने के बारे में हालिया हेनरी बर्गियस का यह लेख मेरे द्वारा किए गए बिंदु की तुलना में बहुत बेहतर दिखाता है - और, संयोग से, एक बहुत प्यारी लग रही शुद्ध-जावास्क्रिप्ट (फ्रेमवर्क-इंडिपेंडेंट) में जगह सामग्री संपादक के लिंक ।


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

1

तुम अकेले नही हो!

VanillaJS और Ampersand .. सरल, अधिक मॉड्यूलर जावास्क्रिप्ट के लिए गंभीर ड्राइव के महान उदाहरण हैं।

इसके बारे में एक पुस्तक भी है ।

सादगी को अंडर रेटेड एस 6 सुविधा द्वारा संचालित किया जा रहा है: मॉड्यूल और सिस्टमजेएस कार्यान्वयन मानक। यह भी गैर- es6 सिस्टम पर इस्तेमाल किया जा सकता है।

कितना मजेदार था वो!


1

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

कुल मिलाकर, मैं कहूंगा कि Angular.js इस एक के लिए रूपरेखा है।

रूटिंग पर जोर

आप जिस बारे में बात कर रहे हैं, उनमें से कई (नेविगेशन के लिए कई साइडबार, एक सिंगल पेज ऐप) रूट करने के कार्य हैं, या सामने वाला आपके URL नेविगेशन बार में पाठ की व्याख्या कैसे करता है।

Angular.js और Ember दोनों के पास उत्कृष्ट राउटर हैं जो आपको अतिरिक्त कोड के बिना हर चीज को पूरा करने की अनुमति देते हैं।

आपके लाभ के लिए, यहां पर कोणीय में सुविधाओं का त्वरित विघटन है जिसका उपयोग आपके एकल पृष्ठ विकी को बनाने के लिए किया जा सकता है

साइट की संरचना अपने आप को

कोणीय में यूआई राउटर नामक एक अद्भुत पुस्तकालय है जो आपको कस्टम नेविगेशन बनाने और अपनी सामग्री को प्रकट करने के लिए एसईओ अनुकूल संरचना स्थापित करने की अनुमति देता है। एकाधिक दृश्य एक शीर्ष टूलबार की भी अनुमति देते हैं।

यूआई राउटर ट्यूटोरियल: http://cacodaemon.de/index.php?id=57

WYSIWYG संपादक

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

http://textangular.com/

रेखांकन और अन्य नीट सामग्री

कोणीय निर्देशों को चार्ट घटक बनाने जैसी चीजों के लिए डिज़ाइन किया गया है जो पुन: प्रयोज्य हैं। वे Wordpress Widgets से बिलकुल अलग नहीं हैं। इनमें से कई पहले ही विकसित हो चुके हैं और इन्हें आपके कोणीय प्रोजेक्ट में गिराया जा सकता है।

http://www.sitepoint.com/creating-charting-directives-using-angularjs-d3-js/

एम्बर के बारे में, मुझे इसके बारे में ज्यादा जानकारी नहीं है इसलिए मैं इसके विशेष फीचर्स पर बात नहीं कर सकता।


0

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

मैंने कुछ महीनों के लिए अलग-अलग js लिबास के साथ काम किया और अन्य फ्रेमवर्क की तरह अपने तरीके से नहीं मिलता है और संदेश पाइपलाइन ऐप के माध्यम से घटकों को जोड़ने के लिए एक बहुत अच्छा तरीका है, लेकिन उन्हें डिकूप्ल रखें।

यहाँ आपके पास एक बेहतरीन बात है जिसने मुझे इसके लिए तय किया: https://www.youtube.com/watch?v=qWr7x9w66c

और यहां आपके पास एक डेमो प्रोटोटाइप है जिसमें ड्रैग एंड ड्रॉप एलिमेंट और अन्य जेएस लिबास भी जुड़े हैं। वेब कोड पर 1.5 साल काम करने के बाद से आप मेरे कोड के बारे में क्या सोचते हैं, यह सुनना अच्छा लगेगा ... मैं अभी भी एक नौसिखिया हूं: https://github.com/Drasky-Vanderhoff/marionette-demo/

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

एक बात, अगर आप नॉकबैक (नॉकआउट + बैकबोन) पाते हैं ... तो इससे बचें, प्रलेखन उतना अच्छा नहीं है जितना होना चाहिए और इसे सीखने में आपको बहुत अधिक समय लगेगा। यदि आप इसके लिए जाना चाहते हैं तो पहले एक तेज़ प्रोटोटाइप बनाकर देखें कि क्या आप चाहते हैं।


आपको यह पोस्ट करते हुए एक साल हो गया है। जैसा कि मैं अब नया विकास शुरू करना चाहता हूं, क्या Marionette अभी भी जावास्क्रिप्ट विकास के लिए आपकी शीर्ष पसंद है?
अल्वाज

बिल्कुल नहीं, अभी Angular.js या React.js के साथ बेहतर है (आप चाहें तो दोनों को मिला सकते हैं)। यदि आप किसी ऐप के लिए मोबाइल और वेब संस्करण दोनों के लिए चाहते हैं, तो मैं दृढ़ता से आपको React.js का उपयोग करने का सुझाव देता हूं क्योंकि प्रतिक्रिया मूल निवासी का उपयोग iOS और Android मूल एप्लिकेशन बनाने के लिए किया जा रहा है। दोनों React.js और देशी समान अवधारणाओं, संरचनाओं और प्रतिमान को साझा करते हैं (एक बार सीखें, हर जगह उपयोग करें, जानने के लिए React.js == रिएक्टिव नेटिव, हाँ, मैं ट्रिपल बराबर का उपयोग नहीं कर रहा हूं: P)
DraskyVanderhoff

पॉलिमर का उपयोग करने वाले वेब घटक भी हैं, जो कि मैं आपको यह जांचने के लिए दृढ़ता से सुझाव देता हूं कि अगर काम करना चाहते हैं तो संभवत: अगले साल सबसे गर्म ढांचा होगा। अंत में, Meteor एक बढ़िया विकल्प है, यदि आपको 100% वास्तविक समय डेटा सिंक / तीन तरह से डेटा बाइंडिंग की आवश्यकता है, विशेष रूप से क्योंकि यदि आप params के लिए सत्यापनकर्ता लिखते हैं, तो यह एक ही सत्यापनकर्ता को बैकएंड और फ्रंटेंड दोनों में चलाएगा, 2 कोड होने की आवश्यकता से बचें आधार जो समान हैं।
DraskyVanderhoff

एक स्पष्टीकरण, मैंने कभी नहीं कहा कि मैरियनट मेरी शीर्ष पसंद थी (यह उस समय तक वास्तव में कोणीय था) जो मैंने कहा था कि यदि आप बैकबोन का उपयोग करने वाले हैं। तो इसके बजाय Marionette.js का उपयोग करें।
DraskyVanderhoff 12
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.