Sto progettando una nuova applicazione che si occupa di molte logiche di business.
Per evitare il solito intreccio tra diversi livelli applicativi che spesso si insinuano in tali sistemi nel tempo, voglio attuare una netta separazione delle preoccupazioni fin dall'inizio. Parlando in generale, voglio separare:
- livello di presentazione
- strato logico aziendale
- archiviazione dati e livello di persistenza
La domanda con cui sto lottando di più è come implementare effettivamente il comportamento ai bordi in modo pulito, in particolare tra l'azienda e il livello dati. Ho visto troppe applicazioni in cui il livello dati consegna gli oggetti ORM al livello principale, accoppiando in modo efficace la logica aziendale all'ORM.
Dovrei convertire gli oggetti ORM in un formato serializzato (JSON?) e poi deserializzare quello nel livello aziendale in una struttura dati interna a quel livello? Non è un sacco di spese generali?
Come implementa in modo pulito la separazione delle preoccupazioni per le applicazioni di medie dimensioni? Qualche consiglio?