Стоит ли модельно-ориентированная архитектура и каков уровень техники в инструментальной оснастке?

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

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

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

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

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

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

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

Благодарю.

3 ответа

Решение

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

http://nakedobjects.codeplex.com/

и это апачский эквивалент

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

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

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

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

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

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

Дэн

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

Несмотря на то, что это старый вопрос, я хотел бы ответить на него с сегодняшней точки зрения MDA.

Краткий ответ на ваш вопрос в заголовке "Стоит ли модельно-ориентированная архитектура и каковы современные инструменты?" Да".

Более длинный ответ: "вам нужно изменить свой подход к разработке, чтобы он был основан на MDA, что требует некоторых инвестиций, но оно того стоит".

Другие вопросы по тегам