Design 1: per un'applicazione web. In passato, se inserisco un record / dati nell'interfaccia utente, salverò questi nuovi dati nel database, quindi l'interfaccia utente verrà ricaricata (come facendo clic sull'icona di aggiornamento del browser), ma questa interfaccia utente ricaricata eseguirà nuovamente una query sul database per recuperare tutti i dati nell'interfaccia utente. So che questo rallenterà le prestazioni dell'applicazione web.
Design 2: ora ho sentito questa idea di "cache". Quando eseguiamo l'applicazione web all'inizio, carico tutti i dati che prelevano dal database in una variabile (diciamo "CacheVariable", quindi questa variabile contiene tutti i dati necessari all'intera UI dell'applicazione web). Ora, se inserisco un nuovo record / dati nell'interfaccia utente, avrò ancora bisogno di inserire questo record / dati nel database. Ma ora, invece di ricaricare l'interfaccia utente per ottenere dati aggiornati dal database. Ho appena inserito questi nuovi dati / record in "CacheVariable", quindi la mia UI può ottenere i dati aggiornati senza ricaricare la pagina. Il problema è che ogni volta che eseguo azioni CRUD, devo ricordare di aggiornare "CacheVariable", altrimenti otterrò i bug dell'interfaccia utente. Diciamo che ho 100 campi nell'interfaccia utente, quindi ogni campo ha le sue azioni CRUD. Ho bisogno di fare 400 (100 campi * 4) volte operazioni su 'CacheVariable', che a mio avviso non è un buon modo.
Svantaggi del design 2:
- Se ho effettuato il refactoring della mia "CacheVariable", devo anche refactored 400 volte per tutti i CRUD su "CacheVariable".
- Poiché ogni campo richiede azioni CRUD su "CacheVariable", a volte mi dimenticherò di farlo, il che causerà un bug dell'interfaccia utente. Sarà anche un'idea soggetta a errori poiché devo fare 400 volte.