【DDD】ドメイン駆動設計【エリック・エヴァンス】

1デフォルトの名無しさん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)

78デフォルトの名無しさん2017/11/05(日) 19:48:21.92ID:JcEMXHd2
サービス層とMVCのコントローラは何が違うのか
情弱の俺に教えてくれよ。

79デフォルトの名無しさん2017/11/05(日) 20:15:07.05ID:34F4Igvu
>>68
最初から予定してる場合は?

80デフォルトの名無しさん2017/11/05(日) 20:21:57.83ID:hrMLtbbu
>>78
サービスって言葉は色んな意味で使われるから分かりにくい
特定のクラスに属するとマズイ処理を実装するところだと理解してるけど

MVCのCはそのまんまUIとモデルの橋渡しでしょ

81デフォルトの名無しさん2017/11/05(日) 20:29:14.50ID:qSskq3Yv
ドメインモデルっていうくらいなんだから
サービスドメインはモデルでしょうな

82デフォルトの名無しさん2017/11/05(日) 21:16:49.89ID:2uZ0aYp5
>>63
その割にはドメインに対する理解とかには全然注力しない印象。
業務系だったら、簿記や会計の勉強したりとか。

83デフォルトの名無しさん2017/11/05(日) 21:20:40.35ID:mZtOvkfq
>>67
>OO系のスレってアンチが粘着しがち
OOが難しいから否定したいんだろう
関数型のスレにもいるだろ

84デフォルトの名無しさん2017/11/05(日) 22:13:53.69ID:mZtOvkfq
>>78
似てるけど微妙に違う

Mにドメイン層とインフラ層が一緒になってるのは分かるよな
サービス(アプリ)層はCとMの一部が一緒になってる

85デフォルトの名無しさん2017/11/06(月) 00:29:31.84ID:P59vPp8D
ここは軽量DDDを議論するところなの?

86デフォルトの名無しさん2017/11/06(月) 13:22:13.87ID:s60z57bG
>>84
リクエストとレスポンスのインタラクションは
コントローラ
データの「加工」「変換」「検索」「演算」「結合」
ここらへんが絡む物はサービス?
DBMSのコネクションの利用はモデルじゃなくてサービスかな
モデルはただ単に「属性」を持っているだけでいい。
それと最低限のゲッターとセッター
こんなところだろうか??
バリデーションや業務ルールのチェックはモデル??サービス??

87デフォルトの名無しさん2017/11/06(月) 19:18:41.19ID:9L+ZJ2Xp
考えるな 感じるんだ

じゃなくて
周りに合わせるんだ
どんなくそ設計でも検証通ったコードと一貫性が保たれてるほうが品質高い


サービスだとおもいます

88デフォルトの名無しさん2017/11/10(金) 15:55:49.97ID:WtBM3Wp4
他人が構築したドメイン構造を把握するスキルも
重要なのかな?
日本のSIlerの場合常駐先がしょっちゅう変わったりする
んだからそうなるとドメインを構築しようとか
どんなドメインなのかの把握が面倒になってしまう。

89デフォルトの名無しさん2017/11/10(金) 21:17:00.97ID:LsbUks3P
>>86
いろんな考え方があるけど一番シンプルなのは
DDDではドメインが一番大事だからドメインと他を切り分けること

UIとDBは明らかに分かると思うからそれをどけて
残るのはアプリ(サービス)層とドメイン層の区別

両者は混同されやすくサービスの肥大化がよく起こるので
リファクタリングを続けて継続的に
ドメインの知識はドメイン層へと移動させていく

>バリデーションや業務ルールのチェック
たしかにこれはどっちに置くか難しいけど
私ならドメインの知識になってるかどうかで考える

たとえばよくある例では日付でうるう年の判定などは
明らかにドメインの知識だからドメイン層に置く

90デフォルトの名無しさん2017/11/12(日) 10:23:37.61ID:j0JK3XOe
バリデーションはエラーメッセージ、UIの強調表示なども絡むからどう考えたってプレゼンテーション層でしょ
ビューモデル(プレゼンテーションの都合であるモノ)のプロパティ属性にバリデーションルールを書くことが標準的になっている点からもこの事実は明らか

91デフォルトの名無しさん2017/11/13(月) 07:29:43.51ID:XVC/GNte
>>90
ASP.NETだけどビューにバリデーション書いたとしてjavascriptゴニョゴニョされてバリデーション突破されたら怖いからコントローラにもチェック入れてる
設計的に正しいのかは解らない

92デフォルトの名無しさん2017/11/13(月) 08:20:06.77ID:1kxbOfqW
>>91
>>90とやってること一緒じゃね?

93デフォルトの名無しさん2017/11/13(月) 08:41:32.54ID:vmC6RyQT
目的が違えば両方あってもいいんじゃね?ユーザーの利便のためか自衛のためか。

94デフォルトの名無しさん2017/11/13(月) 09:17:00.78ID:KJNT45pE
>>91
ASP.NETって、ビューモデルのバリデーションをクライアント側のJSで突破できちゃうの?

95デフォルトの名無しさん2017/11/13(月) 12:08:35.87ID:1LsyXLAY
ジャバオのバリデータだろ

96デフォルトの名無しさん2017/11/13(月) 18:48:33.23ID:1kxbOfqW
>>94
そう書いたらそうなる
普通はControllerでチェックする

97デフォルトの名無しさん2017/11/13(月) 20:17:19.09ID:IDSFIQtw
>>90
クライアントのJSで検証したらサーバー側のコントローラで検証しなくても良いと?
んなわけねーだろ普通両方やるわ

98デフォルトの名無しさん2017/11/13(月) 22:06:30.64ID:KJNT45pE
プレゼンテーション層でチェック
クライアントでチェックする

一緒にしてる奴がいるね
ちなみにコントローラーもプレゼンテーション層な

99デフォルトの名無しさん2017/11/14(火) 05:47:03.90ID:9Gbq8NEA
>>98
>>97
https://blogs.msdn.microsoft.com/nakama/2009/09/28/293/
で触れてるような信頼境界の話だろ

100デフォルトの名無しさん2017/11/14(火) 07:18:29.77ID:R9xQaEyZ
>>98
Controlerってアプリケーション層じゃ無いんだ
出典無いから自信無いけど

101デフォルトの名無しさん2017/11/14(火) 19:38:43.49ID:kwaLWx7P
セキュリティとか悪意のある攻撃を想定すると
話が厄介になるね
セキュリティ考慮でなければ、情報の源泉に近い
JSでバリデーション1本だけで十分だろう。
セキュリティとか認証が絡むとこういったレイヤの層分け
が狂う要因になるのだろうか?

102デフォルトの名無しさん2017/11/15(水) 03:47:42.79ID:3vTQ1KLC
>>101
仕事で使うなら想定しないケースも希だと思うけど

103デフォルトの名無しさん2017/11/16(木) 07:24:52.29ID:yg2PUXdS
DIのフレームワークとDDDって共存できるの

DDDってMVCみたいなレイヤードアーキテクチャからドメイン抜き出したもの程度しか認識ない人間だけど

104デフォルトの名無しさん2017/11/16(木) 07:30:52.62ID:DVV+REXJ
>>103
MVCはレイヤードアーキテクチャじゃないよ

105デフォルトの名無しさん2017/11/16(木) 12:33:04.40ID:i9LdlFRo
>>104
モデルビューコントローラはレイヤじゃ無いのか
そう言えばモデル層とか聞かないね

106デフォルトの名無しさん2017/11/17(金) 08:39:38.18ID:jlfmLuFK
validationとormがDDDのボトルネック
要するに机上の空論

107デフォルトの名無しさん2017/11/17(金) 23:50:35.86ID:tGAvpZAK
UIの要求が強すぎるとうまくいかんのだわ
ドメインクラスをフロントとバックの両方に書くはめになる
Node.jsだとそのへんうまくいくのかな

108デフォルトの名無しさん2017/11/18(土) 13:44:21.91ID:VuzSnHPO
お前ら設計書ってどうしてる?
仕事でやる以上は設計書出せと言われたら書かなきゃならない
設計書がレビュー通らなきゃコーディングは始められない
バリューオブジェクトの設計書とかあまりにも馬鹿馬鹿しいんだけど何百個も書かなければならない

109デフォルトの名無しさん2017/11/18(土) 15:21:12.87ID:2Obhafep
>>108
なんて言ってほしいのかわからない
仕事なんだからやれって言われたらヤるしないって立場なんでしょ?
じゃあやるしかないじゃん

バリューオブジェクト数百個っていったらそれなりの規模のシステムだろうから
バリューオブジェクトを使わなかったとしてもどうせ大量の設計書を書かないといけないし、
今となってはそういう仕事を受けたのを悔やむことぐらいしかできないのでは?

110デフォルトの名無しさん2017/11/18(土) 15:39:25.13ID:5iID0bAm
しかも設計書がExcel方眼紙なんだよな。

111デフォルトの名無しさん2017/11/18(土) 15:47:54.83ID:drMX1Uce
設計書なんで実装終わったときに揃ってれば良いだろ
どうせ開発中にコロコロ仕様変わるなんてよくある話だ

112デフォルトの名無しさん2017/11/18(土) 16:01:31.09ID:yU1kJYiv
レビューがあるから先に設計書を書かないとダメ
でも設計書で設計するとグダグダになる
設計書から目をそらす以外にうまくいく方法があるなら教えてくれ

113デフォルトの名無しさん2017/11/19(日) 08:43:56.41ID:9uDeEGku
テキトーに書いておく
レビューする側に解ってる人がいるのは稀だからタイテーはこれで何とかなる

114デフォルトの名無しさん2017/11/19(日) 11:30:11.10ID:CpArH3Dx
先にユニットテスト済みのコードを書く
doxygenで設計書生成
レビューしてOKを貰う
コーディングしてるふりして1日サボる
コードをプッシュ

115デフォルトの名無しさん2017/11/19(日) 12:43:48.77ID:+HG5lDnd
>>114
doxygenってExcel方眼紙出せたっけ?

116デフォルトの名無しさん2017/11/19(日) 13:09:42.41ID:CpArH3Dx
エクセル設計書なんて使わない

117デフォルトの名無しさん2017/11/19(日) 13:56:40.03ID:+HG5lDnd
>>116
使いたかないけどさ。
たぶん >>108 にそんな自由はない。

118デフォルトの名無しさん2017/11/19(日) 16:15:48.08ID:lEYmgXHF
Excelに貼り付けるテキストを自作ツールで出力。

119デフォルトの名無しさん2017/11/22(水) 15:13:08.97ID:LuqUsrvZ
ビジネスロジック層と永続化層の違いについて聞きたいんだが
「ビジネスロジック」は「犬」とか「リンゴ」とかいうクラスを作る層で
「永続化層」は「犬テーブルを操作するオブジェクト」を定義するクラス
を作る(というかPDOとかActive Recordとかが用意している)という
認識でいいのか?

120デフォルトの名無しさん2017/11/22(水) 18:17:46.26ID:Fja20xY7
ざっくり言うとデータベースに関係あるのがインフラ層

121デフォルトの名無しさん2017/12/05(火) 00:47:41.31ID:dpNb6B9r
エヴァとのコラボカードナナコ最高。http://maeda-gourmet.jp/2016/09/09/nanaco/

122デフォルトの名無しさん2018/05/23(水) 21:07:55.14ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

Q3XKO

123デフォルトの名無しさん2018/07/05(木) 00:49:06.04ID:RfoszcD2
ZJY

124デフォルトの名無しさん2018/09/09(日) 06:43:58.22ID:HEZvkUhE
ゲーム開発でDDDは使えますか?
その場合のドメインとドメインエキスパートとは例えば何、誰を指すでしょうか?

125デフォルトの名無しさん2018/10/08(月) 00:49:59.53ID:Kbmtp0Cm
ボトムアップドメイン駆動設計
https://ddd-community-jp.connpass.com/event/103428/

ぜひ参加してください!

126デフォルトの名無しさん2018/10/11(木) 20:53:29.46ID:f3Pn3eWA
Eric Evans氏はドメイン駆動設計(DDD) は未完成だと述べた
https://www.infoq.com/jp/news/2018/10/ddd-not-done

127デフォルトの名無しさん2018/10/24(水) 09:23:12.56ID:HQt07idp
>>125
講師がひとりで勝手に盛り上がってて寒いセミナーだったな
マーケ視点で物事を考えない典型的駄目エンジニアって感じだから内容も薄い薄い

128デフォルトの名無しさん2018/10/25(木) 01:29:02.78ID:c44lxtY/
こんなやつらがDDDやってるんだなってのがわかって結構面白かったけどね
今日の内容で本書きます!って言われたときはさすがに周り失笑してたけど

新着レスの表示
レスを投稿する