BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Jay Fields 氏と Zak Tamsen 氏へのドメイン固有言語についてのインタビュー

Jay Fields 氏と Zak Tamsen 氏へのドメイン固有言語についてのインタビュー

Jay Fields 氏と Zak Tamsen 氏がドメイン固有言語について InfoQ のインタビューに答えた。彼らは、ThoughtWorksのプロジェクトにおいて、業務の強化、開発期間の短縮、およびプロジェクトの俊敏性向上のためにドメイン固有言語をうまく使用している。

Jay Fields 氏と Zak Tamsen 氏のインタビュー全体を見る (23 分)(英語)

インタビューの中の Jay 氏と Zak 氏の説明によれば、DSL はミニ言語であり、対象となるドメインの言語とその語彙で記述される。このため、DSL は本質的に十分な表現性を備えており、ビジネスユーザーに本来の利益をもたらすことができる。

“言語の表現性が豊かであれば、開発者は、それだけ効率的かつ簡潔に処理を記述し、ビジネスユーザーに使いやすい言語を提供することができます。従ってユーザーは、実際の業務ドメインの方に集中することができます。”

当然ながら、DSL の設計者にもメリットがある。特にインタビューで取り上げられたメリットは、プログラマが対象のドメインを本当に理解することによって DSL を設計しているという点だ。

ドメイン固有言語の長所は、対象のドメインを実際に学ぶという点にあると思っています。”

内部 DSL と外部 DSL の違いについても話は及んだ。

“内部DSL は、Ruby コードが実際に実行されることを意味しています。これに対して外部 DSL は、前処理を通して Ruby 言語に取り込まれてから実行されます。”

Jay 氏と Zak 氏は、Ruby が内部 DSL を作成するのに適した言語であると彼らが考える理由を次のように説明している。

“Ruby は、簡潔であり、括弧やセミコロンを記述する必要がありません。このため、対象となる業務ドメインの専門家にもわかりやすい言語です。”

DSL とルールエンジンの違いについて質問すると、彼らは、ルールエンジンは、その複雑性から、ビジネスユーザーに適さない場合があると答えた。

“ビジネスユーザーと一緒にルールエンジンを扱ったことがありますか。普通、それらは非常に複雑です。”

DSL を設計するということは、対象とするドメイン専用に特注の言語を設計するということである。ルールエンジンは、一般的に、ユーザーが必要とする機能の大部分を提供し、さらなる専用機能は拡張によって提供しようとする。しかし、彼らは、これは必ずしも単純ではないと言う。

“ルールエンジンは、簡単には拡張できません。1から 100 までの機能を提供しても、101 番目の機能が必要になることがあります。そしてその1つが選択肢の1つであるとは限りません。”

しかし、彼らは、DSL をあまりに拡張することも推奨していない。

“DSL は、基本的には、非常に狭い範囲の問題に対処するためのものです。1 つの言語を汎用的にして複雑化するのではなく、1 つのアプリケーションの中で複数の DSL を使用するという方法もあります。言語の汎用性が増すほど、記述するのは難しくなり、エンドユーザーにとっても使用しにくくなります。”

Jay 氏は、最近、ビジネス自然言語(サイト・英語)という用語についてブログ(source)を書いている。彼は、問題を次のように説明している。

“みんなが求めているものは、その分野の専門家がビジネスロジックを指定するための手段です。”

これまでは、GUI を使用してロジックを指定しようとしてきたが、Zak 氏によれば、GUI は、テキストボックスほど直感的であるとは言えない。

“ビジネスの専門家がその専門分野について話をする場合、実際には、GUI 用語は使用しません。つまり、「ここをクリックして、次にこちらに移動します」というような言葉は使いません。専門家達は、「利益のスコアがある点に達したら、XYZ を行います」というように自然言語を使用します。専門家達にとっては、自然言語が通じるのならば、テキストボックスに自然言語に近い形で単純に記述することの方が、より自然で、表現もしやすいのです。”

Jay 氏とZak 氏は、ビジネス自然言語 (BNL) を使用して記述されたDSL でアプリケーションのビジネスロジックを指定することを推奨している。彼らは、特定のビジネス分野の専門家と緊密に連携したプロジェクトにおいて、まさにこれをどのように実現したかを説明した。彼らは、そこからすばらしい結果が得られたことを喜んでいた。

“プロジェクトが終わるまでに、特定のビジネス分野の専門家は、言語を定義するようになっていました。私達は、彼らが考えたキーワードが意味することを行うようにしていただけでした。”

Jay Fields 氏と Zak Tamsen 氏のインタビュー全体を見る (23 分) (英語)

原文はこちらです:http://www.infoq.com/news/2007/10/jay-fields-zak-tamsen-interview

この記事に星をつける

おすすめ度
スタイル

BT