2012-03-01 7 views
5

Abbiamo un problema ricorrente nel nostro negozio dove ci ritroviamo con 3 o 4 rappresentazioni diverse della stessa classe/entità.L'architettura basata su modelli vale la pena e qual è lo stato dell'arte nell'attrezzatura?

Una versione java, una versione xml, una versione ibernata, una versione json ... si ottiene il punto.

Ovviamente ciò crea problemi di manutenzione.

L'architettura model driven è probabilmente più di questo, ma quello che mi piacerebbe davvero è un sistema che mi consente di definire una classe o un'entità una volta, in un modo, e quindi generare varie rappresentazioni. (forse non sto usando la terminologia corretta per questo)

In realtà non è così semplice, ovviamente, perché diciamo che abbiamo un oggetto java che vogliamo trasformare in JSON per l'invio sul filo - lì potrebbe non essere una corrispondenza esatta 1-1 tra i membri nell'oggetto java ai campi in JSON - potrebbero esserci alcune ottimizzazioni o altro.

Ho guardato cose come AndroMDA ed EMF in passato, e li ho trovati carenti o goffi. Non so come si accumulano questi giorni o quali altri sistemi ci sono.

Quali sono le opinioni di SO sull'MDA e sulla programmazione basata su meta-dati? Gli strumenti sono abbastanza maturi da essere presi seriamente in considerazione?

Grazie.

+1

Vedi anche http://stackoverflow.com/questions/4479883/mda-model-driven-architecture e http://stackoverflow.com/questions/696021/are-you-doing-mda- model-driven-architecture-right-now-if-so-what-tools-do-yo e http://stackoverflow.com/questions/21091/do-you-use-mda-mdd-mdsd-any-kind- di-model-driven-approach-will-it-be-the-futur e http://stackoverflow.com/questions/70781/what-do-you-think-of-model-driven-software-development – DNA

risposta

1

Scopri nude oggetti

http://nakedobjects.codeplex.com/

ed è di Apache equivalente

http://isis.apache.org/index.html

Il fatto che entrambi questi quadri sono quasi sconosciuta dovrebbe rispondere alla tua domanda IMHO. Penso che finire con rappresentazioni incoerenti degli stessi oggetti indica un difetto nel tuo processo, che non è qualcosa che dovresti cercare di risolvere con un framework.

+3

Questa risposta dipende da un argomento non supportato. –

2

Per risolvere il problema principale, è possibile definire una classe Java per il proprio oggetto dominio. Quindi, puoi annotare la classe con le annotazioni JAXB e Hibernate. In questo modo hai una singola definizione della tua entità (la classe Java) che può essere prodotta in varie rappresentazioni, JAXB per JSON e XML, Hibernate per la persistenza.

6

Come contributore sia Naked Objects e Apache Isis, posso confermare l'altra risposta da @ dnellis74 dato che questi sia affrontare la questione di avere più rappresentazioni della stessa cosa; con questi framework scrivi il tuo oggetto dominio una volta, e poi viene riflesso automaticamente all'utente come livello di persistenza.

Naturalmente, (e direi questo, non dovrei?) Non sono d'accordo con @ dnellis74 che il fatto che questi quadri siano poco conosciuti significa che dovrebbero essere liquidati immediatamente; dovresti decidere per te stesso.

Un altro punto che potrebbe essere di interesse; entrambi questi framework stanno implementando lo Restful Objects spec, che ha lo scopo di esporre automaticamente gli oggetti del dominio tramite un'API RESTful e di metterlo a nudo o integrarlo come meglio credi. L'impl di .NET è abbastanza completo, l'impl Java è in ritardo, ma nonostante ciò ha una demo che puoi check out.

Per quanto riguarda MDA, ero scettico fin dall'inizio quando è stato messo in primo piano dall'OMG, nella misura in cui ho scritto uno article su TheServerSide. Penso di aver chiamato bene.

Dan