Frage

Ich habe mit Rx auf ein neues Finanzanalyse-Projekt, das asynchron alle Daten empfängt. Ich habe auf meine persönliche Produktivität ziemlich erstaunt und wie viel verständlicher mein Event-basierten Code ist (im Gegensatz zu dem Vorgängermodell von Event-Handler im Gegensatz mit komplexen verschachtelten ifs und zufällige Zustandsvariablen überall.). Hat sonst noch jemand eine Chance, mit ihm zu spielen, und wenn ja, was einige Ihrer Gedanken sind?

War es hilfreich?

Lösung

Ich glaube, die Reactive Extensions dramatisch einige Teile komplexer, ereignisgesteuerte Programmierung vereinfachen, aber das Problem als Ganzes nicht „gelöst“.

Es hat viele Situationen umgehen ist eine viel saubere, elegante Art und Weise als bisher möglich. Allerdings ist es nicht (unbedingt) immer Hilfe auf der Erzeugerseite einiger asynchronen Muster, in dem ereignisgesteuerte Programmierung immer noch schwierig ist. Rx wirklich konzentrierte sich das Abonnement Seite der Veranstaltung zur Handhabung, aber nicht unbedingt die Herstellung von Seite der Gleichung.

Für einige verschiedene Proben und eine Vorstellung davon, was für zukünftige Versionen von C # in Betracht gezogen wird einige der komplexeren asynchronen Modelle zu handhaben, würde ich empfehlen, aufpassen PDC Diskussion Luca Bolognese. Er stellte einige Ideen das Sprachteam auf der Authoring-Seite der asynchronen Entwicklung auf, um Hilfe zu arbeiten, wie ein „Iterator“ wie Syntax ein IAsync<T> direkt zu erzeugen, mit der Sprache verfügt über die Erzeugung der Ereignisse zu unterstützen.

Andere Tipps

http: //channel9.msdn .com / posts / DC2010T0100-Keynote-Rx-härtende-your-asynchron-Programmierung-Blues , Bart de Smet hervorragend erklärt, wie Event-Handling-Streams als ein First-Class-Konzept die Abstraktionsebene wirft, indem sie denken Sie über wie Sie implementieren zB. Drossel oder DistinctUntilChanged jedes Mal unbedingt mit vielen fehleranfällig Standardcode. Diese Operatoren kapseln diese Verhaltensweisen in einer wieder verwendbaren und zusammensetzbare Art und Weise. Also meiner Meinung nach ist, dass es auf jeden Fall Raum für weitere Entwicklung ist (siehe zum Beispiel die Sorge um Kälte Observablen), aber diese Werkzeuge sollten in jedem Entwickler-Toolbox. Die üblichen Kontrollfluss-Konstrukte schneiden können es für Single-Threaded-Ausführung, aber in der heutigen sehr gleichzeitige verteilte Welt, ich glaube, beobachtbare (oder noch besser, Event / Property) ist eine richtige Abstraktion.

Ich habe gerade einen Webcast auf RX Erweiterungen gesehen, nicht mit ihm gespielt, und fand die Erklärung zu kompliziert ... Ich dachte, die Schöpfer Architekten Astronauten waren.

Im Moment sehe ich einfach nicht, wo das Problem mit klassischem Event-Handler ist ... Ich habe immer elegante Lösung gefunden, wenn ich die asynchrone Kommunikation zwischen einem Client und einem Dienst verwenden musste.

Allerdings bin ich neugierig mit Erfahrungen von anderen Menschen mit diesem Rahmen je nach Antworten dieses Threads, werde ich es geben noch einmal zu versuchen.

Nein. Das Problem der komplexen ereignisgesteuerte Programmierung ergibt sich aus der Tatsache, dass jede komplexe ereignisgesteuerte Berechnung mit einem dynamischen zyklischen Graphen dargestellt wird. Das Diagramm kann nicht bequem mit dem linearen Programmierung Text dargestellt werden. Der einzige Ausweg ist es, mehrere Tools zu haben, Textprogrammdarstellung zur visuellen graphischen Form zu konvertieren und umgekehrt, und das Programm Korrektheit dynamisch und statisch zu überprüfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top