Cos'è un sistema CRUD?

-1

Sto imparando Event Sourcing nel mio tempo libero. Vedo online moltissimi riferimenti ai "sistemi di tipo CRUD". Capisco che un sistema di tipo CRUD sia:

1) Un sistema basato su database (sito Web o applicazione), ovvero un sistema che supporta la creazione, la lettura, l'aggiornamento e l'eliminazione. In questo caso non è necessario un modello di dominio.

o

2) Un sistema che "dovrebbe" (un po 'supposto) ha un modello di dominio, tuttavia tutta la logica del dominio è contenuta all'interno dei servizi applicativi I.e. il modello di dominio è anemico.

Tuttavia, di recente ho letto i riferimenti a sistemi che non utilizzano il sourcing di eventi come CRUD. Ad esempio, se ho implementato CQRS con un database relazionale sul lato scrittura (non un registro eventi) e MongoDB sul lato lettura, allora si tratta di un sistema CRUD?

Che cosa si intende esattamente con un sistema CRUD? Questo dipende da chi parlo?

    
posta w0051977 26.09.2018 - 20:11
fonte

3 risposte

2

Does this depend on who I talk to?

Si

What exactly is meant by a CRUD system?

Robert Harvey ha l'idea giusta: un sistema di crudizzazione è solo un archivio indipendente dal dominio. Ciò potrebbe significare una memoria duratura (su disco o in un database) o una memoria effimera (i modelli che usiamo in memoria).

Nel contesto di CQRS e Event Sourcing , il termine è spesso utilizzato per distinguere i problemi in cui i vantaggi di letture e diritti separati (CQRS) e supporto di query temporali (Event Sourcing) non verranno compensati la complessità in più che questi schemi introducono.

Il punto è che se l'intenzione è semplicemente di memorizzare i dati di qualcun altro (salvando i file dove non guardiamo mai il contenuto, o memorizzando nella cache copie locali di dati in cui il libro è fuori dal tuo sistema), allora dovremmo considerare attentamente i vantaggi di risolvere il problema con tecnologie semplici.

Ad esempio: considera la cronologia di origine del tuo progetto - le query temporali sono importanti qui? si assolutamente. Quindi potrebbe valere la pena avere una storia dettagliata di tutto ciò che sta accadendo. Ma il tuo manager dei pacchetti si preoccupa dei dettagli storici di hello-world-1.0.0? Non così tanto.

    
risposta data 27.09.2018 - 04:25
fonte
4

CRUD è l'acronimo di Crea, Leggi, Aggiorna, Elimina, le quattro operazioni fondamentali di un sistema di database e è tutto ciò che è.

Suppongo che potresti descrivere un sistema come simile a CRUD. Dove lavoro attualmente stiamo avendo discussioni in corso su questo, perché il sistema esistente è molto incentrato sul funzionamento del database, e mentre questo è molto conveniente per i programmatori, non è di grande aiuto per gli utenti, che lavorano in un dominio aziendale e preferirebbero un'applicazione in stile flusso di lavoro su misura per le loro operazioni aziendali invece di pensare di aggiungere e cancellare record da un database.

Ulteriori letture
Crea, leggi, aggiorna e cancella su Wikipedia

    
risposta data 26.09.2018 - 20:32
fonte
0

CRUD è l'abbreviazione di Crea / Leggi / Aggiorna / Elimina . Sta usando la denominazione dei domini problematici piuttosto che la programmazione dei nomi di dominio che è preferibile come best practice.

Le funzioni con questo nome sono in genere metodi pubblici su Data Access Object (DAO) e saranno approssimativamente mappate a SQL Insert / Selezionare / aggiornamento / eliminazione.

    
risposta data 26.09.2018 - 20:29
fonte

Leggi altre domande sui tag