« システム業界向け「モデルハウス」開発快調 | トップページ | 「動的参照関係」を手なづける »

2009.06.22

スクリプトエンジンの可能性

 Java SE 6には、JavaScriptやRubyを含むさまざまなスクリプト言語の実行エンジンが組み込まれている。その結果、Javaプログラムの中でスクリプトを読み込んで実行できるようになった。Javaとスクリプトの実行環境間でオブジェクトをやりとりすることも、一方の環境で作ったオブジェクトのメソッドを実行することも簡単だ。

 この機能強化がどんな役にたつのかと思われるかもしれないが、この話を初めて聞いたとき筆者はわくわくした。業務システム向けの実装用フレームワークの中で活用できると直感したからだ。じっさい、現在開発中のフレームワークの中で、スクリプトエンジンはすでに重要な役割を果たしている。

 筆者が現在開発している実装用フレームワークを用いると、データ処理パターンを組み合わせてシステムを組み上げることができる。一次テーブルから複数行を読み出したうえで絞込み条件にしたがって一覧するためのパネルパターンとか、親テーブルの特定行とそれに関連する子テーブルに存在する複数行を追加・更新するためのパネルパターンといったタイプが10種類ほど用意されている。それぞれのパターン毎に規定された様式にしたがって詳細設計情報を登録すれば、フレームワークがその内容を解釈してプログラムをダイナミックに立ち上げる(コードの自動生成ではないのでコンパイルは要らない。プログラム立ち上げ過程でのスクリプトの自動生成さえ伴わない)。

 これらのデータ処理パターンの数は多すぎても少なすぎてもいけない。多すぎると使い方のバリエーションがありすぎるゆえに使いにくくなるうえ、微妙に異なるバリエーションの中から選ぶのが面倒になる。少なすぎると硬直的であるゆえに使いにくいUIになる。ここらへんのバランスを考慮して選りすぐったパターンの数が10種類ということだ。

 それぞれのパターンを支援するクラスを作る際に考慮しなければならないのは、個々のパターンにおいてもなるべく多彩な仕様を扱えるようにすることだ。しかしそのためにパターン毎の仕様様式を複雑化しすぎては、詳細設計情報の登録過程が煩雑になる。かといって単純すぎれば、きめ細かいデータ処理機能を生み出せなくなる。

 スクリプトエンジンは、フレームワークの枠組みの複雑さを抑えたままで多彩な機能を立ち上げるためのカギである。すなわち、個々の詳細設計情報の中で、データ処理過程の指定タイミングで実行されるべきスクリプトを記述できるようにすればよい。たとえば、導出属性の計算手順や入力値の妥当性検査といった項目制御に関する仕様を、必要に応じてスクリプトで記述するのである。

 こういった「個々のデータ処理機能の特殊性」をフレームワークで扱うために、スクリプトエンジンは欠かせない。類型的な動きをパターンにまかせるいっぽうで、特殊な部分も配慮できるようになるからだ。スクリプトエンジンが使えるようになったと知らなかったら、筆者はJavaで実装用フレームワークを自作しようとは思わなかっただろう。それほどに、実装用フレームワークとスクリプトエンジンの相性はいい。

|

« システム業界向け「モデルハウス」開発快調 | トップページ | 「動的参照関係」を手なづける »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: スクリプトエンジンの可能性:

» abs/articles [[ abs+ ] (PukiWiki/TrackBack 0.3)]
abs/articles ▲▼2009/07/07 TestLink の実行結果ってテスト計画ごとにしか集計できない?? - かおるんダイアリー TestLink の使いどころ - かおるんダイアリー [CSS]100%幅のヘッダとフッタを天地に固定表示するスタイルシート | コリス 有吉弘行がグラビアア...... [続きを読む]

受信: 2009.07.07 02:47

« システム業界向け「モデルハウス」開発快調 | トップページ | 「動的参照関係」を手なづける »