Recentemente abbiamo sviluppato un'app Web che utilizza il seguente stack tecnologico:
- ibernazione come orm
- molla
- extjs (MVC javascript front end)
Per 1 oggetto business, lascia che sia un personale, abbiamo:
1) una classe del personale (ibernato) 2) PersonnelDTO (spiegherà perché ne avevamo bisogno) 3) un modello javascript Personnel per Extjs (non so potrebbe essere altri framework di interfacce utente javascript non ha bisogno di un modello definito)
La necessità del numero 2 è nata quando non siamo riusciti a gestire gli oggetti di ibernazione avanti e indietro, occupandoci di sessioni e riferimenti circolari ecc.
Inoltre, in alcuni casi è necessario un oggetto Personale completo (campi completi uniti), a volte solo pochi campi e una relazione. A volte hai bisogno di tutte le informazioni per elaborare un Personale ma non puoi inviarlo fino al cliente (sicurezza, motivi di privacy). Quindi abbiamo utilizzato DTO per disaccoppiare oggetti e oggetti del modello che verranno inviati attraverso il filo.
Aggiungere-rimuovere un campo in un progetto di questo tipo diventa molto noioso e soggetto a errori. L'aggiunta di un campo richiede:
- aggiungi alle tabelle DB
- aggiungi all'oggetto modello
- aggiungi a DTO
- aggiungi al modello - > Convertitore DTO (quando si tratta di un campo che non può essere mappato automaticamente) in relazione a diversi scenari che richiedono diverse quantità di informazioni sul modello
- aggiungi al modello Extjs
- aggiungi ai moduli CRUD nella pagina
- aggiungi a client e server validatori ...
Non esiste un approccio migliore alla creazione di applicazioni simili? Stiamo pensando di iniziare un nuovo progetto e non vogliamo commettere gli stessi errori.