Czy ma sens zastosowanie zasad w Redux do języków OO?

9

Redux jest zasadniczo programowaniem funkcjonalnym i ma wiele sensu. Kiedy wracam do języka OOP bez javascript w innym projekcie, chciałbym zastosować te same zasady, takie jak obiekt pojedynczego stanu, reduktory działające na części tego stanu, warstwa biznesowa działań semantycznych w celu modyfikacji stanu.

Mój projekt jest w C ++ i chcę wiedzieć, czy warto zastosować funkcjonalne podejście w stylu redux do projektowania aplikacji. Wydajność nie jest zbyt ważna dla tej aplikacji, ale jest łatwa w utrzymaniu.

Jakie trudności napotkam przy projektowaniu takiej aplikacji?


Powinienem dodać, że to nie jest aplikacja GUI. Zastanawiając się nad tym, być może redux zmniejszyło korzyści w aplikacjach bez GUI, ponieważ nie ma żadnego bezpośredniego efektu wizualnego aktualizacji stanu aplikacji.

tt9
źródło
Facet, który dokonał przebudowy, mówi, że ma implementację ES6, czyli zasadniczo JavaScript zorientowany obiektowo.
Robert Harvey,
1
Jakiś czas temu zastanawiałem się nad zrobieniem tego w Javie. Możesz sprawić, by działało; Java 8 i C ++ 11 są co najmniej tak „funkcjonalne” jak Javascript. Ale system typu statycznego może sprawić, że będzie to trochę brzydkie. Nawiasem mówiąc, w żadnym wypadku nie ogranicza się do GUI; Podejście Redux jest bardzo podobne do tego, w jaki sposób Clojure zarządza stanem w ramach współbieżności, który wcale nie jest związany z GUI.
Torisuda

Odpowiedzi:

5

Funkcjonalne style programowania wydają się być w pewnym stopniu wielokrotnego użytku w dowolnym miejscu z właściwym nastawieniem. Ogólna idea stosowania paradygmatów w różnych językach jest tym, co Steve McConnell określa w Code Complete jako „programowanie w język”. Chciałem przede wszystkim podkreślić, że chęć zastosowania lekcji nabytych w różnych językach i paradygmacie jest naprawdę znakiem kogoś, kto postrzega ten język jako medium do wyrażania. To niesamowite, ilu programistów nigdy nie osiąga tego punktu.

Jak zauważyłeś, filozofia Redux jest ukierunkowana na rozwój interfejsu użytkownika. Trudno wyobrazić sobie zbyt wiele scenariuszy, w których śledzenie delta stanu jest przydatne w środowiskach innych niż interfejs użytkownika. Ale to naprawdę zależy od twojego problemu. Jeśli takie podejście sprawia, że ​​ogólne rozwiązanie jest łatwiejsze do zrozumienia i utrzymania, to prawdopodobnie jest dobre. Ogólne podejście przyjęte przez Redux przypomina większość dzienników transakcji w większości RDBMS, więc może być prawdą, że takie podejście istniało przed JavaScript.

Michał
źródło