2

私は現在、SOAP::WSDL で生成された数十のクラスを含むコード ベースを扱っています。しかし、Moose と一緒に仕事をしてきた私は、これらのクラスを実行時にメタ レベルで生成する (つまり、ディスク上のファイルではなく、オブジェクトに直接生成する) 方が良いと考えています (この時点ではパフォーマンス上の理由を完全に除外しています)。

  1. このアプローチは賢明ですか?アイデアは、生成されたコードの変更を回避し、たまに再生成することを回避することです。

  2. もしそうなら、WSDL からクラスを作成するすぐに使える Perl モジュールはありますか?

4

1 に答える 1

1

最初に 2 番目の質問に答えると、WSDL を一連のクラスに変換する Moose ベースのものはありません。ただし、XML::Toolkit に基づいて何かを作成することはできます。完全な開示のために、XML::Toolkit は、SAX ストリームを Moose クラスに、またはその逆に変換するためのツールを備えた私のモジュールです。非 Moose Perl クラスの場合、SOAP wsdl -> Perl をコンパイルできると私が信じている XML::Compile があります。

最初の質問に答えるために、XML::Toolkit での私の経験から、実行時にクラスをメモリに保持するのは難しいと言えます。パフォーマンスのオーバーヘッドを無視すると、頭の中に入れておかなければならない多くのものがあり、それらは WSDL から拡張されます。興味深い実験になるだろうが、どれだけ長期的に維持できるかはわからない.

私は長い間、このようなことを試してみたいと思っていましたが、本当にそれに集中するためのお金を払ってくれたプロジェクトはありませんでした. 残念ながら、私にはこの規模のプロジェクトに取り組む自由な時間がありません。

于 2009-11-24T19:40:43.350 に答える