Un modo migliore per trasformare i dati [chiuso]

0

Contesto
Immagina un servizio complicato che fornisce informazioni su prodotti bancari, commissioni e così via.
Immagina un'interfaccia utente complicata che si occupa di esso.
I formati dei dati dell'interfaccia utente e del servizio vengono modificati 1-2 volte al mese a causa dello sviluppo attivo.
Decisione
Per semplificare la vita degli sviluppatori dell'interfaccia utente, trasformiamo i dati in formato desiderati dagli sviluppatori dell'interfaccia utente.
Per esempio. inseriamo gli oggetti in un altro livello nella struttura ad albero, aggiungiamo campi come brokerFee e agentFee invece di fornire la mappa delle tasse con i loro tipi, ecc.
Soluzione corrente
Utilizziamo il codice Java per trasformare il DTO del servizio (oggetto di trasferimento dati) in DTO UI e viceversa.
Problema
Il codice non sembra buono :) Richiede molto tempo per essere aggiornato.
La trasformazione XSLT non è un'opzione perché sarà ancora più difficile da mantenere.
Idea Introduci Groovy perché la sintassi è più facile da leggere.
Domanda
Quali sono le altre opzioni?
Eventuali modelli / librerie / approcci che possono semplificare il codice di trasformazione dei dati?

    
posta Yuriy Chulovskyy 25.11.2015 - 22:30
fonte

1 risposta

2

Sembra che tu voglia un mapper object-to-object basato su convenzione. C'è un progetto .NET chiamato automapper che fa questo - vorrei guardarlo per l'ispirazione, e per quali modelli potresti voler implementare. Il più comune è semplicemente l'appiattimento di un oggetto complesso in un DTO più semplice senza proprietà nidificate.

Da il loro sito , alcune altre cose da tenere in considerazione:

  • Appiattimento
  • Proiezione
  • Configurazione
  • Validation
  • Elenchi e matrici
  • Mappature nidificate
  • Convertitori di tipi personalizzati
  • Risoluzione valori personalizzati
  • Sostituzione Null
  • Azioni della mappa prima e dopo
  • Contenitori
  • Ereditarietà della mappatura
  • Mappatura condizionale
  • Apri generici
risposta data 25.11.2015 - 22:47
fonte

Leggi altre domande sui tag