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.
Odpowiedzi:
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.
źródło