6

当店では、同じクラス/エンティティの3つまたは4つの異なる表現になってしまうという問題が繰り返し発生します。

javaバージョン、xmlバージョン、hibernateバージョン、jsonバージョン...あなたはポイントを取得します。

明らかに、これはメンテナンスの問題を引き起こします。

モデル駆動型アーキテクチャはおそらくこれ以上のものですが、私が本当に望んでいるのは、クラスまたはエンティティを1つの方法で一度定義してから、さまざまな表現を生成できるシステムです。(多分私はこれに正しい用語を使用していません)

もちろん、それは実際にはそれほど単純ではありません。なぜなら、ネットワーク経由で送信するためにJSONに変換したいJavaオブジェクトがあるとしましょう。Javaオブジェクトのメンバー間に正確な1-1の対応がない可能性があります。 JSONのフィールドに-いくつかの最適化などがあるかもしれません。

私は過去にAndroMDAやEMFのようなものを見てきましたが、それらが欠けているか不器用であることがわかりました。最近、それらがどのように積み重なっているのか、または他にどのようなシステムがあるのか​​はわかりません。

MDAやメタデータ駆動型プログラミングに関するSOの意見は何ですか?ツールは、真剣に検討するのに十分成熟していますか?

ありがとう。

4

4 に答える 4

7

Naked ObjectsApache Isisの両方への貢献者として、@ dnellis74 からの他の回答を確認できます。これらは両方とも同じものの複数の表現を持つという問題に対処しているためです。これらのフレームワークでは、ドメイン オブジェクトを 1 回作成すると、それが永続層としてユーザーに自動的に反映されます。

もちろん、(そして、私はこれを言うでしょうね?)これらのフレームワークがほとんど知られていないという事実は、それらが手に負えないほど却下されるべきであることを意味するという@dnellis74に同意しません。自分で決めるべきです。

興味深い点がもう 1 つあります。これらのフレームワークは両方とも、RESTful API を介してドメイン オブジェクトを自動的に公開することを目的としたRestful Objects 仕様を実装する過程にあり、必要に応じてそれをスキンしたり統合したりできます。.NET impl はかなり完成しており、Java impl は少し遅れていますが、チェックアウトできるデモがあります。

MDA については、OMG が最初にこき下ろしたとき、TheServerSide で記事を書いたほど懐疑的でした。私はそれを正しく呼んだと思います。

ダン

于 2012-03-07T21:06:38.923 に答える
2

中心的な問題に対処するために、ドメイン オブジェクトの Java クラスを定義できます。次に、JAXB および Hibernate アノテーションを使用してクラスにアノテーションを付けることができます。このようにして、JSON と XML の JAXB、永続化の Hibernate など、さまざまな表現で出力できるエンティティ (Java クラス) の単一の定義が得られます。

于 2012-03-01T20:20:55.187 に答える
1

裸のオブジェクトをチェックしてください

http://nakedobjects.codeplex.com/

そしてそれはApacheと同等です

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

これらのフレームワークの両方がほとんど前代未聞であるという事実は、私見の質問に答えるはずです. 同じオブジェクトの一貫性のない表現で終わることは、プロセスに欠陥があることを示していると思います。これは、フレームワークで解決しようとするものではありません。

于 2012-03-01T22:34:43.757 に答える