BT

Groovyを使用したドメイン固有の言語の作成

| 作者: Craig Wickesser フォローする 0 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2008年2月27日. 推定読書時間: 2 分 |

現地時間2/21はここバージニア州レストンで開催される、2GXとしても知られるGroovy/Grails Experience(サイト・英語)に関する会議の初日であった。会議は3日間に渡り、90分間のセッションが40セッション、パネルディスカッションおよびコードワー クショップがその内容である。今日の初回のセッションの1つには、Venkat Subramaniam氏による「Groovyでのドメイン固有の言語の作成」があった。ドメイン固有の言語は、過去にMartin Fowler 氏によるIntroduction to Domain Specific Languages(参考記事・英語)やIan Roughley氏によるBuilding Domain-Specific Languages in JRuby(参考記事・英語)の記事としてInfoQに掲載されている。

Venkat氏のセッションでは、ドメイン固有言語とは何か、その特性、タイプ(内部と外部の比較)および作成し、使用するときのGroovyの特長につ いての話があった。Venkat氏は以下にあげるGroovyの内蔵機能を使用して内部DSL(source)を作成することに焦点を当てた。

  • Method Missing(source) - メソッドが見つからず、デベロッパが呼び出しをインターセプト可能な場合に呼び出される特殊なメソッド
  • Categories(source) - 新しいメソッドがランタイム時に任意のクラスに追加可能
  • ExpandoMetaClass(source) - 動的に拡張可能なBean

上記の3点の機能の他に、Groovyがデベロッパに課す制約の欠如とドメイン固有言語を促進する追加機能についてVenkat氏は述べた。その内容は以下のとおりである。

  • Closures(source)
  • 括弧の使用に関する緩やかな規則 *内蔵リストおよびマップ構文
  • Property Missing(source)
  • メソッドをインターフェイスに動的に追加する機能および具体的なクラスもメソッドを有する機能
ドメイン固有言語を作成時にどのメソッドを使用するかを決めるときに、Venkat氏はCategoriesとExpandoMetaClassをそれぞれ使用する場合の主な相違について説明した。
  • Categoriesが巧妙なクラスの拡張を可能にする
  • 本来ExpandMetaClassは広範囲でグローバルである
  • グローバルな影響をクラスに及ぼしたくない場合
  • Categoriesは制御された柔軟性を提供する

ドメイン固有言語は今後も注目を浴び続け、Groovyの内蔵機能を使用して作成および使用が可能である。

原文はこちらです:http://www.infoq.com/news/2008/02/dsl_in_groovy

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT