Sono all'inizio di un progetto che voglio avere la migliore testabilità e manutenibilità possibile. Per ottenere questo, sto leggendo molto sui concetti nell'area DDD, principalmente.
Per farti contestualizzare, supponi le seguenti entità:
-
utente
È fondamentalmente un contenitore per gli account (vedi sotto) e le configurazioni; -
Account
È un modo per un utente di accedere. Ogni Utente può avere diversi account, uno per ciascun fornitore OAuth (Facebook, Google, ecc.); -
Sessione
È un token che punta a una data di scadenza Utente +. Ogni accesso genera una nuova sessione.
Devo trovare un utente per account (quando eseguo l'accesso) o sessione (quando sono già connesso).
Tuttavia, temo che riempirò i miei DAO con metodi findByX
- questi sembrano essere i più performanti e semplici da capire, ma uniscono la struttura del DB a qualche regola aziendale - o sono io non va?
Questo post dice che dovrei usare un Specification
interfaccia, che le sue implementazioni dovrebbero restituire i giusti criteri di query.
C'è qualche problema che posso affrontare in anticipo, come ad esempio il gonfiare i miei DAO con i metodi find
, o sono preoccupato per questa architettura?