DSLs Chapter2を読んだ

Domain-Specific Languages (Addison-Wesley Signature Series (Fowler))

Domain-Specific Languages (Addison-Wesley Signature Series (Fowler))

DSLの定義、 例をだしてDSLといえるかいなか、DSLのメリット、欠点、DSLをいつ設計するかなどなどが書かれている。

下記はメモ

DSL定義

Domain-specific language: a computer programming language of limited expressiveness focused on particular domain.

DSLの分類

external DSL
internal DSL
language workbench

DSL か 否かで出てきた例

(ファウラー定義は、どっちかの詳細は、読んでみてね)

  • command-query API,fluent interfaces,R,regular expressions,XSLT,configuration file,ツールを使ってhuman readableに生成されたXML,language workbench, Microsoft Access, FIT, EXCEL, a purely human jargon

DSLのメリット

Improving Development Productivity
Communication with Domain Experts
Change in Execution Context
Alternative Computational Model

DSLの欠点

いまいち読み切れなかった。学習コストとか、構築のコストとか、新しい人集めとか。

Language Cacophony
Cost of Building
Ghetto Language
Blinkered Abstraction

DSL Lifecycle

モデルを構築、command-quary api後に、DSLを設計するパターン。
モデルより先に、ドメインエキスパートとDSLを設計するパターン。(TDDを重ねながら設計するパターン)
などなど