繁体   English   中英

模型驱动的架构是否值得?工具中的最新技术是什么?

[英]Is model driven architecture worth it and what is the state of the art in the tooling?

我们在我们的商店中经常遇到一个问题,我们最终会得到相同类/实体的 3 或 4 种不同的表示。

java 版本、xml 版本、hibernate 版本、json 版本……你明白了。

显然,这会产生维护问题。

模型驱动的架构可能不止于此,但我真正想要的是一种系统,它让我能够以一种方式一次定义一个类或一个实体,然后生成各种表示。 (也许我没有为此使用正确的术语)

当然,这真的不是那么简单,因为假设我们有一个 java 对象,我们想将它转换为 JSON 以通过网络发送 - java 对象中的成员之间可能没有精确的 1-1 对应关系到 JSON 中的字段 - 可能有一些优化,或者其他什么。

我过去曾研究过 AndroMDA 和 EMF 之类的东西,发现它们要么缺乏要么笨拙。 我不知道这些天它们是如何堆叠的,或者还有哪些其他系统。

SO 对 MDA 和/或元数据驱动编程的看法是什么? 这些工具是否已经足够成熟以供认真考虑?

谢谢。

作为Naked ObjectsApache Isis的贡献者,我可以确认@dnellis74 的另一个答案,因为它们都解决了对同一事物有多种表示的问题; 使用这些框架,您只需编写一次域对象,然后它就会作为持久层自动反映给用户。

当然,(我会这样说,不是吗?)我不同意 @dnellis74 的观点,即这些框架鲜为人知的事实意味着它们应该被立即抛弃; 你应该自己决定。

可能感兴趣的另一点; 这两个框架都在实现Restful Objects 规范的过程中,该规范旨在通过 RESTful API 自动公开您的域对象,并让您根据需要对其进行换肤或集成。 .NET impl 非常完整,Java impl 有点滞后,但即使如此,您也可以查看演示。

至于 MDA,当它第一次被 OMG 吹捧时,我从一开始就持怀疑态度,以至于我在 TheServerSide 上写了一篇关于它的文章 我想我说得对。

为了解决您的核心问题,您可以为域对象定义一个 Java 类。 然后,您可以使用 JAXB 和 Hibernate 注释来注释该类。 通过这种方式,您有一个实体(Java 类)的单一定义,可以以各种表示形式输出,JAXB 用于 JSON 和 XML,Hibernate 用于持久性。

尽管这是个老问题,但我想从今天 MDA 的角度来回答它。

标题“模型驱动的架构值得吗?工具中的最新技术是什么?”中对您问题的简短回答。 是是的”。

更长的答案是“您需要将开发方法更改为基于 MDA,这需要一些投资,但值得”。

查看裸体对象

http://nakedobjects.codeplex.com/

它相当于 apache

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

这两个框架几乎闻所未闻的事实应该可以回答您的问题恕我直言。 我认为以相同对象的不一致表示结束表明您的过程中存在缺陷,这不是您应该尝试使用框架解决的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM