"एकल पृष्ठ वेब-ऐप" के लिए वास्तुकला दिशानिर्देश


12

मैं "सिंगल पेज" वेब एप्लिकेशन बनाने के लिए एक साइड प्रोजेक्ट शुरू करने जा रहा हूं। एप्लिकेशन को वास्तविक समय की जरूरत है, जैसा कि परिवर्तन होता है, ग्राहकों को अपडेट भेज रहा है।

क्या इस प्रकार के अनुप्रयोगों के लिए वास्तुकला के सर्वोत्तम तरीकों के लिए कोई अच्छा संसाधन हैं। अब तक मैंने जो सबसे अच्छा संसाधन पाया है, वह यहाँ का ट्रैलो आर्किटेक्चर लेख है: http://blog.fogcreek.com/the-trello-tech-stack/

मेरे लिए, यह वास्तुकला, हालांकि बहुत सेक्सी है, शायद मेरी विशिष्ट आवश्यकताओं के लिए अति-इंजीनियर है - हालांकि मेरे पास समान आवश्यकताएं हैं। मुझे आश्चर्य हो रहा है कि क्या मुझे सर्वर साइड पर एक सब / पब से परेशान होना चाहिए, क्या मैं सर्वर से अपडेट तब नहीं कर सकता जब कुछ होता है (जैसे जब क्लाइंट सर्वर पर अपडेट भेजता है, तो डीबी को अपडेट लिखें,) और फिर ग्राहकों को एक अद्यतन भेजें)।

टेक-वार, मैं शायद Node.JS या शायद रूबी में इसका निर्माण करना चाह रहा हूं, हालांकि आर्किटेक्चर दिशानिर्देश किसी भी अंतर्निहित सर्वर प्रौद्योगिकियों पर कुछ हद तक लागू होना चाहिए।

जवाबों:


5

मैं निश्चित रूप से इस तरह के Backbone.js के लिए ग्राहक पक्ष MVC की ओर देखूंगा। यह बहुत हल्का है लेकिन आपके एप्लिकेशन को कुछ आवश्यक संरचना देगा। मैं बैकबोन के बारे में अधिक जानने का सबसे तेज़ तरीका के रूप में पीपकोड स्क्रेंकास्ट की अत्यधिक अनुशंसा करता हूं।

क्लाइंट साइड MVC का एक अच्छा वास्तुशिल्प लाभ यह तथ्य है कि आप अधिक आसानी से अपने सर्वर साइड जैसे RSON पर संरचित JSON के साथ डेटा का आदान-प्रदान करने की दिशा में आगे बढ़ सकते हैं ।

Backbone.js इस बॉक्स से बाहर का समर्थन करता है - आप अपने मॉडल को क्लाइंट और सर्वर के बीच JSON के रूप में क्रमबद्ध कर सकते हैं, जो हमें अनुरोध / प्रतिक्रिया के संदर्भ में सोचने से मुक्त कर सकता है।

सर्वर की तरफ Node.js जैसा कुछ इस मॉडल के तहत अपील करता है, जहां आपको संभवतः डेटा को पुश करने और खींचने के लिए बहुत कम समय के संभावित अतुल्यकालिक अनुरोध होंगे।

एक विकल्प .... कॉमेट जैसा मॉडल वेब पब / सब को प्राप्त करने का एक सरल तरीका हो सकता है और कुछ सर्वर साइड फ्रेमवर्क हैं जो इसका समर्थन करते हैं।


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

1

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

अन्य लोकप्रिय समाधान Ember.js और Knockout.js हैं, जो बॉक्स कार्यक्षमता से अधिक प्रदान करते हैं, हालांकि आपको थॉट कार्यक्षमता का उपयोग करने के लिए उनके सम्मेलनों का पालन करना होगा (जो आपके लिए काम कर सकते हैं या नहीं भी कर सकते हैं)।


1

यह नो ब्रेनर IMO है। फ्रंट एंड के लिए AngularJS क्योंकि यह कमाल है। NodeJS / एक्सप्रेस / सॉकेटियो एक पब और उप अच्छाई और उपद्रव की एक न्यूनतम के साथ एक गतिशील और सेक्सी बैकेंड के लिए। और एक बोनस के रूप में, आप आगे और पीछे के लिए एक भाषा का उपयोग कर सकते हैं!

उदाहरण के लिए मेरे https://github.com/hackify/hackify-server के कार्यान्वयन को देखें

एक कैविएट, कुछ लोग सॉकेटियो के लिए NodeJS विकल्प की सिफारिश कर रहे हैं जिसे sockjs कहा जाता है, लेकिन मैंने इसकी जाँच नहीं की है इसलिए मैं इसकी सिफारिश नहीं कर सकता


0

क्या आप देख रहे हैं की तरह लगता है है Apache 2.2 के साथ PHP या बिलाव अनुप्रयोग सर्वर एक सरल सर्वलेट जो हैंडल अनुरोध के साथ। यह बढ़ई का हथौड़ा और नाखून के बराबर है। कुछ भी जटिल नहीं है लेकिन यह काम पूरा करता है। यदि आपको कभी कार्यक्षमता का विस्तार करने की आवश्यकता होती है, तो आप हमेशा से ऐसा कर सकते हैं क्योंकि यदि आप कभी भी इसकी आवश्यकता है तो टॉमकैट जेएसपी और जेएसएफ का समर्थन कर सकते हैं।

सामने के छोर की चिंता के लिए, मैं बस jQuery ( $ .post , $ .load , $ .ajax ) का उपयोग करके आराम से रहूँगा क्योंकि यह jQuery UI के साथ संयोजन में आपके पृष्ठ में कार्यक्षमता जोड़ने के साधन के रूप में काफी आसान है।


0

यदि आप वास्तविक समय क्लाइंट अपडेट चाहते हैं, तो आपको लंबे समय से अवरुद्ध "AJAX" कॉल को लागू करना होगा, या अधिमानतः आधुनिक वेबस्कैट का उपयोग करना होगा। ये आपको एक जुड़े क्लाइंट के अपडेट को पुश करने की अनुमति देते हैं जो कि जावास्क्रिप्ट के एक बिट द्वारा नियंत्रित किया जाएगा।

मैं समझता हूं कि वर्तमान अत्याधुनिक (या नवीनतम सनक) Google द्वारा AngularJS है। इसका आंशिक रूप से लेखन एसपीए को आसान बनाना है।


0

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

एक कोणीय दृश्य के साथ रेल एक अच्छा विकल्प होगा, लेकिन आपके पास एक कठिन समय होगा "ग्राहकों को अपडेट भेजना जैसा कि परिवर्तन होता है", जैसा कि आपको विशिष्ट रत्नों को स्थापित करने की आवश्यकता होगी, कुछ लंबे समय से मतदान या सॉकज लाइब्रेरी के साथ स्ट्रिंग ।। ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.