2012-03-01 7 views
5

Mamy powtarzający się problem w naszym sklepie, gdzie kończymy z 3 lub 4 różnymi reprezentacjami tej samej klasy/podmiotu.Czy architektura oparta na modelach jest tego warta i jaki jest stan techniki w zakresie oprzyrządowania?

Wersja java, wersja xml, wersja hibernacji, wersja json ... masz rację.

Oczywiście powoduje to problemy konserwacyjne.

Architektura oparta na modelach jest prawdopodobnie czymś więcej, ale bardzo mi się podoba to system, który pozwala mi zdefiniować klasę lub jednostkę raz, w jeden sposób, a następnie wygenerować różne reprezentacje. (być może nie używam poprawnej terminologii)

Oczywiście nie jest to proste, ponieważ powiedzmy, że mamy obiekt java, który chcemy przekształcić w JSON, aby wysłać go za pomocą kabla - tam może nie być dokładną relacją 1-1 między elementami w obiekcie java, a polami w JSON - mogą to być pewne optymalizacje lub cokolwiek innego.

Spoglądałem na rzeczy takie jak AndroMDA i EMF w przeszłości, i stwierdziłem, że są albo niedostateczne, albo niezdarne. Nie wiem, jak układają się w te dni lub jakie są inne systemy.

Jakie są opinie SO na temat MDA i/lub programowania opartego na metadanych? Czy narzędzia są na tyle dojrzałe, że można je poważnie rozważyć?

Dzięki.

+1

Zobacz również http://stackoverflow.com/questions/4479883/mda-model-driven-architecture i http://stackoverflow.com/questions/696021/are-you-doing-mda- model-driven-architecture-right-now-if-so-what-tools-do-yo i http://stackoverflow.com/questions/21091/do-you-use-mda-mdd-mdsd-any-indh- model-driven-approach-will-it-be-the-futur i http://stackoverflow.com/questions/70781/what-do-you-think-of-model-driven-software- development – DNA

Odpowiedz

1

odjazdu Nagie Przedmioty

http://nakedobjects.codeplex.com/

i to apache równoważne

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

Fakt, że obie te ramy są prawie niespotykane należy odpowiedzieć na pytanie IMHO. Sądzę, że zakończenie niespójnych reprezentacji tych samych obiektów wskazuje na lukę w twoim procesie, który nie jest czymś, co powinieneś spróbować rozwiązać za pomocą frameworka.

+3

Ta odpowiedź opiera się na nieobsługiwanym argumencie. –

2

Aby rozwiązać problem podstawowy, można zdefiniować klasę Java dla obiektu domeny. Następnie możesz adnotować klasę adnotacjami JAXB i Hibernate. W ten sposób masz jedną definicję swojej jednostki (klasy Java), która może być wyprowadzana w różnych reprezentacjach, JAXB dla JSON i XML, Hibernate dla trwałości.

6

Jako osoba odpowiedzialna zarówno za Naked Objects, jak i Apache Isis, mogę potwierdzić inną odpowiedź od @ dnellis74, biorąc pod uwagę, że oba te zagadnienia dotyczą kwestii posiadania wielu reprezentacji tej samej rzeczy; w przypadku tych frameworków jeden obiekt domeny zostanie zapisany, a następnie automatycznie odzwierciedlany przez użytkownika jako warstwa trwałości.

Oczywiście (i powiedziałabym to, prawda?) Nie zgadzam się z @ dnellis74, że fakt, że te ramy są mało znane, oznacza, że ​​powinny one zostać odrzucone z ręki; powinieneś sam zdecydować.

Jeszcze jeden punkt, który może być interesujący; obie te struktury są w trakcie implementacji modelu Restful Objects spec, który ma na celu automatyczne ujawnienie obiektów domeny za pomocą interfejsu RESTful API i umożliwienie jego skorygowania lub zintegrowania z nim zgodnie z oczekiwaniami. Domena .NET impl jest całkiem kompletna, Java impl opóźnia się nieco, ale mimo to ma wersję demonstracyjną, którą można check out.

Jeśli chodzi o MDA, od samego początku byłem sceptycznie nastawiony, kiedy po raz pierwszy był naprężony przez OMG, o ile napisałem o tym w serwisie TheServerSide pod numerem article. Myślę, że nazwałem to dobrze.

Dan