top / index / prev / next / target / source

2005-12-23 diary: ValueObjectを適切に用いていない blancoValueObjectプロジェクト

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

old-v2

ValueObjectを適切に用いていない blancoValueObjectプロジェクト

blanco Frameworkの次期ロードマップに従い、まずは blancoValueObjectについて JUnitコードの自動生成に着手しました。そこでびっくり、blancoValueObjectのソースコードそのものが、ValueObjectを適切に利用していないことが発覚しました。純粋に私の赤っ恥です (苦笑)

ValueObjectを適切に用いていない blancoValueObjectプロジェクト

blanco Frameworkの次期ロードマップに従い、まずは blancoValueObjectについて JUnitコードの自動生成に着手しはじめました。現在は開発中でして、java.lang.String型のフィールドに対する単体試験 (JUnit)が やっと自動生成されるようになったところです。

その対応をしていてびっくりしたのですが、blancoValueObjectのソースコードそのものが、ValueObjectを適切に利用していないことが明らかになりました。現状の blancoValueObjectのプログラミングは 基本的に私が担当しました。この恥ずかしい実装は私のせいです。反省しました。

しかし、この事象を もう少し深く掘り下げて考えてみたところ、そもそも blancoValueObjectが 定義書様式に対応していなくて、そして私が簡単に活用できなかったという点が本質的な問題であろうことが理解できてきました。現時点での ValueObjectの自動生成は XMLファイルのみを入力ファイルとしていました。blancoDbやblancoCsv そしてblancoSOAPから呼び出されるだけの用途であれば、それだけで事足りると考えていたし、実際にそうだったからです。しかしこれを XLS形式の定義書様式に対応することで、少なくとも私が ValueObjectを適切に利用できるようになることが期待できます。簡単にすることにより私のプログラミングがおのずと適正化されるのです。

そういえば、昔のバージョンの blancoResourceBundleのソースコードはリソースバンドルに対応していませんでした。blancoResourceBundleのプログラミングも基本的に私が担当しました。あれも 恥ずかしい実装だったので、大急ぎで blancoResourceBundleを blancoResourceBundleに対応 (つまりはリソースバンドル対応) させた記憶がよみがえってきました。なお、blancoAntTaskは 適切に blancoAntTask対応しています。

2005.12.26追記 blancoValueObjectは 適切に ValueObjectを利用するように修正しました。その作業に併せて、ValueObjectのJUnitテストコードの自動生成機能を試作しました。

JUnit用Javaソースコード自動生成は 意外にも手間がかかりました。たったこれだけの型に対応するために半日以上も時間がかかってしまいました。

関連する日記

blancoConcreteSaxの利点と欠点 → blancoConcreteXPath構想へ…

blancoの多くのプロダクトは blancoConcreteSaxをベースに作成されています。blancoConcreteSaxの良いところは、XML構造の変更が Javaのコンパイラに適切に伝達されることです。すなわち XML構造と Javaソースコードとがずれているとコンパイルエラーが発生するようになっています。むろん SAXベースであるので 量が増えたときに DOMベースよりも圧倒的に高速に動作する点も魅力です。これはこれで良いのですが、一方で XML構造の変更が入ると Javaのソースコードが大幅に変更が必要になる場合があることです。実際に運用していてそれが面倒だと感じることもあります。(修正漏れが確実に防止できているので 良いと言えば良いのですけれども…) そこで 間を取って DOMベースの具象化ができないかどうか構想中です。すなわち XPath指定をもとに DOMアクセサのJavaソースコードを自動生成するのです。こうすると DOMベースになるぶん速度低下が発生してしまうことは予想されますが、一方でXPath単位でのアクセサ提供になるので、変更点が確実にコンパイルエラーで補足できるとともにXML構造に変更が入った場合の修正量を少なくすることが出来ます。…暇なときにでもつくりたいと思います。

blancoEclipseInstallerのバージョンアップ予定…

WTP 1.0のリリースにともない、blancoEclipseInstallerもバージョンアップしようと思っています。合わせて blancoEclipseInstallerに含まれる blanco Frameworkの各モジュールもバージョンアップしていきたいです。年内には対応したいですが、忙しいので手が回らないかも知れません。


この日記について