Ha senso applicare i principi di Redux alle lingue OO?


9

Redux è essenzialmente una programmazione funzionale e ha molto senso. Mentre torno a un linguaggio OOP non javascript in un progetto diverso, vorrei applicare gli stessi principi come oggetto a stato singolo, riduttori che agiscono su parti di quello stato, un livello aziendale di azioni semantiche per modificare lo stato.

Il mio progetto è in C ++ e voglio sapere se ha senso provare ad applicare un approccio funzionale in stile redux alla progettazione dell'applicazione. Le prestazioni non sono super critiche per questa app, ma lo è la manutenibilità.

Quali difficoltà dovrei affrontare progettando la mia app in questo modo?


Dovrei aggiungere che questa non è un'app GUI. E a pensarci di più, forse redux ha ridotto i vantaggi in un'applicazione non GUI poiché non c'è alcun effetto visivo diretto dell'aggiornamento dello stato dell'applicazione.


Il ragazzo che ha fatto il redux dice di avere un'implementazione ES6, che è essenzialmente Javascript orientato agli oggetti.
Robert Harvey,

1
Ho cercato di farlo in Java qualche tempo fa. Puoi farlo funzionare; Java 8 e C ++ 11 sono almeno "funzionali" come Javascript. Ma il sistema di tipo statico può rendere le cose un po 'brutte. A proposito, non limitato alle GUI; L'approccio di Redux è estremamente simile a come Clojure gestisce lo stato sotto concorrenza, che non è affatto legato alle GUI.
Torisuda,

Risposte:


5

Gli stili funzionali di programmazione tendono ad essere in qualche modo riutilizzabili praticamente ovunque con la giusta mentalità. L'idea generale di applicare i paradigmi tra le lingue è ciò che Steve McConnell definisce in Code Complete "programmazione in una lingua". Per lo più, ho voluto sottolineare che il desiderio di applicare le lezioni apprese attraverso la lingua e il paradigma incrociato è davvero il segno di qualcuno che vede la lingua come mezzo di espressione. È sorprendente quanti sviluppatori non abbiano mai raggiunto questo punto.

Come hai sottolineato, la filosofia di Redux è mirata allo sviluppo dell'interfaccia utente. È difficile immaginare troppi scenari in cui il rilevamento delta di stato è utile in ambienti non UI. Dipende davvero dal tuo problema, comunque. Se l'approccio semplifica la comprensione e la manutenzione della soluzione complessiva, è probabilmente una buona soluzione. L'approccio generale adottato da Redux è molto simile al journal delle transazioni nella maggior parte dei RDBMS, quindi potrebbe essere vero che l'approccio esistesse prima di JavaScript.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.