X



【DDD】ドメイン駆動設計【エリック・エヴァンス】
0001デフォルトの名無しさん
2017/10/24(火) 19:39:06.49ID:jO+jDbIG
第1部 ドメインモデルを機能させる

   ドメイン駆動設計におけるモデルの有用性
   ソフトウェアの核心

第1章 知識をかみ砕く
   効果的なモデリングの要素
   知識のかみ砕き
   継続的学習
   知識豊富な設計
      例1.1——隠された概念を引き出す
   深いモデル

第2章 コミュニケーションと言語の使い方
   ユビキタス言語(UBIQUITOUS LANGUAGE)
      例2.1——貨物輸送プログラムを完成させる
   声に出してモデリングする
   1つのチームに1つの言語
   ドキュメントと図
      書かれた設計ドキュメント
      実行可能な基盤
   説明のためのモデル
      例2.2——輸送業務と経路

第3章 モデルと実装を結びつける
   モデル駆動設計(MODEL-DRIVEN DESIGN)
   モデリングパラダイムとツールによるサポート
      例3.1——手続き型からモデル駆動へ
   骨格を見せる:なぜモデルがユーザにとって重要なのか?
   実践的モデラ(HANDS ON MODELERS)
0176デフォルトの名無しさん
2020/03/15(日) 08:25:11.78ID:j83nFY2E
>>175
あんたに限らず関数型が大規模なプログラム書くのに向かないと思ってる層がちゃんと関数型プログラミングをしたことがなく先入観でもの言ってるのはよくわかった
0177デフォルトの名無しさん
2020/03/15(日) 08:38:54.73ID:1/DFOu+E
>>176
あんたも決めつけで言ってるだけだろ
関数型で状態遷移を把握しづらいのは
強く実感しているし普及しない原因だ
0178デフォルトの名無しさん
2020/03/15(日) 09:21:24.78ID:UpO1XTWv
>>177
それはどの言語でどんなことしようとして「強く実感」したの?

関数型言語が普及しないのは、単に先入観やOOP神話の影響で学ぼう使おうと思う人が少ないからだよ。
関数型プログラミングが普及しない理由は、当然だが関数型プログラミングの諸概念を表現するのに命令型言語が不向きだから。柔道着着て水泳するようなもんだ。
0179デフォルトの名無しさん
2020/03/15(日) 14:50:21.29ID:7lggs81n
>>175
>継承や委譲で階層構造を表現できる

OOでは継承や委譲で階層構造を表現できると言われても
関数型の言語よりOO言語のほうがDDDには向いてるという論拠にはならないよ
少し古いスライドだけど、これ見て概要だけでも勉強して
https://www.slideshare.net/ScottWlaschin/domain-driven-design-with-the-f-type-system-functional-londoners-2014
0180デフォルトの名無しさん
2020/03/15(日) 18:32:23.77ID:XbDoNvCk
一昔前のOOP厨と一緒だな。
歴史を学ばん奴は一生ループする。
0181デフォルトの名無しさん
2020/03/15(日) 23:47:43.93ID:zobMuC0O
>>179 そうだよなと得心する事が多くて良い資料ですね
ドメインに継承や移譲が要るって考えてる人は是非とも読んで欲しいし、反例を挙げて欲しくなる
0182デフォルトの名無しさん
2020/03/16(月) 00:15:47.56ID:PIKXUqlC
>>179
俺もこのスライドの作成者の本で関数型DDDに入門したクチだけど、本当にわかりやすかった
もともとHaskell, purescriptはやってて関数型には慣れてたけど、
DDDについては知らなかったので、せっかくだから関数型前提で書かれている本でと手にした。
Domain modeling made functional っていう本で、
DDDの解説はもちろん、関数型プログラミングの諸概念の解説もわかりやすく、
一冊で二度美味しい内容で、実用的な関数型プログラミングの入門書としても超おすすめ。

https://youtu.be/dEKvIxsERAI
ちなみにyoutubeにはこのスライドの発表動画もあったりする
0183デフォルトの名無しさん
2020/09/16(水) 23:15:57.30ID:hC0if/qX
Matthias Felleisenの「How to Design Programs」を読んで関数型プログラミングに
興味を持ったものです。
次にモナドを勉強しようとしてHaskellの本を読んだがいまいちピンときません。
>>182さんが挙げられている本では、モナドを使ってモデルの実装をしているようですが、
モナドの使い方は理解できますか?
0185183
2020/09/17(木) 23:32:13.91ID:pIiN+iyt
>>184
ありがとうございます・・・でもDomain modeling made functional をPDFでポチっちゃいました。
後で読もうと思います。
ところでDDDを学ぶ上で、大規模な開発経験が必要なんでしょうか?
自分は学生で、そのような経験がありません。
『How to Design Programs』では小さなプログラム作成の演習はありましたが、
それ以上の大きさのプログラム作成の方法はありませんでした。
DDDは大きなプログラムをつくるガイドになりますか?
0187デフォルトの名無しさん
2020/09/23(水) 00:07:54.77ID:NN2kaL4Y
>>184
これ読んでみようかと思ったら

>読者は関数型言語とドメイン駆動設計に慣れている必要がある

とあるんだが、読むのにドメイン駆動設計の深ーい知識は必要だった?
0188デフォルトの名無しさん
2020/09/23(水) 06:16:40.99ID:VKAwJeUe
DDD興味ある
大いに語るがよい
0189デフォルトの名無しさん
2020/09/23(水) 07:12:30.61ID:SbRHy3fQ
>>187
必要最小限ではあるがScalaの文法解説と、各ドメインオブジェクトの解説は入っていたはず。
知っていれば理解が進みやすいくらいに考えてればいいはず。
0192デフォルトの名無しさん
2020/12/02(水) 20:38:28.14ID:E6FeESB6
Freeモナドなんて言語埋め込みDSLを作るってだけ
0194デフォルトの名無しさん
2021/03/31(水) 07:17:34.67ID:PqSCUqXE
DDD、CQRS、イベントソーシング…
企業内システムでここまでやってるとこってあるんだろうか
参照系中心のシステムでDDDやるのは愚行?
0195デフォルトの名無しさん
2021/05/18(火) 06:36:21.05ID:Z0RWJbQc
おれはさとった

名前がちがうだけのValueObjectクラスだけつくって
メソッド引数の位置を間違えられないようにしときゃいいんだ
それだけでいいんだ

バリデーションは入り口でやる
中は値が正しい前提でまったくチェック不要

それがDDD
0196デフォルトの名無しさん
2021/05/19(水) 20:38:26.97ID:NeVz061v
それだけでDDDは語れないような…
いまだに集約がわからんよ
0197デフォルトの名無しさん
2021/05/23(日) 21:05:34.48ID:hHIInayx
教科書が概念的でよくわからんことばっかほざいてる時点でおかしい
サンプルを一発提示すればああこんなのねって
それで終わるだろ!?
0198デフォルトの名無しさん
2021/07/13(火) 00:57:28.25ID:FnRTq1rf
ガサッと取ってきて変更して全部更新!ってアホなんって思った
これの何がいいの?
0200デフォルトの名無しさん
2021/07/14(水) 08:14:14.87ID:wgyTk/up
>>197
2003年頃ならともかく。OSSのアプリが溢れている今の状況ならこのアプリのこの部分はこのパターンを使っているって示せると思う。
0201デフォルトの名無しさん
2021/08/10(火) 20:46:36.95ID:R7L3+gXm
>>191
亀レスだが、OOPを補完するのがDDDだろうに
なんでDDDスレでOOPが時代遅れだと言えるのか疑問
0202デフォルトの名無しさん
2021/08/10(火) 23:57:50.00ID:yd00h36W
>>201
OOPより上位レイヤーの概念なのでOOPを補完するものではないよ
Eric Evansの最初の本ではDDDの実装例としてOOPが使われただけ
関数型で実装する例もある
0203デフォルトの名無しさん
2021/08/11(水) 22:58:43.10ID:AUz9CV9O
>>202
> OOPより上位レイヤーの概念なので
> Eric Evansの最初の本ではDDDの実装例としてOOPが使われた

そういうのを補完って言うのでは?
0204デフォルトの名無しさん
2021/08/12(木) 23:34:58.79ID:1njm/kBk
>>203
お前は国語から勉強し直さないとこの先辛いぞ?
お前は概念とか言ってる場合じゃない
0205デフォルトの名無しさん
2021/08/13(金) 08:38:17.53ID:yFah4eQP
ほかん
【補完】
《名・ス他》
足りない点を補って完全にすること。

OOPに足りない部分をDDDで補ってるって言いたかったのでは?
別に変だとは思えないけど
0206デフォルトの名無しさん
2021/08/13(金) 09:30:37.30ID:4chv34Gy
OOPを補完するのがプログラミングだろうに
なんでプログラミングスレでOOPが時代遅れだと言えるのか疑問

OOPに足りない部分をプログラミングで補ってるって言いたかったのでは?
0207デフォルトの名無しさん
2021/08/13(金) 11:25:44.59ID:klCtaRRF
OOPはプログラミングを補うものでありプログラミングがOOPを補う訳ではない
0208デフォルトの名無しさん
2021/08/13(金) 11:56:11.61ID:VPbn/mvQ
>>205
補完などではない
そもそもOOPなどと書くから話がおかしくなる

DDDはOODを包含した概念である
0209デフォルトの名無しさん
2021/08/13(金) 13:49:07.82ID:iLxHQIIJ
OODと言い換えたところで補完もしてなければ包含もしてない

DDDをOOの文脈でしか理解できない人は抽象概念の理解がもともと不得意なのか
日本人の書いたなんちゃってDDD本で分かったつもりになってるか
そもそもOO以外を知らないか
0210デフォルトの名無しさん
2021/08/13(金) 14:28:21.12ID:klCtaRRF
お前はDDDを学んでもOOP及びOODには何の影響もないみたいだけど、俺は別にDDDで学んだ知識がOOP/OODに役立ってるので、別にどうでもいいっす。
なんで役立ったのか想像できないのなら、その程度ってことでしょう。
0212デフォルトの名無しさん
2021/08/14(土) 07:58:11.46ID:3YTtOTVG
OOPにありがちな、車やエンジンを例にした説明より
DDDの方がしっくりくるというか
あ、OOPでこんなことができるのかと目から鱗だったな
0213デフォルトの名無しさん
2021/08/14(土) 15:27:00.83ID:db9EEEoY
いつの時代になってもITの方法論は「方法論オナニストに都合のよい飯の種」の域を出ない
0214デフォルトの名無しさん
2021/08/14(土) 15:31:45.91ID:4CNv29yk
建設業のように国が規格を決めてしまえばよかったんだ
国所属の認定団体に承認された関数以外使ってはいけません
0215デフォルトの名無しさん
2021/09/16(木) 15:51:11.37ID:PMPdG/+a
DDDとは、「ドメイン知識(モデル)」を「駆動」して「開発」する開発手法であって、何か特定のアーキテクチャをあらわすものではない
0216デフォルトの名無しさん
2021/09/16(木) 15:54:48.85ID:PMPdG/+a
嘘言いました
最後のDはDevelopmentじゃなくてDesignだったわ
恥ずかしー
0218デフォルトの名無しさん
2021/09/26(日) 11:30:18.78ID:0AJzxi3v
設計はアーキテクチャを示すものじゃない
言葉が違えば意味が違う
0219デフォルトの名無しさん
2022/05/07(土) 06:20:48.85ID:Japg54lQ
DDDは大量データ更新に弱い
10万件のレコードに同じ値をセットする処理に途方もなく時間がかかる
0220デフォルトの名無しさん
2022/07/27(水) 17:37:37.82ID:hi2YYXJ0
カルト宗教だよね
設計というのはパフォーマンス要件の整理と実現に当たってのアーキテクチャを考えるために必要なわけで
機能要件にSLAがないだなんてことは設計するならばありえないし、
じゃあその要件に到達するためにシステムやミドルウェアをどう使っていくかがアーキテクトの肝なところじゃん
APPサーバに閉じた議論しかしてない時点で雑魚システムしか作れんし
雑魚システムにそもそも設計なんざいらんだろって話よ

こういう連中が言い出しそうなこと、DBは抽象化できる
そもそもファイルを保存するならテキストでもいい
依存性の逆転を駆使すればインタフェースに依存させることができるので、アプリから実装詳細が消える!

それでDBがやってくれてるトランザクション制御や成約、整合性の解決を
ファイルシステムで実装するその実装を誰が書くの?
アーキテクトを自称するなら君が書くってことだけど、いったい誰がそんなこと頼んだんだろう
0221デフォルトの名無しさん
2022/07/27(水) 17:39:26.99ID:hi2YYXJ0
型システムの理解も貧弱、DBMSの理解も貧弱、なんならネットワーク・プロトコルの理解も貧弱

一生システム完成させる気ないやる気なしエンジニアの最後の拠り所だろ
レスを投稿する


ニューススポーツなんでも実況