国内最大のPM大会であるPMシンポジウム2006が開催されます。9月1日(金)に平鍋と事務局の上田がそれぞれ講演を行います。残席も僅かとなっているようですので、ご興味がある場合には是非お早めにお申し込みください。今回初めてメルマガに記事を投稿させていただきます渋川です。オブジェクト倶楽部の夏イベントのライトニングトークスで発表した、PyUnitXというツールを紹介します。このメルマガを読んでいる方にはなじみが深いと思われる、ユニットテストのフレームワークです。日本では、ユーザ数的にはC#やJavaやRubyの陰になってしまうことの多いPythonですが、当日の発表ではおかげさまで2位になりました。1位と比べると3倍近い差で、完敗ではありましたけど。その後の懇親会などで使ってみたい、という意見もちらほら頂きましたので、ちょこちょこバグ修正などを行いつつ、公開の準備を進めて参りました。ダイナミックDNSを使って自宅で運用しているサーバですので、不意に落ちたりすることもあるとは思いますが、とりあえず公開します。http://pyunitx.shibu.jp●PyUnitXとは?名前を見て分かってしまう人も多いと思いますが、Python用のテスティングフレームワークです。Pythonの標準ライブラリにシンプルなものはあるのですが、あえて新規開発してみました。特徴は以下の通りです。・テスト駆動開発とビヘイビア駆動開発を同時にサポート・ソースコードから情報を絞り出せ!見える化のサポートライトニングトークスの資料を見てもらえれば、これらの内容の紹介はされていますので、ぜひご覧下さい[*1]。●開発状況まだまだ発展途上です。トークスでデモを行った地図表示機能は、納得いっていない所があったので全面改定中です。その代わり、メソッド呼び出しをツリーで表示する機能なんかも入れてみたりしています。自分でも毎日使いながらちょっとずつ機能を追加しています。ドキュメントなどの整備も進めて、オンリーワンなテスティングフレームワークを目指していこうと思います。誰もやっていないような、効果があるかどうかも分からないものも含めて、ネタはいっぱいあります。(渋川)[*1]:http://www.ObjectClub.jp/download/files/event/2006summer/LT_Shibukawa.pdf_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。Cayenne」[*1]となっているじゃないですか!?incubationなんですけどCayenneはめでたく(?)Apacheの仲間入りという事で今後の発展により期待ですね。今回から本格的に中身に入っていきたいと思います。響を受けたプロダクトなので、他のO/Rマッパーと決定的に違う点として、GUIのモデラーがあるという事が挙げられます。一度O/Rマッパーを使ったことがある方ならわかる、あのもう2度と目にしたくないと言っても過言でない、データベースの定義とJavaのクラスをマッピングするXMLファイルですが、Cayenneを使えばそんなものはクリック一発・・とまでは言いませんが、マウス操作だけで楽々完了です。実際に試してみましょう。今回のシリーズはO/Rプログラミングの入門編なので、簡単にビデオレンタル店を想定して「貸出」、「ビデオ」、「会員」というテーブルにしてみましょう。テーブルを準備します。「貸出テーブル」[*2]は以下の通りとします。(`id`));「会員テーブル」[*3]は以下の通りとします。(`id`));「ビデオテーブル」[*4]は以下の通りとします。(`id`));ではこれをCayenneのモデラーで取り込んでみましょう。windows版をダウンロードした人はbin\CayenneModeler.exeを実行します。Project...]を選択して下さい。するといくつか入力する値が出てきます。Name:「開発するシステムで使うデータベース名のようなもの」です。今回は「VideoRentalSystem」とします。上記以外の値は任意なので、今回はとりあえずデフォルトのままとします。DateNode]を選択して下さい。Configuration」の部分はデフォルトのままでOKです。Configuration」を設定してください。Driver:例えばMySQLなら「com.mysql.jdbc.Driver」です。URL:例えばMySQLなら「jdbc:mysql://localhost/video」です。Name、Password:DBにアクセスするユーザ名・パスワードです。それ以外は引き続きデフォルトのままで良いでしょう。ここでデータベースの接続を設定したら、使用するJDBCドライバにクラスパスを通して下さい。[Tools]-[Preferences]を選択してください。Jar/Zip]を使って、JDBCドライバのファイルを指定してください。※重要です!ClassPathを指定した直後は一度保存してモデラーを再起動しないといけないので、最初だけこの手順をふんでください。データベースから定義を取得します。Schema]を選択して下さい。確認ダイアログが出ます。[Continue]ボタンを選択してください。Options」画面が出てきますので、デフォルトのまま[Continue]ボタンを選択してください。すると画面に「UntitledMap」が生成され、そのタブにフォーカスが移動します。名前を「VideoSystemMap」と変更しましょう。続けてCayenneが自動生成してくれるクラスのパッケージ名を指定します。Packages:」を編集します。今回は「com.video.model」としてみましょう。バージョン1.2のモデラーは、個別のテーブルにマップしたクラスのパッケージを変えられるようになっています。VideoSystemMapの左の+マークを選択してください。Class:]の前にパッケージを付加して「com.video.model.Lending」のようにしてみましょう。ここまで設定すれば後は1クリックです。Classes]を選択してください。ソースコードを出力するディレクトリを選んだら、[Genarate]ボタンを選択してください。すると指定した保存先のルートに以下の6つのファイルができます。com\video\model\Lending.javacom\video\model\Member.javacom\video\model\Video.javacom\video\model\auto\_Lending.javacom\video\model\auto\_Member.javacom\video\model\auto\_Video.javaどうです?これで後はJavaのコーディングをするだけで、SQLを書くこともなくXMLの設定ファイルを書くこともないのです。これらのクラスが何を意味するのかも含め、いよいよ次回から実際のプログラミングに入っていきますのでご期待ください。それまで今回使わなかったモデラーの機能をマニュアルを見て勉強してみてください。