Sto lavorando su un'applicazione che è essenzialmente una calcolatrice, non il calcolatore palmare ma più un foglio di calcolo. Ci vorranno molti input attraverso diversi punti di vista e mostreremo le uscite dappertutto.
L'applicazione eseguirà molti calcoli. Questi calcoli dipendono principalmente dagli input dati dall'utente, ma possono anche dipendere dai risultati di altri calcoli.
Un altro requisito è che i calcoli offerti all'utente possono essere modificati in uno stile CMS. Ciò significa che all'avvio dell'applicazione caricheranno i calcoli e i relativi input necessari da un file chiamato contenuto dei calcoli.
Gli output dovrebbero essere sempre aggiornati, nel senso che se un utente aggiorna un valore, i calcoli che dipendono da questo input dovrebbero essere eseguiti di nuovo, inviando l'output ai suoi calcoli dipendenti e così via.
Finora, ho concepito un grafico diretto di calcoli in cui la relazione genitore-figlio rappresenta l'input e i suoi calcoli dipendenti. In questo modo, il processo che esegue un calcolo sarà in grado di verificare se ha dipendenti e di eseguirli.
Il problema con questo modello è che può portare a calcoli duplicati. Se un ingresso A ha due dipendenti B e C e un calcolo D dipende sia da B che da C, allora quando A viene aggiornato, D e i suoi dipendenti gireranno due volte.
Potrebbe valere la pena sapere che l'applicazione è costruita con un'architettura Redux su Javascript.