Zastanawiam się nad wprowadzeniem Rx do mojego miejsca pracy, ale im więcej się o tym dowiaduję, tym bardziej uważam, że tak naprawdę nie daje to przewagi.Gdzie należy użyć Rx?
Mamy wiele aplikacji serwerowych, które pobierają dane wejściowe na jednym końcu i wyprowadzają je na drugim końcu. Co jest idealne dla modelu aktora i "nieskończonej" gwintowania skalowalności, do tej pory używałem ConcurrentQueues do implementacji przekazywania komunikatów i myślałem, że Rx może być dobrą, bardziej funkcjonalną alternatywą, która może sprawić, że współbieżność będzie bardziej niejawna, co pomoże mi przesunąć część decyzje dotyczące przepływu danych z imperatywnego kodu do deklaracji obserwowalnych.
Ale czytając o tym i próbując go, nie widzę dużej przewagi nad używaniem zwykłych starych wątków z ConcurrentQueues do przekazywania wiadomości. Jakie korzyści daje mi Rx? Zawsze mówi się, że nawet .NET 4.5 powodował, że wiele przestarzałych Rx (choć asynchronicznych i Dataflow) nadal nadaje się do obsługi strumieni zdarzeń. Jakie przypadki przedstawiają strumienie zdarzeń i jak je identyfikować?
Można znaleźć zastosowanie Netflix za RX woth patrząc, wygląda na to, że działa dobrze dla nich https://blogs.msdn.com/b/interoperability/archive/2013/02/05/netflix-solving-big-problems-with-reactive-extensions-rx.aspx – Wilka
Jako (bardzo szorstka) zasada, jeśli masz do czynienia z pojedynczymi wartościami, użyj aplacji TPL/Task; jeśli masz do czynienia z sekwencjami "zdarzeń" (rodzajowe "coś", a nie tylko zdarzenia .net), użyj rx. Przepływ danych Jestem mniej znany, musiałbym o tym pomyśleć. – JerKimball