Ktoś może podać praktyczne przykłady tego?
Chat? Google Spreadsheets? real time?
Reactive programming może być (prawie) wszędzie.
Scala + Akka + Slick (baza danych) wszystko wewnątrz frameworka Play!
Prosty z życia wzięty przykład:
rest api w wykonaniu Play!
controller przyjmuje request, daje znać do aktora (ask -> zwraca future) do np pobrania danych z bazy -> aktor przekazuje zapytanie do bazy danych (slick), który zwraca future (albo stream, jeśli ktoś chce/potrzebuje), wszystko asynchronicznie wraca do controllera jako future, który na przyjście future zwraca dane do klienta, a jak future będzie failed to wykona jakąś tam inną akcję.
Piszę reactive od około 2lat i od czasu jak zacząłem tak pisać razem ze scalą, to
-nie ma pętli for (za wyjątkiem for comprehension w scala:) )
- if'ów prawie nie ma
- zapomniałem co to jest nullpointerexception
- kod jest bardziej zwarty, prostszy do refactorowania.
Jeden duży minus - próg wejścia w reactive (o scali nie wspomnę) dla ludzi, którzy od dawna piszą "normalnie" jest dość duży. Trzeba przestawić myślenie na zupełnie inne tory. Ale bardzo warto.... I na pewno nie jest łatwo używać tego w już istniejących systemach.
niezdecydowanyniezdecydowanyniezdecydowany