[ドメインモデルをピュアに保ちたくない人現る]本日のDDD界隈

ドメインモデルをピュアに保ちたく無いと言う人がいて、コンテキストがわからなかったので、今日1日ドメインモデリングかDDDに触れてるツイートを集めた。結局コンテキストわからない。 -> DDD本はモデリング自体の方法論に触れてないのが良くない(足りない) -> で、道具ってなんだったんだっけ?
1
杉本啓 @sugimoto_kei

DDD本の一番よくないところは、下記の点をやや誤魔化しているところ。プログラミングの自然な延長としてドメインモデリングがあるかのような幻想を与えている。プログラマに受け入れられるための方便だと思うが、ドメインモデルとは何か、という問題への答えをぼかす要因にもなっている。 twitter.com/sugimoto_kei/s…

2016-12-17 21:19:19
杉本啓 @sugimoto_kei

プログラミングの先にドメインモデリングのような世界があるという言説はプログラマの耳に心地よい。プログラミング経験はドメインモデリングに役立つが、それだけでは十分でないと僕は思う。プログラム以外のこともやらなければ、よいモデルは作れない。そういうことを誤魔化してはいけない。

2016-12-17 20:54:56
病気の美少女 @lyrical_logical

ドメインモデル云々関係なく外部ライブラリの提供する型がテスト対象のシグネチャに含まれてたらテストしづらくなるの当たり前だし、そういうのはやめましょうみたいなの小学校の先生に習わなかったのかな。

2016-12-17 21:22:46
杉本啓 @sugimoto_kei

プログラミングを書き続けることは大事だけれど、プログラムを書き続けるだけではだめなんだ。@sugimoto_kei

2016-12-17 21:24:20
r.ishibashi @cactaceae

モックが何故悪なのか。純粋な関数は入力が決まれば出力が決まるのでそこをテストすれば良い。そこにモックが関わってくると、モックの入力と出力が加わって、最低でも4つのパラメータを用意しないといけなくなる。モックの呼び出し前後で2つの処理にして別々にテストするか、

2016-12-17 21:24:21
r.ishibashi @cactaceae

モックが返すべき値を引数にしてやれは、テストケースの組み合わせがだいぶ減るし、モックも要らなくなる。

2016-12-17 21:25:40
病気の美少女 @lyrical_logical

A という文脈で B であるみたいなのを見た時に最近いやそれ A という文脈に関係なく大体常に B だよみたいなのが多くて、なんだなんだという感じだ そういう時期なのか

2016-12-17 21:25:37
r.ishibashi @cactaceae

専門家の話をよく聴いて分析してモデルに反映しろ、プログラマーら独善的に書いてないで外部から学べっていうのがDDD本の主張じゃなかったかな。 twitter.com/sugimoto_kei/s…

2016-12-17 21:41:15
r.ishibashi @cactaceae

眠くなって読み飛ばしたり、忘れたりしてるとこにそういう事書いてあるのかなぁ。

2016-12-17 21:45:50
r.ishibashi @cactaceae

サボると肝心な時に自分を信じられなくなるから手を抜いちゃいけないっていうのは、本当に良い考えだよなぁ。

2016-12-17 21:47:43
杉本啓 @sugimoto_kei

対象分野の専門家の話をよく聴けば、良いモデルとソフトウェアを設計できるのか。ならば、熟達したプログラマの話を聞いたら、私は、その内容を分析して、新しい言語を設計したり、よいコンパイラを作れるのか。話を聴くことは重要。でも、それだけでは不十分でしょう。そんな無理なことをやってる。

2016-12-17 22:40:44
r.ishibashi @cactaceae

.@sugimoto_kei DDDはビジネスアプリケーションの構築を前提としているので、良いコンパイラを作るためのアプローチには適切じゃ無いと思います。

2016-12-17 22:43:33
杉本啓 @sugimoto_kei

そこが、大して変わらないというか、区別しない方がよいのでは?というのが、まさに私のポイントなんですね^^ twitter.com/cactaceae/stat…

2016-12-17 22:45:28
杉本啓 @sugimoto_kei

プログラマが言語設計やコンパイラに精通しているわけじゃない。では、なぜ、例えば、会計士が会計システムの設計原理に精通していると考えるのか、ということですね。ドメインエキスパートって誰よってこと。ドメインモデリングに関する根本的な論点じゃないのかなあ。@sugimoto_kei

2016-12-17 22:54:24
r.ishibashi @cactaceae

なるほど。それは僕にとっては新しい視点です。前提を外すと役に立たないというのは、当たり前のことだと思いますが、その区別しない方法でDDDの想定している状況でもそうでない状況でも共通して成り立つよいアプローチというのがあると言うことですか? @sugimoto_kei

2016-12-17 22:55:27
杉本啓 @sugimoto_kei

@cactaceae そうではなくて、区別しない視点で見れば、コンパイラとビジネスアプリケーションの場合で異なるのが、(アプローチではなく)プログラマとドメインの係わり方であることが見えてくるだろうというお話です。

2016-12-17 23:01:57
r.ishibashi @cactaceae

会計士が精通してるのは会計業務というドメインです。その知識を元にシステムを設計するのはエンジニアでしょう。もともとシステムの設計が出来ないレベルのプログラマーがDDDを知ってもすぐに良いシステムの設計ができるようにはならないですね。設計について学ぶきっかけにはなるかもしれません。

2016-12-17 23:02:02
r.ishibashi @cactaceae

.@sugimoto_kei プログラマが対象の理解を深める努力を怠って、ドメインエキスパートの言葉を鵜呑みにするのがよく無いと言うことです?

2016-12-17 23:06:25
杉本啓 @sugimoto_kei

@cactaceae むしろ、その「ドメインエキスパート」っていうのが、実は、ユーザ集団の中にはいないし、一般論としては、そちらに求めるのは無理じゃないか、そうであれば、プロググラマの側がドメインエキスパートにならないとしょうがないんじゃないか、という趣旨です。

2016-12-17 23:10:15
杉本啓 @sugimoto_kei

ちゅうか、僕は、四半世紀、会計システム分野でお仕事しているわけですが、その間、ユーザサイドで、この人が会計ドメインエキスパート、っていう人にお会いした経験が無いんですね。業務に精通している人やビジョンを持っている人はいますが。 twitter.com/sugimoto_kei/s…

2016-12-17 23:13:33
r.ishibashi @cactaceae

たしかにDDD本にドメインモデリング自体の方法論について書いてあった記憶がないな。目次を見てみるとアナリシスパターンを使えっていうところに1章さいてる。

2016-12-17 23:14:17
r.ishibashi @cactaceae

.@sugimoto_kei それは全くその通りだと思います。僕もずっとそう感じてました!

2016-12-17 23:15:51
杉本啓 @sugimoto_kei

@cactaceae でしょ^^ 会計士についてのツイートをお読みしましたが、彼らだって、会計システムについては漠然とした知見しかないし、自分の本務だとも考えてないです。彼らや経理担当者と話しながらシステムをなんとか作ることは可能ではありますが、ずっとそれでよいのかという点です。

2016-12-17 23:21:36
Masatoshi Shimada @smdmts

DDDのドメイン層はPOJO(Javaなら)であるべきでライブラリの”型”が介入するべきでは無いと思う。(Jodaとかやむを得ない場合もあるけど)

2016-12-17 23:30:29
r.ishibashi @cactaceae

モデルに基づくシステムズエンジニアリング 西村 秀和 amazon.co.jp/dp/482227540X/… @amazonJPさんから

2016-12-17 23:46:22