रिएक्टिव एक्सटेंशन्स का अच्छा उदाहरण [बंद]


81

मैं आरएक्स की मूल बातें समझता हूं। जहां मैं संघर्ष कर रहा हूं कि आप वास्तव में अकादमिक उदाहरणों से परे इसका उपयोग कैसे करेंगे? कुछ सामान्य, सरल वास्तविक दुनिया के परिदृश्य क्या हैं जहाँ Rx .NET में हमारे पास आज की तुलना में बेहतर समाधान है?



2
मैं अपने ब्लॉग पर पोस्ट की एक श्रृंखला में वास्तव में इस सवाल का जवाब देता हूं: rehansaeed.co.uk/reactive-extensions-part1-replacing-events
मुहम्मद रेहान सईद

1
कृपया github.com/AdaptiveConsulting/ReactiveTraderCloud पर एक नज़र डालें । मुझे लगता है कि यह एक अच्छा उदाहरण है क्योंकि उन्होंने अपने नमूने के लिए बहुत अधिक प्रतिक्रियाशील विस्तार का उपयोग किया है। चीयर्स!
thangchung

जवाबों:


40

अच्छे उदाहरणों के एक समूह के लिए , 101 Rx नमूने विकी देखें


13
लिंक के लिए धन्यवाद। वहाँ कुछ बहुत अच्छे नमूने हैं। अभी भी काफी नहीं है कि सिर कीचड़ - "ओह, कि विहित समस्या इस हल" नमूना है। तो फिर, क्या बस मुझे धीमे-धीमे उठना पड़ सकता है।
कीथ हिल

9
हेम ... अपने उच्च स्कोर के बावजूद, यह उत्तर "लिंक-ओनली" बना हुआ है। क्या आप शायद इसे थोड़ा बाहर निकाल सकते हैं?
जुब

क्या वे अकादमिक नहीं हैं ?
लेई यांग

28

आरएक्स आपको कोड लिखने की अनुमति देता है जो समवर्ती घटनाओं को एक साथ ऑर्केस्ट्रा करता है। यदि आपने कभी टीपीएल (यानी टास्क) का उपयोग किया है, तो कंटीन्यूड बैकफ्लिप्स को कंटीन्यू करने के लिए कंट्राविथ या वेटअल्स के साथ सही चीजों पर प्रयास करना होगा, आरएक्स आपके लिए है।

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

प्रकटीकरण, बेशर्म प्लग आगे: जेसी लिबर्टी और मैंने आरएक्स के बारे में जो पुस्तक लिखी थी, वह इस सवाल को हल करने के लिए डिज़ाइन की गई थी, "मैं अपने दिन के काम में आरएक्स का उपयोग कैसे करूं?" "मैं इसके साथ क्या कर सकता हूं ?"


इसने यह स्पष्ट कर दिया कि मुझे जरूरत है या Rx
शीतदंश

25

सबसे पहले, IObservable एक घटना है । तो कहीं भी आप आंतरिक रूप से घटनाओं का उपयोग करते हैं, तो आप IObservable का उपयोग कर सकते हैं - और यदि आपको बाद में इस घटना में LINQ लागू करने की आवश्यकता है, तो आप इसे बिना रीफ़ैक्टरी के कर सकते हैं।

दूसरे, आरएक्स किसी भी स्थिति के लिए फिट है जब आपको अपने कोड को अतुल्यकालिक रूप से चलाने की आवश्यकता होती है । उदाहरण के लिए, एक वेब सेवा को कॉल करना, या एक बड़ी छवि को लोड करना।

लेकिन जब यह वास्तव में चमकना शुरू हो जाता है - यदि आपका कार्यक्रम IObservable उपयोग के कुछ "महत्वपूर्ण द्रव्यमान" तक पहुंचता है और आप विभिन्न वेधशालाओं को संयोजित करना शुरू करते हैं तो आप चकित हो जाएंगे कि कुछ कार्य कितने आसान हो जाते हैं।


5
  • डिवाइस का मापन
  • एक संदेश बस में आने वाला डेटा

अब दोनों मामलों में, डेटा प्राप्त करने का मानक तरीका घटनाओं के माध्यम से है, लेकिन अगर मुझे क्वेरी सिंटैक्स, या रचना चाहिए, तो आरएक्स मुझे देता है जहां इवेंट नहीं होते हैं।


2

Rx बहुत सामान्य है, इसलिए इसमें असीमित उपयोगिता है, जैसे IEnumerable / IEnumerator में असीमित उपयोगिता है। IE मूल्यों को खींचता है, IO मूल्यों को धक्का देता है।

फॉरच एक ठोस उदाहरण है जहां IEnumerables काम में आते हैं, लेकिन यह IEnumerable, या उपज या कुछ भी नहीं समझाता है। वही आरएक्स के साथ जाता है।

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


0

मैंने अभी-अभी Rx पर अपनी पहली नज़र डाली है, लेकिन एक मज़ेदार परियोजना जिसका उपयोग मैं इसके लिए करूँगा, वह है एक सिल्वरलाइट विजेट बनाना जो हमारे ASP.NET MVC वेब ऐप में गतिविधि प्रदर्शित करता है (जिसे एक्शन मेथड्स कहा जाता है, जिसके द्वारा उपयोगकर्ता, आदि) । ऐसा लगता है कि Rx इस परियोजना में बहुत सी चीज़ों की मदद कर सकता है, जैसे कि संगामिति प्रबंधन और थ्रॉटलिंग।

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