2010-01-15 2 views
8

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

उत्तर

11

मेरा मानना ​​है कि प्रतिक्रियाशील एक्सटेंशन जटिल, घटना संचालित प्रोग्रामिंग के कुछ हिस्सों को नाटकीय रूप से सरल बनाते हैं, लेकिन पूरी तरह से समस्या "हल" नहीं होती है।

यह कई परिस्थितियों को संभालता है जो पहले से कहीं अधिक स्वच्छ, अधिक सुरुचिपूर्ण तरीका है। हालांकि, यह (अनिवार्य रूप से) कुछ असीमित पैटर्न के पीढ़ी के पक्ष में हमेशा मदद नहीं करता है, जहां घटना संचालित प्रोग्रामिंग अभी भी मुश्किल है। आरएक्स वास्तव में घटना के सदस्यता पक्ष को संभालने पर केंद्रित है, लेकिन जरूरी नहीं कि समीकरण के उत्पादन पक्ष।

कुछ विशिष्ट नमूनों के लिए, और सी # के भविष्य के संस्करणों के बारे में क्या विचार किया जा रहा है, इसका विचार कुछ जटिल एसिंक्रोनस मॉडल को संभालने के लिए, मैं Luca Bolognese's PDC Talk देखने की अनुशंसा करता हूं। उन्होंने कुछ विचार प्रस्तुत किए जो भाषा टीम घटनाओं की पीढ़ी का समर्थन करने के लिए भाषा सुविधाओं के साथ सीधे IAsync<T> का उत्पादन करने के लिए सिंटैक्स जैसे "इटरेटर" जैसे एसिंक्रोनस विकास के संलेखन पक्ष में मदद करने के लिए काम कर रही है।

+0

रीड, हमेशा के रूप में उत्कृष्ट उत्तर। आपने मुझे यह भी महसूस किया कि मुझे घटनाओं के उपभोक्ताओं के रूप में सामना करने वाली कठिनाइयों को दर्शाने के लिए मेरे प्रश्न को कैलिब्रेट करना चाहिए, जिसमें बहुत मुश्किल सिंक्रनाइज़ेशन शामिल है, और क्या आरएक्स उन चिंताओं को संबोधित करता है। – Pierreten

0

मैंने अभी आरएक्स एक्सटेंशन पर एक वेबकास्ट देखा है, इसके साथ नहीं खेला है, और स्पष्टीकरण बहुत जटिल पाया है ... मैंने सोचा कि निर्माता आर्किटेक्ट अंतरिक्ष यात्री थे।

अभी के लिए मुझे नहीं लगता कि क्लासिक इवेंट हैंडलर के साथ समस्या कहां है ... मुझे हमेशा क्लासिक और सेवा के बीच एसिंक्रोनस संचार का उपयोग करने के लिए सुरुचिपूर्ण समाधान मिल गया है।

हालांकि मैं इस धागे के उत्तरों के आधार पर इस ढांचे के साथ अन्य लोगों के अनुभवों से उत्सुक हूं, मैं इसे एक और प्रयास दूंगा।

+1

कोई समस्या नहीं है, बस आरएक्स इसे आसान बनाता है। उदाहरण के लिए, इसे संसाधित करने के लिए खींचें और छोड़ें, आपको अपने ईवेंट में ध्वज के चारों ओर गुज़रना होगा कि माउस बटन क्लिक किया गया है या नहीं। आरएक्स के साथ आप माउस डाउन, अप, मूव इत्यादि की सदस्यता ले सकते हैं और घटना के लिए घटना में ध्वज पास करने की आवश्यकता के बिना ईवेंट को संसाधित करने के लिए LINQ का उपयोग करने के बजाय। – epitka

1

http://channel9.msdn.com/posts/DC2010T0100-Keynote-Rx-curing-your-asynchronous-programming-blues में, बार्ट डी स्मेट उत्कृष्ट रूप से बताता है कि कैसे प्रथम श्रेणी की अवधारणा के रूप में हैंडलिंग इवेंट स्ट्रीम आपको इस तरह के कार्यान्वयन के बारे में सोचने के द्वारा अमूर्तता का स्तर बढ़ाती है। थ्रॉटल या डिस्टिंट अनलिट हर बार अनिवार्य रूप से त्रुटि-प्रवण बॉयलरप्लेट कोड के साथ बदल दिया जाता है। ये ऑपरेटर इन व्यवहारों को एक पुन: प्रयोज्य और संगत तरीके से समाहित करते हैं। तो मेरी राय यह है कि आगे के विकास के लिए निश्चित रूप से जगह है (उदाहरण के लिए ठंडे अवलोकनों के बारे में चिंताओं को देखें), लेकिन ये उपकरण हर डेवलपर के टूलबॉक्स में होना चाहिए। सामान्य नियंत्रण प्रवाह संरचनाएं इसे एकल-थ्रेडेड निष्पादन के लिए काट सकती हैं, लेकिन आज की अत्यधिक समवर्ती, वितरित दुनिया में, मुझे लगता है कि अवलोकन (या इससे भी बेहतर, इवेंटस्ट्रीम/संपत्ति) एक उचित अमूर्त है।

संबंधित मुद्दे