Стоит ли модельно-ориентированная архитектура и каков уровень техники в инструментальной оснастке? - PullRequest
5 голосов
/ 02 марта 2012

У нас есть постоянная проблема в нашем магазине, когда мы получаем 3 или 4 разных представления одного и того же класса / объекта.

Java-версия, XML-версия, Hibernate-версия, JSON-версия ... Вы понимаете.

Очевидно, что это создает проблемы с обслуживанием.

Архитектура, управляемая моделями, вероятно, больше, чем это, но мне действительно нужна система, которая позволяет мне определять класс или сущность один раз, в одномКстати, а затем генерировать различные представления.(возможно, я не использую правильную терминологию для этого)

Конечно, это не так просто, потому что, скажем, у нас есть Java-объект, который мы хотим превратить в JSON для отправки по проводам.- может не быть точного соответствия 1-1 между элементами в java-объекте полям в JSON - могут быть некоторые оптимизации или что-то в этом роде.

Я смотрел на такие вещи, как AndroMDA и EMF впрошлое, и нашел их либо не хватает, либо неуклюже.Я не знаю, как они складываются в эти дни, или какие существуют другие системы.

Каково мнение SO о программировании на основе MDA и / или метаданных?Инструменты стали достаточно зрелыми для серьезного рассмотрения?

Спасибо.

Ответы [ 3 ]

6 голосов
/ 08 марта 2012

Как участник обоих Обнаженных объектов и Apache Isis , я могу подтвердить другой ответ от @ dnellis74, учитывая, что они оба решают проблему наличия нескольких представлений одной и той же вещи. ; с помощью этих платформ вы пишете свой объект домена один раз, а затем он автоматически отображается для пользователя как постоянный слой.

Конечно, (и я бы сказал это, не так ли?) Я не согласен с @ dnellis74, что тот факт, что эти структуры мало известны, означает, что они должны быть отклонены из-под контроля; Вы должны решить для себя.

Еще один момент, который может представлять интерес; обе эти платформы находятся в процессе реализации спецификации Restful Objects , которая направлена ​​на автоматическое предоставление объектов вашего домена с помощью RESTful API и позволяет создавать скины или интегрировать их по своему усмотрению. .NET Impl довольно полный, Java-Imp немного запаздывает, но даже с демо-версией вы можете проверить .

Что касается MDA, я с самого начала скептически относился к тому, когда он впервые насмехался над OMG, до такой степени, что я написал статью об этом на TheServerSide. Я думаю, что назвал это правильно.

Dan

2 голосов
/ 02 марта 2012

Для решения вашей основной проблемы вы можете определить класс Java для вашего доменного объекта. Затем вы можете аннотировать класс аннотациями JAXB и Hibernate. Таким образом, у вас есть одно определение вашей сущности (класс Java), которое можно выводить в различных представлениях, JAXB для JSON и XML, Hibernate для персистентности.

1 голос
/ 02 марта 2012

Проверьте голые объекты

http://nakedobjects.codeplex.com/

и это эквивалентно Apache

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

Тот факт, что обе эти платформы почтинеслыханно должен ответить на твой вопрос ИМХО.Я думаю, что в конечном итоге непоследовательные представления одних и тех же объектов указывают на недостаток в вашем процессе, который вы не должны пытаться решить с помощью фреймворка.

...