やはり軽いライブラリがいいな

原稿を書く中でドメインモデルについてネットで調べていたら、佐藤氏のブログに目が留まった。

http://trb.ameba.jp/servlet/TBInterface/10084043544/3a70200f

DDDの翻訳本も出て久しぶりにドメインモデルが話題になっている状況に頼もしさを感じた。

と同時にOOをやりだしてしばらくの頃、RDBとのインピーダンスミスマッチにどうしたらいいのかと悩みながら なかなか解が見つからないなりに自分でSmalltalkフレームワークを書いていた頃のことを思い出した。

試行錯誤の結果Javaの出始めの頃にSmalltalkフレームワークJavaに置き換えてドメインモデルはこういう感じかな と自分で納得した。ドメイン中心で組み立てた時のメリットデメリットも見えてきたように思う。

http://www.vsa.co.jp/R&D/JBF/JBFIndex.html

これで2層のドメインモデルの見当をつけて 豆蔵時代にこれをブラッシュアップしたものをHaricotとして公開した。

http://mamezou.net/modules/haricot/

そして公開までには至らなかったがHaricotを拡張してGUIとWebを同じように扱うアーキテクチャに目処をつけてO/Rマッピングフレームワークの熱が冷めたような気がする。

最近はお客さんにRDB周りの処理では非常に軽い200ステップ程度のライブラリを提供している。機能はそれほど無いがほとんどのDBアクセス処理をこなせるし、テーブルとEntityの対応も確実にとれる。
これだと1時間でほぼ構造と機能を理解してくれるし、パフォーマンスの問題が無いことも理解してもらえる。
なによりもいいことが、1時間でお客さんが自分のものとして扱ってくれることである。

3回ほどドメインモデルを念頭にDB周りを中心としたフレームワークを作ってきたが、現在は軽いライブラリが一番であるとつくづく思う。

そして今はScalaでなんとかドメインモデルを簡単に記述するDSLが出来ないものかと画策している。Scalaだととにかく軽く記述できる。

上記のフレームワークの経験を活かして、その骨格が出来たところだが、要件分析ツールに手が取られているのでそれができたら取りかかりたいと考えている。

でもその骨格作りで感じたことだがScalaの記述性の高さには目を見張るものがある。
ライブラリ作成にあたっては優にJavaの3倍は超えているように思う。