DSL / Why Use a DSL?


DSL

Why Use a DSL?

一言要約

DSLの真のメリットはドメインエキスパートがそれを読むことができ、それでコミュニケーションをとることができる点です。

要約

DSLはさまざまなところで使用されています。

開発生産性の向上

DSLは美しくはないものの、読めて、間違いを発見でき、システムへの変更を容易にします。(意味のある変数名、文書化、明快なコードも同じです。)

ドメインエキスパートとのコミュニケーション

プロジェクトが失敗する原因の多くは顧客やユーザとのコミュニケーション。この点においてDSLは役に立つ。

"COBOL fallacy"(COBOLの誤謬)

今私たちはプログラマを排除することができ、そしてビジネスを行う人に彼ら自身の特別なルールを作らせることができる。

それでもDSLは有用。DSLでは、業務な方々が読める点を重視している。書くことも必要とは言ってはいない。


実行時のコンテキストにおける変化

コンパイルタイム、ランタイムにおけるDSL読み込みの話。

DSLを使うと、

  • bullist C#、Javaのコードを生成
  • bullist バリデーションをサーバ側ではC#、クライアントではJavascriptで実施 ということができる。

しかし、これはDSLの理解という点では別問題。

別の計算モデル

Dependency Network、Active Modelへのつなぎ。

良くあるモデルは命令型のモデル。

DSLは別の計算モデルを使うこともできる

ファウラーへのフィードバック

担当者のつぶやき

"Write Once, Run Any where"を思い出した。

みんなの突っ込み