Sails.js बनाम उल्का - दोनों के फायदे क्या हैं? [बन्द है]


81

मैं Nodejs और इसके चौखटे पर बहुत कुछ पढ़ रहा हूं और हाल ही में अपना पहला जावास्क्रिप्ट सीमांत (Angulars का उपयोग करके) पूरा किया है।

मैंने तय किया है कि मेरी अगली पालतू परियोजना इन दो रूपरेखाओं में से एक का उपयोग करते हुए नॉडज साहसिक होगी:

मैंने दोनों के बारे में पढ़ा है, लेकिन अभी भी उनके मतभेदों को समझ नहीं पाया है और मुझे एक का उपयोग करने के लिए क्यों चुनना चाहिए। तो कृपया अपनी सबसे अच्छी सेल्समैन टोपी लगाओ, एक रूपरेखा उठाओ, और मुझे बेच दो।

मेरे पालतू प्रोजेक्ट के लिए मुझे कुछ सुविधाएँ चाहिए:

  • लाइव स्कोर
  • रेडिट-जैसे धागे, रीयलटाइम
  • विकिपीडिया जैसा पृष्ठ संस्करण
  • उपयोगकर्ताओं / भूमिकाएँ

1
इस लिंक की जाँच करें: vschart.com/compare/meteor-web-framework/vs/sails-js । यह आपकी मदद कर सकता है !!
टुची 35

जवाबों:


138

मैं उल्का के लिए नहीं बोल सकता, लेकिन मैं पाल पर थोड़ी पृष्ठभूमि प्रदान करने में मदद कर सकता हूं क्योंकि मैंने इसे बनाया है।

tldr; पाल वेब की सभी समस्याओं के लिए रामबाण नहीं है - लेकिन मेरा मानना ​​है कि नोड.जेएस है। Sails का लक्ष्य नोड पर निर्मित पूर्ण, स्केलेबल, स्टार्टअप और उद्यम-अनुकूल अनुप्रयोगों के विकास के लिए एक व्यावहारिक ढांचा प्रदान करना है। मैंने इस सवाल के साथ बलडरश की शुरुआत की "क्या हम सब कुछ के लिए नोड्स.जेएस का उपयोग कर सकते हैं?"। पाल जवाब है।


हमारे नए डॉक्स से :

बेशक, एक वेब फ्रेमवर्क है। लेकिन एक कदम पीछे हटो। इसका क्या मतलब है? कभी-कभी, जब हम "वेब" का संदर्भ देते हैं, तो हमारा मतलब "फ्रंट-एंड वेब" होता है। हम वेब मानकों या HTML 5, या CSS 3 जैसी अवधारणाओं के बारे में सोचते हैं; और बैकबोन, या कोणीय, या jQuery जैसे ढांचे। एक वेब फ्रेमवर्क के "Sails" उस तरह के नहीं हैं। सेल्यूलर और बैकबोन के साथ महान काम करता है, लेकिन आप उन पुस्तकालयों के बजाय सेल का उपयोग कभी नहीं करेंगे।

दूसरी ओर, कभी-कभी जब हम "वेब फ्रेमवर्क" के बारे में बात करते हैं, तो हमारा मतलब "बैक-एंड वेब" होता है। यह REST, या HTTP या WebSockets जैसी अवधारणाओं को उद्घाटित करता है; और जावा, या रूबी, या Node.js. जैसी तकनीकों पर बनाया गया है एक "बैक-एंड वेब" फ्रेमवर्क आपको एपीआई बनाने, डेटाबेस के साथ बातचीत करने, एचटीएमएल फ़ाइलों की सेवा करने और एक साथ सैकड़ों हजारों उपयोगकर्ताओं को संभालने में मदद करता है। Sails वेब फ्रेमवर्क की "उस तरह की" है।

कुछ साल पहले, मैंने हर चीज़ के लिए Node.js का उपयोग करने की प्रतिबद्धता की- यह पहली नजर में प्यार था । मैंने एक्सप्रेस और सॉकेट के शीर्ष पर पाल बनाए। क्योंकि वे (और अभी भी) अपने संबंधित उपयोग के मामलों के लिए सबसे अच्छी तरह से स्थापित नोड मॉड्यूल हैं। सॉकेट में अनुरोध-हैंडलिंग कोड एक्सप्रेस-संगत है, सॉकेट के लिए निहित समर्थन के अतिरिक्त लाभ के साथ।

पाल को कोणीय, बैकबोन, iOS / ObjC, एंड्रॉइड / जावा में अपने फ्रंट-एंड (ओं) के निर्माण के लिए आपके पास जो भी रणनीति है, उसके अनुकूल होने के लिए डिज़ाइन किया गया है, या यहां तक ​​कि किसी अन्य वेब सेवा या आपके द्वारा उपयोग की जाने वाली कच्ची एपीआई की पेशकश करने के लिए भी डेवलपर समुदाय। यदि आप अपना दृष्टिकोण बदलना (उदाहरण के लिए बैकबोन से एंगुलर पर स्विच करना) या पूरी तरह से एक नया फ्रंट-एंड का निर्माण कर रहे हैं (जैसे विंडोज फोन देशी ऐप का निर्माण), तब भी आपका सेल ऐप काम करेगा। जैसा कि आप पहले से ही जानते हैं, कुछ लोग इस दृष्टिकोण को सर्विस ओरिएंटेड आर्किटेक्चर कहते हैं, या एसओए ( जो मैककेन विषय पर एक महान है।)

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

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

मैं सिर से अधिक ऊँची एड़ी के जूते वहाँ बाहर सबसे अच्छा वेब फ्रेमवर्क बनाने के लिए प्रतिबद्ध हूँ, लेकिन Node.js. की कीमत पर कभी नहीं कोर टीम और मैं लगातार नोड ईकोसिस्टम की वृद्धि के लिए समर्पित हैं, और इसका मतलब है कि एनपीएम को गले लगाना, मौजूदा नोड प्रौद्योगिकियों और सर्वोत्तम प्रथाओं का लाभ उठाना, आदि न केवल इसलिए कि यह अधिक समझ में आता है, बल्कि इसलिए कि हम एनओडी .जे डेवलपर्स हैं। हमारे सभी प्रयासों की प्रेरणा नोड को अधिक सुगम बनाना है, न कि इसे सुपरसाइड करना। इसलिए, अगर, कुछ अजीब समानांतर ब्रह्मांड में, मुझे पाल को किसी अन्य भाषा में परिवर्तित करने, या पूरी तरह से खंदक खाई के बीच एक Faustian विकल्प दिया गया था, लेकिन फिर भी नोड का उपयोग करने में सक्षम होने के बाद, मैं बाद वाला चुनूंगा।


अतिरिक्त संसाधन:

एफएक्यू | पाल 101 | मूल पेचकश | योगदान गाइड | स्टैक ओवरफ़्लो

Google समूह | रोडमैप | IRC: Freenode पर #sailsjs | स्थिति बनाएँ


2
इस सवाल पर एक और अच्छे परिप्रेक्ष्य में भाग लें (पहला उत्तर): linkedin.com/groups/…
mikermcneil


@AaronShafovaloff सिर के लिए धन्यवाद- यहाँ अद्यतन लिंक है: sailsjs.org/get-started
mikermcneil

30

मैं उल्का के साथ कुछ परियोजनाओं का निर्माण किया है और अभी तक पाल के साथ काम नहीं किया है। तो मेरी राय निश्चित रूप से पक्षपाती होने वाली है, उम्मीद है कि इसके सहायक रास्ते।

सामने के छोर का निर्माण

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

दूसरी ओर, पाल केवल एक बैकएंड फ्रेमवर्क प्रदान करता है और आपको अपना स्वयं का फ्रंट-एंड फ्रेमवर्क लाना होगा।

अधिकांश Node.js फ्रेमवर्क के विपरीत उल्का समकालिक है

उल्का एक लूप में चलता है और यदि आप Node.js पैकेज का उपयोग करना चाहते हैं, तो आपको यह सुनिश्चित करने के लिए कुछ अतिरिक्त काम करना होगा कि वे Meteor में ठीक से काम करते हैं।

लगता है कि एक सीधा MVC Node.js ढांचा है, इसलिए जब आप इसे देखते हैं तो कुछ भी आश्चर्यजनक नहीं होना चाहिए।

आपको Meteor के साथ MongoDB का उपयोग करना चाहिए

हां, आप उल्का के साथ अन्य डेटाबेस का उपयोग कर सकते हैं, लेकिन वे उसी तरह के पास कहीं भी नहीं हैं, जितना कि MongoDB करता है। जबकि पाल के साथ, ऐसा लगता है कि वे कुछ डेटाबेस के लिए ORM हैं।

प्रदर्शन

बड़े पैमाने पर अनुप्रयोगों के लिए उल्का अच्छा प्रदर्शन नहीं कर सकती है । इस मुद्दे से निपटने के लिए बहुत काम किया जा रहा है और 2014 के अंत तक हम उम्मीद कर सकते हैं कि उल्का के लिए समाधान तैयार किया जाए।

स्थिरता

उल्का अभी भी बहुत ताज़ा है और अभी तक 1.0 नहीं मारा है। आपको रिलीज के अगले जोड़े पर कुछ बदलाव किए जाने की उम्मीद करनी चाहिए जो पीछे की संगतता को तोड़ देगा। यदि आप ASAP से इसकी शुरुआत कर रहे हैं तो आप 0.8-rc0 शाखा का उपयोग करने पर विचार कर सकते हैं। कहा जा रहा है कि, पाइपलाइन में कुछ विशेषताएं वास्तव में बहुत अच्छी हैं और 1.0 संस्करण को बहुत ही आकर्षक बना देंगी।

अंतिम विचार?

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

पुनश्च क्या आ रहा है के लिए एक महसूस पाने के लिए रोडमैप की जाँच करें


5
मैं सुझाव देता हूं कि "उल्का समकालिक है" कथन को संशोधित करना क्योंकि यह उन अपरिचित लोगों के लिए गलत प्रभाव दे सकता है जो नोड्ज फाइबर के साथ अपरिचित हैं। Meteor Node.js पर चलता है इसलिए आपको अभी भी इसके इवेंट-संचालित, गैर-अवरुद्ध लाभ मिलते हैं। उल्का पारदर्शी रूप से नोड फाइबर्स को एकीकृत करता है ताकि सर्वर-साइड कोड को पारंपरिक कॉलबैक में चीजों को विभाजित करने के बजाय एक रैखिक निष्पादन मॉडल में लिखा जा सके। यह शायद npmउल्का के साथ पैकेज का उपयोग करने के संबंध में सबसे अच्छा संदर्भ है : meteorhacks.com/complete-npm-integration-for-meteor.html
alanning

धन्यवाद एलनिंग, मैं आपकी प्रतिक्रिया को इस प्रतिक्रिया में शामिल करूँगा!
MSaforrian

8
हो सकता है कि एक महत्वपूर्ण बात यह है कि sails.js केवल बैकएंड के लिए है जबकि उल्का आसानी से बैकएंड के साथ काम करने के लिए एक पूरे फ्रंट एंड जावास्क्रिप्ट फ्रेमवर्क प्रदान करता है।
माइकल

कि ऊपर लाने के लिए धन्यवाद, @Michael। Sails.js और उल्का वास्तव में प्रतिस्पर्धा नहीं करते हैं - Sails.js Node.js के लिए एक बैकएंड फ्रेमवर्क है जिसका उपयोग आप Django, रेल्स, एक्सप्रेस, आदि जैसी किसी चीज़ के स्थान पर कर सकते हैं जबकि Meteor यह सोचने का एक नया तरीका है कि कैसे प्रतिक्रियाशील ऐप्स को नीचे से ऊपर तक
बनाएं

क्या आप अपनी टिप्पणी को अद्यतन करने के लिए परवाह करेंगे क्योंकि आपकी समीक्षा के 4 साल से अधिक हो गए हैं? मैं निश्चित रूप से नए खेल बदलते उल्का 1.7 के संबंध में एक राय चाहूंगा ..
श्याम

19

मैं केवल पाल पर राय दे सकता हूं। मैं एक अत्यंत अनुभवी जावास्क्रिप्ट डेवलपर हूं और 90 के दशक से जावास्क्रिप्ट पर निर्मित एम्बेडेड सेट टॉप बॉक्स अनुप्रयोगों का निर्माण कर रहा हूं।

चीजें जो वास्तव में अच्छी तरह से काम करती हैं - शुरू करना बहुत अच्छा था और मुझे प्रकाशित सामग्रियों का बहुत समर्थन महसूस हुआ - सीखने की अवस्था बहुत कम थी, और पाल के पीछे एक स्वस्थ समुदाय है - प्रारंभिक शिक्षा के बाद रचनात्मक होना बहुत आसान है

चीजें जो बेहतर हो सकती हैं - जटिल डेटा संरचनाएं लागू करने के लिए मुश्किल हैं - पासपोर्ट.जेएस एकीकरण एक दर्दनाक संदर्भ सामग्री के रूप में दर्दनाक था।

सिफारिशें - पोंजी कोडर में एक महान ट्यूटोरियल है और इससे मुझे वास्तव में https://www.youtube.com/user/ponzicoder प्राप्त करने में मदद मिली - एक्सप्रेस और वॉटरलाइन के बारे में अधिक जानने से आपको अधिक जटिल डेटा चुनौतियों का सामना करने में मदद मिलेगी

कुल मिलाकर मैं पाल की सिफारिश करूंगा।


1
हाय सिमोन, क्या आप कृपया साझा कर सकते हैं कि आपने पाल के साथ पासपोर्ट को कैसे एकीकृत किया? मैं उसी समस्या में फंसा हुआ हूं। क्या आपने कहीं ब्लॉग लिखा है या कोई संदर्भ सामग्री है?
१२:०२ पर मिताली रीस

2
हाय मित्र, क्षमा करें, लेकिन मेरे ब्लॉग की बहुत पहले ही उपेक्षा हो गई थी। मेरे लिए पासपोर्ट का काम करने वाली बात यह महसूस कर रही थी कि अगर मैंने दो काम किए तो यह ठीक लग रहा था। 1 हर जगह (ईमेल और पासवर्ड) डिफ़ॉल्ट फ़ील्ड के नाम 2 कॉलबैक में passport.use('local-login', new LocalStrategy({ usernameField : 'email', passwordField : 'password', passReqToCallback : true // allows us to pass in the req from our route (lets us check if a user is logged in or not) },
रीक

1
वाह धन्यवाद। मुझे स्थानीय रणनीति के बारे में दिनों से परेशानी हो रही है। यह हकदार है कि यह स्वयं स्टैक ओवरफ्लो पोस्ट है
light24bulbs

1
Passport.js एकीकरण को वास्तव में अधिक दस्तावेज़ीकरण सामग्री की आवश्यकता है, जो इसे पर्याप्त महत्व नहीं दे सकता है। REST API उपयोग के मामले के लिए विशेष रूप से, जहां कोई सर्वर रेंडरिंग नहीं हो रही है (उदाहरण के लिए कोणीय JS क्लाइंट्स के लिए), facebook / Google लॉगिन और स्थानीय प्रमाणीकरण का संयोजन।
अलोन अमीर

1
अपवोट पासपोर्ट.जेएस को एकीकृत करना और खराब तरीके से प्रलेखित किया जाना मुश्किल है
pim

9

मैं वर्तमान में Meteor का उपयोग करता हूं और Sails.js का उपयोग नहीं किया है।

उल्का के साथ काम करने के लिए अत्यधिक सुखद रहा है और मुझे लगता है कि यह रियलटाइम वेब ऐप के लिए एक उत्कृष्ट विकल्प होगा। उपयोगकर्ताओं / भूमिकाओं के बारे में, आप एकीकृत खातों के पैकेज की जाँच कर सकते हैं और समुदाय द्वारा समर्थित भूमिकाओं / अनुमतियों के पैकेजों के लिए वायुमंडल की खोज कर सकते हैं।

अंतत: मैं दोनों प्रौद्योगिकियों के साथ एक छोटी परियोजना की कोशिश करने और यह देखने की सलाह दूंगा कि आपको कौन सी पसंद है।


क्या आपको पता है कि Sail.js के पास मॉडल स्तर पर उल्का के विलंबता मुआवजे के समान क्लाइंट की ओर से लेटेंसी मुआवजा का कोई भी रूपांतर है?
imslavko

Sail.js के बारे में नहीं जानते, लेकिन आप शायद खुद इसे sharejs.org lib का उपयोग करके शामिल कर सकते हैं । कम से कम ऐसा लगता है कि यह दायित्व का लक्ष्य है।
alanning

1
@alanning - नहीं, शेयरज विलंबता क्षतिपूर्ति नहीं करते हैं। शेयरज ऑपरेशनल ट्रांसफॉर्म करता है। विलंबता क्षतिपूर्ति तब होती है जब उल्का स्थानीय मिनिमोंगो के लिए एक अपडेट करता है और मानता है कि रिमोट अपडेट सफल होगा, जिससे उपयोगकर्ता को जारी रखने की अनुमति मिलेगी।
गोमद

1
@gomad आप सही हैं कि शेयरज बॉक्स से बाहर विलंबता मुआवजा प्रदान नहीं करते हैं। मैंने यह नहीं कहा कि यह किया। बल्कि, मैंने कहा, "आप शायद खुद इसे sharejs.org का उपयोग करके शामिल कर सकते हैं"। एलटी ओटी पर बनाया गया है।
एलन

बस एक जोड़ा नोट। मुझे लगता है कि उल्का उपयोग करने के लिए बहुत सुखद है। सीखने की अवस्था थोड़ी है, लेकिन इसके अलावा, फ्रेमवर्क बहुत समान है कि आप कैसे रूबी को रेल का वर्णन कर सकते हैं। इस समय मेरा एकमात्र करंट ग्रिप है, यह अभी भी नोड पर निर्भर करता है। क्योंकि उल्का का काफी बड़ा आधार होता है, मेरा मानना ​​है कि नोड के साथ कैचअप गेम उल्का के लिए थोड़ा अनुचित है।
जिमी एमजी लिम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.