第六回ドメイン駆動設計読書会@大阪に参加した

ひとまずの最終回。

今回で

と役者が出揃った。 中でも、個人的に印象深かった実践的モデラについて少し考えをまとめたい。

実践的モデラに対する僕の理解は、ドメインエキスパートと共にユビキタス言語を導き、イテレーティブなモデル設計を実施し、かつプログラミングを行う人を指している。

これは、僕だ。

僕は普段仕事でWebアプリケーション開発に携わってるけど、ドメインエキスパート(企画者、ディレクター)とモデル(仕様)を作成し共通認識(ユビキタス言語)を維持しながらコーディングしている。 モデル(仕様)が変われば共通認識(ユビキタス言語)が変わりコードが変化する。普段の風景。

ただし、モデル(仕様)も共通認識(ユビキタス言語)もなーんにも文書化されずガシガシ作るスタイルなのは問題。まぁこれはひとまず置いておいて。

全てのWebの現場がそんな風な作り方をしているわけじゃないと思うけど、割りとこういう現場は多いのでは。 自社サービスを開発していてドメインエキスパートが社内に居るとかだと、モデル駆動設計に対する敷居は無いに等しい。 (その難易度は度外視したとして)

逆にドメインエキスパートが社外の人間、特にお客さんとかになると敷居がグッと上がる気がする。大体、対社外的なフロントに立つ人間は、自分自身プログラミングしないことが多い。 伝言ゲームみたいなもんで、情報は劣化する。 対社内でさえも劣化するから、これは相当難しいイメージ。 これはシステム化するか制度化して無理やりにでも共通認識を持つみたいな仕組みが無いとという発想になる。 そういった意味で、ドメインエキスパート(お客さん)がDSLを使ってシステムを構築出来るソフトウェアというジェネレーティブなアプローチが注目される理由もなんとなくわかる。 ただし、そこにはどうしても汎用性の壁があると思うし、実践的モデラを見出すことが出来る現場ならそういう作り方をした方が最終的には幸せになれる気がしないでもない。

6回を終えて

ドメイン駆動設計を学び始める前は、これを学べばイケメンになれると思っていた。だけどもうイケメンだったし、開発手法として何か新しいということは無いんだなという感想(そもそも初版2003年だし)。

ただ学んでみて本当に良かったと思える。 なんだかモヤっとしたところがクリアになった。色々な概念に名前がついたこと、それらがどのように作用するか定義されたこと。 そして最大の功績は今よりまだ開発プロセスが良く出来ることが明確に見えたこと。

副作用として、これまで疑問視しなかった色々なことに対する考えをクリアにしようという発想も出てきた。

以前、まだドメイン駆動設計に対する理解の浅い段階で、取り敢えず勢いでドメイン駆動設計ワークショップというものを社内で開催したけど、個人的には不発に終わっていてまだモヤモヤしている。 今ならもう少しマシなものが出来そう。その時にはもうドメイン駆動設計という言葉は使わず、今やってることをもう少し良くしようって感じになると思う。

なんだか達観者のようなエントリになっちゃってアレなんですが実際課題は山積み。今後は以下をどうするか考えたい。

PHPメンターズ道場生になりました

http://phpmentors.jp/

@itemanさんにお誘い頂き、この度道場生として勉強させて頂けることになりました。こえぇ。
DDD読書会@大阪は、今後も形を少し変えて継続していく予定です。