Domande taggate «domain-driven-design»

La progettazione guidata dal dominio (DDD) è un approccio per sviluppare software per esigenze complesse collegando l'implementazione a un modello in evoluzione.

3
DDD: dove posizionare i gestori di eventi di dominio?
Potresti dirmi la tua opinione sul livello giusto per posizionare i gestori di eventi di dominio in DDD? Ad esempio, ho un servizio di applicazione per aggiungere un nuovo contratto e vorrei inviare una notifica e-mail alla persona di contatto, quando il contratto è stato aggiunto, così è quel servizio …

2
In DDD, un servizio di dominio è essenzialmente solo un modello di facciata e / o mediatore?
In Domain Driven Design, il livello di dominio può avere diversi servizi (tradizionali). Ad esempio, per il dominio Utente, potremmo avere: Una UserFactory, che crea oggetti utente in diversi modi Un archivio utenti, che è responsabile dell'interazione con i servizi di persistenza nel livello dell'infrastruttura Un UserService nel livello di …

6
DDD incontra OOP: come implementare un repository orientato agli oggetti?
Un'implementazione tipica di un repository DDD non sembra molto OO, ad esempio un save()metodo: package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } Parte dell'infrastruttura: package com.example.infrastructure; // imports... public class JdbcProductRepo …


2
Gli oggetti di persistenza-ignoranti sono in grado di implementare il caricamento lento?
Persistenza L'ignoranza è un'applicazione del principio della singola responsabilità, che in pratica significa che gli oggetti di dominio ( DO ) non dovrebbero contenere codice relativo alla persistenza, ma dovrebbero contenere solo la logica del dominio. a) Presumo che ciò significhi che il codice che contatta i livelli inferiori (ovvero …


4
Evitare oggetti di dominio gonfiati
Stiamo provando a spostare i dati dal nostro livello di servizio gonfiato nel nostro livello di dominio utilizzando un approccio DDD. Al momento disponiamo di molte logiche commerciali nei nostri servizi, che sono sparsi ovunque e non beneficiano dell'eredità. Abbiamo una classe Domain centrale che è al centro della maggior …

5
Se il modello di deposito è eccessivo per gli ORM moderni (EF, nHibernate), qual è un'astrazione migliore?
Di recente ho letto molti argomenti contro l'uso del modello di repository con Entity Framework potente come ORM in quanto incorpora funzionalità simili a repository, insieme alla funzionalità Unit of Work. Un altro argomento contro l'utilizzo del modello per una situazione come il test unitario è che il modello del …

2
CQRS + Event Sourcing: (è corretto che) I comandi sono generalmente comunicati punto a punto, mentre gli Eventi di dominio sono comunicati tramite pub / sub?
Sto fondamentalmente cercando di avvolgere la mia testa attorno al concetto di CQRS e concetti correlati. Sebbene CQRS non includa necessariamente la messaggistica e il sourcing di eventi, sembra essere una buona combinazione (come si può vedere con molti esempi / blogposts che combinano questi concetti) Dato un caso d'uso …




1
Come devono essere gestiti i comandi Aggiungi / Crea * nell'architettura CQRS + Event Sourcing
Voglio implementare la mia prima applicazione usando il modello CQRS insieme a Event Sourcing. Mi chiedo come gestire correttamente la creazione di radici aggregate. Diciamo che qualcuno invia il comando CreateItem. Come dovrebbe essere gestito? Dove deve essere archiviato l'evento ItemCreated? Come primo evento di un nuovo oggetto? O dovrei …


2
Eccezioni in DDD
Sto imparando DDD e sto pensando di lanciare eccezioni in determinate situazioni. Comprendo che un oggetto non può entrare in un cattivo stato, quindi qui le eccezioni vanno bene, ma in molti esempi le eccezioni vengono lanciate anche per esempio se stiamo provando ad aggiungere un nuovo utente con l'e-mail …

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.