Стоит ли модельно-ориентированная архитектура и каков уровень техники в инструментальной оснастке?
У нас есть постоянная проблема в нашем магазине, где мы получаем 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, что требует некоторых инвестиций, но оно того стоит".