Sto costruendo un'applicazione web che ha lo scopo di aiutare a visualizzare i prezzi dei prodotti. L'app web è incentrata sulla visualizzazione dei prezzi in un grafico a barre personalizzato. Penso che dovrebbe essere composto da un'architettura Model View Controller. Sto cercando input sul mio piano di progettazione, qui c'è più di una domanda.
Il modello manterrà lo stato e i dati recuperati dal server, nonché qualsiasi stato richiesto per vincolare la vista. Per esempio Supponiamo che una determinata finestra possa essere aperta solo se è stata attivata una levetta, lo stato della levetta si terrà nel modello. Sto pensando che lo schema di stato sarebbe utile qui poiché mi aiuta a modellare il sistema usando diagrammi di stato e ci sono probabilmente molti stati. Inoltre, mi consente di utilizzare gli invarianti di classe per garantire che il sistema non venga mai messo in uno stato non valido.
La vista dovrebbe essere costruita sul modello del visitatore perché tutti gli elementi sullo schermo sono "Grafica", in cui le operazioni che agiscono sulla grafica sono indipendenti dalla grafica stessa. Ad esempio, tutti i grafici possono essere ridimensionati, posizionati, nascosti o mostrati. Una forma rettangolare potrebbe avere una larghezza e un'altezza, ma una funzione chiamata "mostra" non ha nulla a che fare con i rettangoli stessi. Ha senso definire queste operazioni da solo quando queste operazioni sono già disponibili in JQuery? io posso ridimensionare un elemento html usando $ (elemento) .css (larghezza, numeroOfPixel)?
Penso che il controller dovrebbe gestire tutti gli eventi dagli elementi html oltre che interagire con il server; come fare richieste al server e gestire le risposte. Quindi, ovviamente, fare in modo che il controller manipoli il modello lato client. Ho visto casi in cui le persone hanno implementato framework MVC e hanno il modello che comunica con il server (anziché utilizzare il controller per comunicare con il server). Per me ha più senso usare il controller per comunicare con il server perché il modello sul lato client non è pensato per comunicare, è pensato per mantenere lo stato e la logica. Perché dovrei usare il modello per comunicare con il server?
Non ho mai usato un framework MVC come AngularJS prima, dovrei semplicemente usarlo piuttosto che provare a implementare il mio MVC? Il tempo è un problema, ma voglio comunque essere in grado di creare un grafico personalizzato per il grafico dei prezzi.