माइक्रोसर्विसेज में शिफ्टिंग रन-टाइम की समस्या कैसे पैदा करती है?


104

निम्न टिप्पणीकार लिखते हैं :

माइक्रोसॉफ़्ट अपने संगठनात्मक शिथिलता को एक संकलन समय समस्या से एक रन टाइम समस्या में स्थानांतरित करते हैं।

यह टिप्पणीकार इस मुद्दे पर कहता है:

फ़ीचर बग नहीं। रन टाइम प्रॉब्लम => ठेस मुद्दे => जिम्मेदार लोगों को शिथिलता के बारे में मजबूत, तेज प्रतिक्रिया

अब मुझे लगता है कि आप के साथ microservices :

  • संभावित रूप से आपके थ्रू-पुट की विलंबता बढ़ जाती है - जो एक उत्पादन और रन-टाइम चिंता है।
  • अपने कोड में "नेटवर्क इंटरफेस" की संख्या बढ़ाएँ जहाँ पार्सिंग की संभावित रन-टाइम त्रुटियाँ हो सकती हैं।
  • संभावित रूप से नीले-हरे रंग की तैनाती कर सकते हैं। जिन्हें इंटरफेस बेमेल (नेटवर्क इंटरफेस देखें) द्वारा आयोजित किया जा सकता है। लेकिन अगर नीली-हरी तैनाती काम करती है तो यह एक रन-टाइम चिंता का विषय है।

मेरा सवाल यह है: इसका क्या मतलब है कि माइक्रोसर्विस में स्थानांतरण एक रन-टाइम समस्या पैदा करता है?


13
यदि A एक मोनोलीथ में B से बातचीत करता है, तो कम से कम वास्तविक इंटरफ़ेस को संगत (स्थिर टाइपिंग के माध्यम से) साबित किया जा सकता है, जिससे यह अधिक संभावना है कि यह सही भी है। आमतौर पर माइक्रोसिस्टर्स ऐसे संकलन समय की जांच के बिना किसी चीज पर संवाद करते हैं
रिचर्ड टिंगल

यदि आप microservices के उपयोग से जुड़ी समस्याओं को हल कर रहे हैं तो Fowler लेख अवश्य पढ़ें। martinfowler.com/articles/microservices.html मेरा मानना ​​है कि केवल संकलन समय बनाम रनटाइम का मामला नहीं है जैसा कि @ रिचर्ड टिंगल ने कहा। और वास्तव में इस बात से सहमत नहीं हैं कि उत्पादन मुद्दा होना बेहतर है कि विकास में एक। लेकिन माइक्रोसर्विस अन्य तरीकों से बड़ी परियोजनाओं को स्केल करने में मदद कर सकते हैं। (और अधिकांश छोटी परियोजनाओं के लिए एक ओवरकिल है)
बोरबज़

2
वह टीकाकार अदूरदर्शी है। रन टाइम प्रॉब्लम => प्रोडक्ट्स की समस्या => नाखुश उपयोगकर्ता => खोए हुए पैसे।
फिलिप

@ झिलिप: यही बात है। संगठनात्मक शिथिलता के कारण संकलन समय की समस्याएं => किसी को परवाह नहीं है। संगठनात्मक शिथिलता के कारण खो गया धन => ठीक वैसे ही दुख देता है जो कि संगठनात्मक शिथिलता के लिए जिम्मेदार है। आशा: संगठनात्मक शिथिलता तेजी से ठीक हो जाती है।
जॉर्ग डब्ल्यू मित्तग

जवाबों:


194

मुझे एक समस्या है। चलो माइक्रोसिस्टिस का उपयोग करें! अब मेरे पास 13 वितरित समस्याएं हैं।

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

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

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

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


13
@JacquesB मुझे विश्वास है कि "संगठनात्मक शिथिलता" एक प्रणाली को विकसित करने में असमर्थता को संदर्भित करती है। मेरे जवाब का अधिकांश हिस्सा यह वर्णन करने के लिए संदर्भ है कि कोई व्यक्ति इस तरह के निष्कर्ष पर कैसे पहुंच सकता है, लेकिन मेरी पेशेवर राय है और ट्वीट से नहीं लिया गया है।
आमोन

10
"मोनोलिथ जिसे सफाई से घटकों में विभाजित किया गया है" - इसका मतलब क्या है?

10
और इंटरफेस के संस्करण की बात नहीं (समय के साथ बदलते इंटरफेस)।
पीटर मोर्टेंसन

12
@ मोबीलिंक मोनोलिथ यहां एक आदर्श शब्द नहीं है क्योंकि यह "नो आर्किटेक्चर" का सुझाव देता है। लेकिन जो मैं व्यक्त करने की कोशिश कर रहा हूं वह एक ऐसी प्रणाली है जो सेवा-उन्मुख वास्तुकला के विपरीत एकल प्रणाली के रूप में विकसित और तैनात की जाती है, जहां सिस्टम के कुछ हिस्सों को स्वतंत्र रूप से तैनात किया जा सकता है। कृपया संपादित पोस्ट करता है, तो आप एक बेहतर अवधि पता है ...
आमोन

7
@ मानोन शब्द सुनकर मोनोलिथ तुरंत "नो आर्किटेक्चर" के विचार को स्वीकार नहीं करता है। अधिकांश इमारतें मोनोलिथ हैं, जैसा कि मिस्र के महान पिरामिड और कई अन्य सामान हैं। स्पष्ट रूप से वे वास्तुशिल्प थे, और एक पूरे के रूप में वितरित किए गए थे। कई सॉफ्टवेयर सिस्टम में अच्छे आर्किटेक्चर की कमी होती है; लेकिन अच्छे आर्किटेक्चर की कमी से लगता है कि वे कैसे तैनात हैं। आप किसी अन्य परियोजना के मचान से कुछ उधार ले सकते हैं और इसे वास्तुकला (3-स्तरीय, 2-स्तरीय, एन-टायर, माइक्रोसर्विस इत्यादि) कह सकते हैं, लेकिन ऐसा करने से आपको विश्वास नहीं होता कि आपने इसे अच्छी तरह से किया है।
एडविन बक

215

पहला ट्वीट मेरा था, इसलिए मैं इस पर विस्तार करूंगा:

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

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

दुर्भाग्य से यह "रन टाइम प्रॉब्लम" बन जाता है क्योंकि एक बार जब सॉफ्टवेयर उत्पादन में चल रहा होता है, तो अच्छा संचार उतना ही महत्वपूर्ण हो जाता है। संगठन के साथ समस्याएं - टीमों और वे कैसे गठबंधन और संचार करते हैं - "रन टाइम" पर प्रकट होते हैं।

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


67
+1। यह एक ट्वीट के रूप में स्टैक एक्सचेंज के उत्तर के रूप में बहुत बेहतर है। :-)
रुख

3
वास्तव में किसी भी गतिशील प्रणालियों के लिए भी यही सच है। डायनामिक टाइपिंग बहुत उपयोगी है, लेकिन केवल अगर आपके पास सही लोग हैं। "फ़्रीफ़ॉर्म डेटाबेस" बहुत उपयोगी हैं, लेकिन केवल अगर आपके पास सही लोग हैं। यदि आपके पास सही लोग नहीं हैं, तो आप समस्याओं को हल कर रहे हैं, उन्हें हल नहीं कर रहे हैं।
लुआं

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

10
@ luk32 आंशिक रूप से, हां, लेकिन खराब टीमों के लिए इसे आकर्षक बनाने वाले माइक्रोसर्विस का जिक्र यह है कि आप अपने कौशल और संचार घाटे को लंबे समय तक किसी ओर का ध्यान नहीं देते हैं। यह समस्या है या नहीं होने की बात नहीं है, इस बारे में है कि वे कब दिखाएंगे
टी। सारा

18
बहुत अच्छा जवाब। लोगों को उत्तेजित करने के अलावा ट्विटर की मेरी राय की पुष्टि करने के लिए धन्यवाद।
रॉबर्ट हार्वे

43

मेरा सवाल यह है: इसका क्या मतलब है कि माइक्रोसर्विस में स्थानांतरण एक रन-टाइम समस्या पैदा करता है?

यही नहीं वो ट्वीट क्या कह रहे हैं! वे माइक्रोसर्विसेज में शिफ्टिंग के बारे में कुछ नहीं कहते हैं , न ही समस्याएँ पैदा करने के बारे में कुछ कहते हैं । वे केवल समस्याओं को स्थानांतरित करने के बारे में कुछ कहते हैं ।

और वे अपने बयानों पर एक प्रासंगिक प्रतिबंध लगाते हैं, अर्थात् आपका संगठन शिथिल है।

तो, पहला ट्वीट मूल रूप से क्या कह रहा है दो बातें हैं:

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

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

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


6
@ मिचेल यदि आप यह नहीं देख सकते हैं कि वे कोड गुणवत्ता को कैसे प्रभावित करते हैं, तो शायद इस बात पर विचार करें कि यदि कोई प्रबंधन उनके उत्पादों के निर्माण के गुणवत्ता के किसी भी हिस्से पर है तो क्या प्रभाव पड़ता है।
wjl

30
@ मिचेल: सब कुछ अंततः उच्च-स्तरीय प्रबंधन के कारण होता है। क्या कम समय की गुणवत्ता असंभव समय सीमा के कारण है? उन समयसीमा को कौन तय करता है? उन लोगों को कौन बताता है जो उन समय सीमा को निर्धारित करते हैं? कम कोड की गुणवत्ता अक्षम डेवलपर्स के कारण है? उन अक्षम डेवलपर्स को किसने काम पर रखा है? उन अक्षम डेवलपर्स को काम पर रखने वालों को किसने काम पर रखा है? क्या यह अपर्याप्त टूलींग के कारण होता है? उन उपकरणों को कौन खरीदता है? उन उपकरणों को खरीदने के लिए बजट को कौन मंजूरी देता है? यह बेवकूफ वास्तुकला के कारण होता है? आर्किटेक्ट को किसने रखा? उसे किसने लगाया? वे ट्वीट विशेष रूप से संदर्भ में थे ...
जोर्ग डब्ल्यू मित्तग

13
... संगठनात्मक शिथिलता। खैर, संगठन कार्य करना उच्च स्तर के प्रबंधन का काम है। यही प्रबंधन है
जोर्ग डब्ल्यू मित्तग

4
यद्यपि यह संभवतः दीर्घकालिक में काम करेगा, लेकिन आपकी कंपनी के मुद्दों को हल करने का विचार उन्हें ग्राहकों को प्रभावित करने के लिए सही नहीं लगता है।
स्टिजन डे विट

1
@ JörgWMittag मुझे नहीं लगता कि यह दावा करना उचित है कि खराब डेवलपर्स द्वारा लिखा गया बुरा कोड उन लोगों की गलती है जो उन बुरे डेवलपर्स को काम पर रखते हैं न कि खुद बुरे डेवलपर्स को। यह अंततः प्रबंधन की जिम्मेदारी हो सकती है, लेकिन यह डेवलपर्स के कारण होता है।
मील्स राउत

9

यह संकलन -समय की समस्या के विपरीत रन-टाइम समस्या पैदा करता है।

एक अखंड ऐप संकलन के लिए कठिन और महंगा है। लेकिन एक बार जब यह संकलित हो जाता है तो आप यह निश्चित रूप से सुनिश्चित कर सकते हैं कि घटकों के बीच कोई अत्यंत मूर्खतापूर्ण असंगति मौजूद नहीं है, क्योंकि प्रकार प्रणाली उन्हें पकड़ सकती है। माइक्रोसिस्टिव की प्रणाली में एक ही त्रुटि तब तक दिखाई नहीं दे सकती है जब तक कि दो विशिष्ट घटक वास्तव में एक विशिष्ट तरीके से बातचीत नहीं करते हैं।


9
ऐसा लगता है कि "अखंड" अनुप्रयोग हमेशा सांख्यिकीय रूप से टाइप किए जाते हैं। गतिशील रूप से टाइप की गई भाषाओं के बारे में क्या? और सांख्यिकीय रूप से टाइप किए गए सेवा इंटरफेस के बारे में क्या?
जैक्सबी

1
@JacquesB OTOH, मैं बिल्कुल शून्य गतिशील रूप से संकलित भाषाओं के बारे में सोच सकता हूं।
इनिबिस

2
@JacquesB जावास्क्रिप्ट और पायथन संकलित नहीं हैं। जब तक आप आंतरिक दुभाषिया संरचनाओं को एक संकलन लक्ष्य के रूप में गिनते हैं, जिस स्थिति में हर भाषा संकलित होती है।
इनिबिस

3
@ इमिबिज़: वर्तमान में मौजूद हर एक ECMAScript कार्यान्वयन में कम से कम एक संकलक होता है। V8, उदाहरण के लिए, दो संकलक हैं और बिल्कुल शून्य दुभाषिया हैं, यह कभी भी व्याख्या नहीं करता है, यह हमेशा द्विआधारी देशी मशीन कोड के लिए संकलित करता है। स्पाइडरमोंकी के चार कंपाइलर हैं, मेरा मानना ​​है, और एक दुभाषिया, लेकिन वह दुभाषिया ECMAScript की व्याख्या नहीं करता है। स्पाइडरमॉन्की कभी भी ECMAScript की व्याख्या नहीं करता है , यह हमेशा स्पाइडरमॉन्की बाईटेकोड के लिए इसे संकलित करता है, जो कि इसके बाद बाइनरी देशी मशीन कोड के लिए संकलित कर सकता है। वर्तमान में सभी मौजूदा पायथन, रूबी, और पीएचपी कार्यान्वयन में कंपाइलर हैं।
जोर्ग डब्ल्यू मित्तग

12
@LieRyan आप गंभीर रूप से उलझन में हैं अगर आपको लगता है कि टाइप इंफ़ेक्शन गतिशील रूप से टाइप किया हुआ है और / या कि हास्केल गतिशील रूप से टाइप किया गया है।
डेरेक एल्किंस

2

मोनोलिथिक सिस्टम और माइक्रोसर्विसेज दोनों में आपको सबसिस्टम के बीच इंटरफेस को परिभाषित करना होगा। इंटरफेस को अच्छी तरह से डिजाइन, अच्छी तरह से प्रलेखित और यथासंभव स्थिर होना चाहिए। यह OOP की तरह ही है।

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

यदि इंटरफ़ेस ठीक से डिज़ाइन नहीं किया गया है, तो आपको दो प्रकार की रनटाइम समस्याएं मिलेंगी:

  1. यदि इंटरफ़ेस का उपयोग सही तरीके से नहीं किया गया है, तो आपको रनटाइम पर एक त्रुटि मिलेगी, संकलन समय पर नहीं।
  2. वेब इंटरफ़ेस को कॉल करना काफी धीमा है, जिससे आपको प्रदर्शन समस्याएं हो सकती हैं।

मुझे लगता है कि रनटाइम मुद्दों का उत्पादन सही तरीके से संचार संगठनात्मक समस्या नहीं है जो जिम्मेदार हैं।

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