अगर फायरबेस का उपयोग किया जाए तो व्यापारिक तर्क कहां रखें?


10

मैं एक एकल पेज वेब एप्लिकेशन विकसित करना शुरू करने वाला हूं जो एक बहु उपयोगकर्ता प्रलेखन प्रणाली को सरल बनाता है। सामने का छोर शायद Angular2 का उपयोग करेगा।

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

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

लेकिन इसका मतलब यह भी है कि मुझे एंगुलर 2 वेब ऐप में बिजनेस लॉजिक को फ्रंट एंड में रखना होगा, है ना?

इसलिए अगर मैं भविष्य में किसी दिन मोबाइल ऐप को फ्रंट एंड बनाना चाहूंगा, तो मुझे बिजनेस लॉजिक कोड को डुप्लिकेट करना होगा?

मुझे लगता है कि विकल्प एक बैकएंड बनाने के लिए होगा जिसमें व्यावसायिक तर्क शामिल है और यह डेटा स्टोरेज के लिए फायरबेस का उपयोग करता है, लेकिन यह थोड़ा अजीब लगता है (क्या मैं सीधे अपने बैकएंड में एक ORM या किसी चीज़ का उपयोग नहीं कर सकता / सकती हूं बिना उसी परिणाम को प्राप्त करने के लिए बहुत अधिक काम?)

लोग आमतौर पर इस तरह के ऐप को कैसे बनाते हैं, अगर वे उदाहरण के लिए फायरबेस का उपयोग करना चाहते हैं?


आप किस डेटाबेस / ओआरएम इत्यादि से परिचित हैं? शायद यही आपको वहां सबसे जल्दी मिलेगा।
रॉबर्ट हार्वे

इस परियोजना के लिए मैं शायद कुछ ऐसी तकनीकों का उपयोग करूंगा जिनका मैंने पहले उपयोग नहीं किया है, इसलिए कुछ सीखने का तरीका भी होगा ...
मैग्नस डब्ल्यू

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

जवाबों:


2

प्रश्न: लेकिन इसका मतलब यह भी है कि मुझे एंगुलर 2 वेब ऐप में, सही में बिजनेस लॉजिक को सामने रखना होगा ?

हाँ। यदि यह सर्वर द्वारा समर्थित नहीं है, तो व्यवसाय को कहीं और लागू किया जाना चाहिए।

Google के अधिग्रहण के बाद, फायरबेस मोबाइल ऐप्स के डेवलपर्स के लिए एक मंच बनने के लिए विकसित हुआ, जो अपने स्वयं के बैकएंड को तैनात करने के लिए (या आवश्यकता नहीं) नहीं कर सकते थे। जबकि अधिकांश सेवाएँ काफी ट्रांसवर्सल हैं: स्टोरेज, लॉगिन, एनालिटिक्स और संदेश सेवा, यह सच है कि यह क्लाउड फ़ंक्शंस (एक प्रकार का मेमना) भी प्रदान करता है जिसका उपयोग कुछ व्यावसायिक-विशिष्ट नियमों को करने के लिए किया जा सकता है। हालाँकि, एंटरप्राइज़ अनुप्रयोगों या किसी जटिल डोमेन और व्यावसायिक तर्क के साथ बड़े अनुप्रयोगों के लिए, इस तरह का समर्थन कम होता है।

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

प्रश्न: अगर किसी दिन मैं भविष्य में किसी मोबाइल ऐप को फ्रंट-एंड करना चाहूंगा, तो मुझे बिजनेस लॉजिक कोड की नकल करनी होगी?

जरुरी नहीं। यदि वेब एप्लिकेशन को कोणीय पर बनाया गया है, तो NativeScript जैसे क्रॉस प्लेटफॉर्म आपको वेब घटकों, लिबास, यूटिलिटीज, मॉडल आदि का पुन: उपयोग करने की अनुमति दे सकते हैं। मैंने इस विषय में विलंब नहीं किया है, इसलिए मैं आपको पूर्ण संगतता का आश्वासन नहीं दे सकता। टाइपस्क्रिप्ट , कोणीय और नेटिवस्क्रिप्ट दोनों पर कुंजी देता है , हमें टीएस पर कोड करने की आवश्यकता होती है।

मामला तब है जहां अपने वितरण और संस्करण के लिए जावास्क्रिप्ट की मेजबानी करना है । एक शब्द CDN

प्रश्न: मुझे लगता है कि विकल्प एक बैकएंड बनाना होगा जिसमें व्यावसायिक तर्क शामिल हैं और अपने डेटा भंडारण के लिए फायरबेस का उपयोग करता है, लेकिन यह थोड़ा अजीब लगता है (क्या मैं सीधे अपने बैकेंड में एक ORM या कुछ का उपयोग नहीं कर सकता) बहुत अधिक काम के बिना परिणाम?)

कुछ विचार।

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

दूसरी ओर, हमारा बैक-एंड होना एक साधारण कारण के लिए उपयोगी है, डिकॉउलिंग

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

प्रश्न: लोग आमतौर पर इस तरह के ऐप को कैसे बनाते हैं, अगर वे उदाहरण के लिए फायरबेस का उपयोग करना चाहते हैं?

यह परियोजना से परियोजना में व्यापक रूप से भिन्न होता है। उदाहरण के लिए, हम फायरबेस + बैक-एंड का उपयोग करते हैं।

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

  • फायरबेस क्लाउड मैसेज हमें अपस्ट्रीम / डाउनस्ट्रीम पुश नोटिफिकेशन और विषय प्रदान करता है। हम पब / उप संदेश विनिमय के लिए सेवा का उपयोग करते हैं।

  • फायरबेस एनालिटिक्स ज्यादातर मैट्रिक्स के लिए।

  • व्यवसाय से संबंधित हर चीज के लिए बैक-एंड


1

संक्षिप्त उत्तर: व्यावसायिक तर्क का उपयोग न करें।

दीर्घ उत्तर: आप एक ऐसे अनुप्रयोग का वर्णन करते हैं जो एक छोटा सा लगता है जिसमें एक अलग व्यावसायिक तर्क नहीं है; मूल्यांकन करें कि क्या आपके पास वास्तव में पहली बार ऐसा व्यावसायिक तर्क है; बहुत सारे व्यावसायिक तर्क डेटा डिज़ाइन द्वारा कम किए जा सकते हैं, और प्रस्तुति परत द्वारा थोड़ा सा। कई छोटे सिस्टम ज्यादातर CRUD होते हैं और इनमें कोई वास्तविक व्यावसायिक तर्क नहीं होता है; बहुत बार मैंने कक्षाओं की दो या तीन परतों को देखा है जो कि भविष्य में कभी नहीं आने वाली जगह को छोड़ने वाली बस वस्तुओं की जगह हैं।

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


मैं इस बात से सहमत नहीं हूं। मैंने इस उद्योग में 20 वर्षों तक काम किया है, और मेरे हिस्से को छोटे CRUD अनुप्रयोगों में काम किया है, लेकिन लगभग हमेशा कुछ व्यावसायिक तर्क होते हैं। यहां तक ​​कि अगर यह सिर्फ कस्टम सत्यापन या कर गणना है, तो हमेशा कुछ होता है।
जूल्स

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

0

देख /programming/54994228/how-to-minimise-firebase-function-latency

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

उसके बाद, क्लाउड फ़ंक्शंस का उपयोग करें जिन्हें क्लाउड फायरस्टोर ट्रिगर से कहा जाता है।

आप कभी भी एक फ़्रंट-एंड एप्लिकेशन से क्लाउड फ़ंक्शन को कॉल नहीं कर सकते।

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