第1部 ドメインモデルを機能させる
ドメイン駆動設計におけるモデルの有用性
ソフトウェアの核心
第1章 知識をかみ砕く
効果的なモデリングの要素
知識のかみ砕き
継続的学習
知識豊富な設計
例1.1——隠された概念を引き出す
深いモデル
第2章 コミュニケーションと言語の使い方
ユビキタス言語(UBIQUITOUS LANGUAGE)
例2.1——貨物輸送プログラムを完成させる
声に出してモデリングする
1つのチームに1つの言語
ドキュメントと図
書かれた設計ドキュメント
実行可能な基盤
説明のためのモデル
例2.2——輸送業務と経路
第3章 モデルと実装を結びつける
モデル駆動設計(MODEL-DRIVEN DESIGN)
モデリングパラダイムとツールによるサポート
例3.1——手続き型からモデル駆動へ
骨格を見せる:なぜモデルがユーザにとって重要なのか?
実践的モデラ(HANDS ON MODELERS)
【DDD】ドメイン駆動設計【エリック・エヴァンス】
1デフォルトの名無しさん
2017/10/24(火) 19:39:06.49ID:jO+jDbIG12デフォルトの名無しさん
2017/10/24(火) 19:45:38.94ID:jO+jDbIG 別々の道(SEPARATE WAYS)
例14.5——保険プロジェクトの縮小化
公開ホストサービス(OPEN HOST SERVICE)
公表された言語(PUBLISHED LANGUAGE)
例14.6——化学のための公表された言語
象のモデルを統一する
モデルコンテキスト戦略を選択する
チームでの意思決定と、より上層での意思決定
コンテキストに自らの身を置く
境界を変換する
変更できないものを受け入れる:外部システムの輪郭を描く
外部システムとの関係
設計中のシステム
別のモデルで特殊な要求を満たす
デプロイ
トレードオフ
すでにプロジェクトが進行中の場合
変換
コンテキストをマージする:別々の道 → 共有カーネル
コンテキストをマージする:共有カーネル → 継続的な統合
レガシーシステムを段階的に廃止する
公開ホストサービス → 公表された言語
例14.5——保険プロジェクトの縮小化
公開ホストサービス(OPEN HOST SERVICE)
公表された言語(PUBLISHED LANGUAGE)
例14.6——化学のための公表された言語
象のモデルを統一する
モデルコンテキスト戦略を選択する
チームでの意思決定と、より上層での意思決定
コンテキストに自らの身を置く
境界を変換する
変更できないものを受け入れる:外部システムの輪郭を描く
外部システムとの関係
設計中のシステム
別のモデルで特殊な要求を満たす
デプロイ
トレードオフ
すでにプロジェクトが進行中の場合
変換
コンテキストをマージする:別々の道 → 共有カーネル
コンテキストをマージする:共有カーネル → 継続的な統合
レガシーシステムを段階的に廃止する
公開ホストサービス → 公表された言語
13デフォルトの名無しさん
2017/10/24(火) 19:46:02.22ID:jO+jDbIG 第15章 蒸留
コアドメイン(CORE DOMAIN)
コアを選択する
誰がこの作業をやるのか?
蒸留の拡大
汎用サブドメイン(GENERIC SUBDOMAINS)
例15.1——2つのタイムゾーンの物語
汎用とは再利用可能という意味ではない
プロジェクトのリスク管理
ドメインビジョン声明文(DOMAIN VISION STATEMENT)
強調されたコア(HIGHLIGHTED CORE)
蒸留ドキュメント
コアにフラグを立てる
プロセスツールとしての蒸留ドキュメント
凝集されたメカニズム(COHESIVE MECHANISMS)
例15.2——組織図におけるメカニズム
汎用サブドメイン対凝集されたメカニズム
メカニズムがコアドメインの一部である場合
例15.3——一巡:組織図がメカニズムを再び吸収する
蒸留して宣言的スタイルにする
隔離されたコア(SEGREGATED CORE)
隔離されたコアを作成するコスト
チームの意思決定を進化させる
例15.4——貨物輸送モデルのコアを隔離する
抽象化されたコア(ABSTRACT CORE)
深いモデルの蒸留
リファクタリングの対象を選ぶ
コアドメイン(CORE DOMAIN)
コアを選択する
誰がこの作業をやるのか?
蒸留の拡大
汎用サブドメイン(GENERIC SUBDOMAINS)
例15.1——2つのタイムゾーンの物語
汎用とは再利用可能という意味ではない
プロジェクトのリスク管理
ドメインビジョン声明文(DOMAIN VISION STATEMENT)
強調されたコア(HIGHLIGHTED CORE)
蒸留ドキュメント
コアにフラグを立てる
プロセスツールとしての蒸留ドキュメント
凝集されたメカニズム(COHESIVE MECHANISMS)
例15.2——組織図におけるメカニズム
汎用サブドメイン対凝集されたメカニズム
メカニズムがコアドメインの一部である場合
例15.3——一巡:組織図がメカニズムを再び吸収する
蒸留して宣言的スタイルにする
隔離されたコア(SEGREGATED CORE)
隔離されたコアを作成するコスト
チームの意思決定を進化させる
例15.4——貨物輸送モデルのコアを隔離する
抽象化されたコア(ABSTRACT CORE)
深いモデルの蒸留
リファクタリングの対象を選ぶ
14デフォルトの名無しさん
2017/10/24(火) 19:46:30.33ID:jO+jDbIG 第16章 大規模な構造
進化する秩序(EVOLVING ORDER)
システムのメタファ(SYSTEM METAPHOR)
「素朴なメタファ」とそれを必要としない理由
責務のレイヤ(RESPONSIBILITY LAYERS)
例16.1——深く掘り下げる:輸送システムをレイヤ化する
適切なレイヤを選択する
知識レベル(KNOWLEDGE LEVEL)
例16.2——従業員の給料と年金(1)
例16.3——従業員の給料と年金(2)知識レベル
着脱可能コンポーネントのフレームワーク(PLUGGABLE COMPONENT FRAMEWORK)
例16.4——SEMATECH CIMフレームワーク
構造による制約をどの程度厳しくするべきか?
ふさわしい構造へのリファクタリング
ミニマリズム
コミュニケーションと自己規律
再構成によってしなやかな設計がもたらされる
蒸留によって負荷が軽減される
進化する秩序(EVOLVING ORDER)
システムのメタファ(SYSTEM METAPHOR)
「素朴なメタファ」とそれを必要としない理由
責務のレイヤ(RESPONSIBILITY LAYERS)
例16.1——深く掘り下げる:輸送システムをレイヤ化する
適切なレイヤを選択する
知識レベル(KNOWLEDGE LEVEL)
例16.2——従業員の給料と年金(1)
例16.3——従業員の給料と年金(2)知識レベル
着脱可能コンポーネントのフレームワーク(PLUGGABLE COMPONENT FRAMEWORK)
例16.4——SEMATECH CIMフレームワーク
構造による制約をどの程度厳しくするべきか?
ふさわしい構造へのリファクタリング
ミニマリズム
コミュニケーションと自己規律
再構成によってしなやかな設計がもたらされる
蒸留によって負荷が軽減される
15デフォルトの名無しさん
2017/10/24(火) 19:46:47.01ID:jO+jDbIG 第17章 戦略をまとめ上げる
大規模な構造と境界づけられたコンテキストを組み合わせる
大規模な構造と蒸留を組み合わせる
まず評価する
誰が戦略を策定するのか?
アプリケーション開発から現れる構造
顧客に焦点を合わせたアーキテクチャチーム
戦略的設計上の意思決定を行うために欠かせない6つのこと
同じことが技術的なフレームワークにも当てはまる
マスタプランに注意すること
結論
エピローグ
展望
大規模な構造と境界づけられたコンテキストを組み合わせる
大規模な構造と蒸留を組み合わせる
まず評価する
誰が戦略を策定するのか?
アプリケーション開発から現れる構造
顧客に焦点を合わせたアーキテクチャチーム
戦略的設計上の意思決定を行うために欠かせない6つのこと
同じことが技術的なフレームワークにも当てはまる
マスタプランに注意すること
結論
エピローグ
展望
16デフォルトの名無しさん
2017/10/25(水) 19:04:27.51ID:44Xm0aVs 「境界づけられたコンテキスト」が
何のことかよくわからないので教えてください。
何のことかよくわからないので教えてください。
2017/10/25(水) 19:08:44.29ID:aatZ8FSF
>「境界づけられたコンテキスト」
ユビキタス言語の文脈が変わる境界のこと
たとえば「アカウント」は
金融なら口座だけど
Webサービスなら登録情報とか
ユビキタス言語の文脈が変わる境界のこと
たとえば「アカウント」は
金融なら口座だけど
Webサービスなら登録情報とか
18デフォルトの名無しさん
2017/10/25(水) 19:31:11.15ID:44Xm0aVs >17
その境界はパッケージとかディレクトリとかで判断せよ
みたいな感じ?
その境界はパッケージとかディレクトリとかで判断せよ
みたいな感じ?
2017/10/25(水) 19:49:21.67ID:aatZ8FSF
20デフォルトの名無しさん
2017/10/25(水) 20:12:30.45ID:44Xm0aVs >>19
あーそうか、
Webサービスの場合、コンパイルしてバイナリ化しないから、
PHPの場合配備するAppはディレクトリ構造まんまになるんだけど、
システムの境界はどうやって判断するの?
設計図上でしか判断し得ないの?
サーバマシンの区切り? ディレクトリの区切り? URLのドメイン名の
区切り? その「DDDのあるドメイン」って実際のファイルシステム上では
どのように区切るの?
あーそうか、
Webサービスの場合、コンパイルしてバイナリ化しないから、
PHPの場合配備するAppはディレクトリ構造まんまになるんだけど、
システムの境界はどうやって判断するの?
設計図上でしか判断し得ないの?
サーバマシンの区切り? ディレクトリの区切り? URLのドメイン名の
区切り? その「DDDのあるドメイン」って実際のファイルシステム上では
どのように区切るの?
2017/10/25(水) 20:15:43.64ID:aatZ8FSF
>>20
コンテキストの境界をシステムで表現する際には
(Javaなら)パッケージとその名前空間を使う
でもあくまでビジネスのドメインが先にあって
それにシステムを合わせるのであって
システムだけで判断したらダメだからね
コンテキストの境界をシステムで表現する際には
(Javaなら)パッケージとその名前空間を使う
でもあくまでビジネスのドメインが先にあって
それにシステムを合わせるのであって
システムだけで判断したらダメだからね
2017/10/25(水) 21:51:00.68ID:0GYD+24d
「境界づけられたコンテキスト」は組織構造やシステム構成でも変わりうるよ
特に組織構造への依存度は高いのでそれに応じたいくつかの戦略パターンが解説されてる
受注チームと出荷チームでは「商品」という言葉の意味が違ったり
レガシーシステムと新システムでは「商品」の属性やの振る舞いが違ったりするみたいなこと
一つの境界の中ではそういう違いは許されない
企業全体で統一された一つのモデルや用語集を作ろうとするのではなく
コンテキスト境界に閉じた中でモデルや語彙を明確にしようというのがDDDの考え方
特に組織構造への依存度は高いのでそれに応じたいくつかの戦略パターンが解説されてる
受注チームと出荷チームでは「商品」という言葉の意味が違ったり
レガシーシステムと新システムでは「商品」の属性やの振る舞いが違ったりするみたいなこと
一つの境界の中ではそういう違いは許されない
企業全体で統一された一つのモデルや用語集を作ろうとするのではなく
コンテキスト境界に閉じた中でモデルや語彙を明確にしようというのがDDDの考え方
23デフォルトの名無しさん
2017/10/27(金) 20:24:53.95ID:BY+fhh/f 実装とか物理設計の話になってすまないけど、
DBMSの「テーブルが所属するDB名の境界」が
上記の「境界づけられたコンテキストの」「境界」
に当たるのだろうか。
DBMSの「テーブルが所属するDB名の境界」が
上記の「境界づけられたコンテキストの」「境界」
に当たるのだろうか。
24デフォルトの名無しさん
2017/10/27(金) 20:35:29.16ID:NaPnvd1g コンテキストとDBインスタンスを一致させてる
2017/10/28(土) 00:06:52.32ID:EvuLUtue
2017/10/29(日) 22:40:08.05ID:CrDMqcML
ドメインて何ですか
2017/10/29(日) 22:58:36.50ID:RyqL6Q1z
問題領域
2017/10/30(月) 12:05:58.95ID:5RpC60IR
何が問題なんですか?
2017/10/30(月) 12:06:24.63ID:5RpC60IR
トラブルエリアじゃ駄目なんですか?
2017/11/03(金) 08:47:57.76ID:0WQ4WnED
大雑把に言うと、クラス名やメソッド名、変数名を使って仕事の会話を
しましょうと言うだけ。その逆も然り、それで違和感を感じたら設計や
用語を見直す。
しましょうと言うだけ。その逆も然り、それで違和感を感じたら設計や
用語を見直す。
2017/11/03(金) 08:53:45.98ID:0WQ4WnED
バリューオブジェクトやエンティティとかリポジトリィとかは単なる設計/実装テクニック。
2017/11/03(金) 09:43:41.21ID:Ro85MhDs
2017/11/03(金) 10:22:22.91ID:wXWM393A
根本的な正解をヨロシク
34デフォルトの名無しさん
2017/11/03(金) 10:33:38.13ID:BtRYOGnT 俺も宜しく。
35デフォルトの名無しさん
2017/11/03(金) 14:11:54.12ID:CsNI9L5l ビューモデル、データモデルとドメインモデルとの相互変換がめんどくさすぎる
バリューオブジェクトと集約ルートの考え方のせいで自動マッピング全然効かなくなるし
バリューオブジェクトと集約ルートの考え方のせいで自動マッピング全然効かなくなるし
36デフォルトの名無しさん
2017/11/04(土) 03:13:26.11ID:b5UX6G3j 正直O/Rマッパーで取ってきたデータの入れ物をこねくり回す方が100倍楽なんだが、
大規模プロジェクトや長期のメンテが必要な場合以外でDDD使うケースってどれぐらいあるんだろ?
大規模プロジェクトや長期のメンテが必要な場合以外でDDD使うケースってどれぐらいあるんだろ?
37デフォルトの名無しさん
2017/11/04(土) 05:04:45.77ID:7D9PjzRB お前らががO/Rマッパーの中身を作ったことがあるならいいけど
そうじゃないと、その便利なO/Rマッパーに自分の技術者としての
存在価値を食い殺されることになるから気をつけろ。
DIY: 1度は作れ。最初から既存の便利なものは買うな、取り寄せるな。
DRY: 同じモノは2度も作るな。
つまり「自分の力で1度だけ作れ。」
0回もダメ, 2回以上同じモノを何度も作るのもダメ。
そうじゃないと、その便利なO/Rマッパーに自分の技術者としての
存在価値を食い殺されることになるから気をつけろ。
DIY: 1度は作れ。最初から既存の便利なものは買うな、取り寄せるな。
DRY: 同じモノは2度も作るな。
つまり「自分の力で1度だけ作れ。」
0回もダメ, 2回以上同じモノを何度も作るのもダメ。
38デフォルトの名無しさん
2017/11/04(土) 08:52:57.07ID:/k8c/hp8 DDDってこんな感じじゃん?
画面: 集約ルートのメソッドのパラメータを入力させる
コントローラ: 入力をVOに変換してサービスに投げる
サービス: リポジトリから集約ルートとってくる & 集約ルートのメソッド呼び出す ; 集約ルートをリポジトリに保存する
でもユーザーが求めてるものってこれじゃないんだよね
画面: テーブル(データそのもの)を自由に編集 & 入力に間違いあれば警告 & 入力サポート処理
コントローラ: データ層に丸投げ
データ層: 受け取ったデータをそのまま保存する & 場合によりSQLでビジネスロジックを実行して結果を保存
ユーザーはこういうアプリケーションが大好き
とにかくひとつの画面に関連ありそうなものが全部見えて全部入力できないと気が済まない
集約ルートとか関係なしにぶら下がってるエンティティも直接編集したい
理想像はエクセルを機能拡張したようなもの
そのかわり入力に間違いがないようにバリデーションだけは異様にしっかりする
DDDはユーザーが求めてるものとは違うんだよ
エレガントなアプリを作りたいっていう開発者の都合でユーザーの求めているものとは全く異なるものを作ったら、優秀な技術者じゃなくて、ニーズが読めない二流って評価されちまう
MicrosoftもそれがわかってるからASP.NET MVCやEFのようなフレームワークを作った
ビューモデル、データモデルは振る舞いを持たない素朴なデータの集合の方がわかりやすいし楽だと割り切った
そして検証の工数を下げるために属性バリデーションが発達した
これは他の言語でもだいたい同じ
世界のトップレベルの開発者たちがDDDを否定して貧血ドメイン+強力な検証というパターンを選択した
画面: 集約ルートのメソッドのパラメータを入力させる
コントローラ: 入力をVOに変換してサービスに投げる
サービス: リポジトリから集約ルートとってくる & 集約ルートのメソッド呼び出す ; 集約ルートをリポジトリに保存する
でもユーザーが求めてるものってこれじゃないんだよね
画面: テーブル(データそのもの)を自由に編集 & 入力に間違いあれば警告 & 入力サポート処理
コントローラ: データ層に丸投げ
データ層: 受け取ったデータをそのまま保存する & 場合によりSQLでビジネスロジックを実行して結果を保存
ユーザーはこういうアプリケーションが大好き
とにかくひとつの画面に関連ありそうなものが全部見えて全部入力できないと気が済まない
集約ルートとか関係なしにぶら下がってるエンティティも直接編集したい
理想像はエクセルを機能拡張したようなもの
そのかわり入力に間違いがないようにバリデーションだけは異様にしっかりする
DDDはユーザーが求めてるものとは違うんだよ
エレガントなアプリを作りたいっていう開発者の都合でユーザーの求めているものとは全く異なるものを作ったら、優秀な技術者じゃなくて、ニーズが読めない二流って評価されちまう
MicrosoftもそれがわかってるからASP.NET MVCやEFのようなフレームワークを作った
ビューモデル、データモデルは振る舞いを持たない素朴なデータの集合の方がわかりやすいし楽だと割り切った
そして検証の工数を下げるために属性バリデーションが発達した
これは他の言語でもだいたい同じ
世界のトップレベルの開発者たちがDDDを否定して貧血ドメイン+強力な検証というパターンを選択した
2017/11/04(土) 09:24:40.15ID:4lDAx3zT
今の仕事ドメインもどきの実装になってる
サービスは細かく区切ってあるけど
おのおの自分の担当データの整合性が保たれることだけを保証する
読み出しは自由
サービスは細かく区切ってあるけど
おのおの自分の担当データの整合性が保たれることだけを保証する
読み出しは自由
2017/11/04(土) 13:26:31.92ID:O0AU1SEY
>>38
どこでどう勘違いしたらそんな理解になるの?
どこでどう勘違いしたらそんな理解になるの?
41デフォルトの名無しさん
2017/11/04(土) 13:40:02.20ID:/k8c/hp8 >>40
反論は最低限、論理的にお願いします
反論は最低限、論理的にお願いします
42デフォルトの名無しさん
2017/11/04(土) 14:50:46.68ID:7D9PjzRB 論理的推論(ろんりてきすいろん、英: logical reasoning)は、
論理学において演繹、帰納、アブダクション(仮説形成)の3種類に区別されうる。
「前提条件」(precondition)、「結論」(conclusion)、
そして「『前提条件』は『結論』を含意する」という
「規則」(rule)があるとすると、それら3種の推論は次の仕方で説明されうる。
演繹
演繹は「結論」を規定することを意味する。この推論は
「規則」と「前提条件」を用いて「結論」を導くことである。
例えば、「雨がふると芝生は湿る。雨がふっている。したがって、芝生は湿っている。
」数学者は通常、この種の推論にかかわっている。
帰納
帰納は「規則」を規定することを意味する。この推論は「前提条件」の次に起こる
「結論」の諸事例の一部から「規則」を学ぶことである。
例えば、「これまで、雨がふるといつも芝生は湿ってきた。
したがって、雨がふると芝生は湿る。」
科学者は通常、この種の推論にかかわっている。
アブダクション(仮説形成)
アブダクション(仮説形成)は過去事象についての「前提条件」
を推定することを意味する。この推論は現在確定される
「結論」と「規則」を用いて「ある『前提条件』が『結論』を
説明することができるだろう」ということを裏づけることである。
例えば、「芝生が湿っている。雨がふると芝生が湿る。
したがって、雨がふったに違いない。」
歴史科学者や診断専門医、探偵は通常、この種の推論にかかわっている。
https://ja.wikipedia.org/wiki/%E8%AB%96%E7%90%86%E7%9A%84%E6%8E%A8%E8%AB%96
論理学において演繹、帰納、アブダクション(仮説形成)の3種類に区別されうる。
「前提条件」(precondition)、「結論」(conclusion)、
そして「『前提条件』は『結論』を含意する」という
「規則」(rule)があるとすると、それら3種の推論は次の仕方で説明されうる。
演繹
演繹は「結論」を規定することを意味する。この推論は
「規則」と「前提条件」を用いて「結論」を導くことである。
例えば、「雨がふると芝生は湿る。雨がふっている。したがって、芝生は湿っている。
」数学者は通常、この種の推論にかかわっている。
帰納
帰納は「規則」を規定することを意味する。この推論は「前提条件」の次に起こる
「結論」の諸事例の一部から「規則」を学ぶことである。
例えば、「これまで、雨がふるといつも芝生は湿ってきた。
したがって、雨がふると芝生は湿る。」
科学者は通常、この種の推論にかかわっている。
アブダクション(仮説形成)
アブダクション(仮説形成)は過去事象についての「前提条件」
を推定することを意味する。この推論は現在確定される
「結論」と「規則」を用いて「ある『前提条件』が『結論』を
説明することができるだろう」ということを裏づけることである。
例えば、「芝生が湿っている。雨がふると芝生が湿る。
したがって、雨がふったに違いない。」
歴史科学者や診断専門医、探偵は通常、この種の推論にかかわっている。
https://ja.wikipedia.org/wiki/%E8%AB%96%E7%90%86%E7%9A%84%E6%8E%A8%E8%AB%96
43デフォルトの名無しさん
2017/11/04(土) 18:46:52.01ID:/k8c/hp8 反論はないということですね
やっぱりDDDはアンチパターンなんだ
やっぱりDDDはアンチパターンなんだ
44デフォルトの名無しさん
2017/11/04(土) 19:11:47.69ID:KxJ3WBAq 貧血ドメインごとに専用のサービスクラスを作るのはトランザクションスクリプト?
2017/11/04(土) 21:10:36.19ID:Yu+eR6Tn
46デフォルトの名無しさん
2017/11/04(土) 21:21:57.79ID:/k8c/hp847デフォルトの名無しさん
2017/11/04(土) 23:23:48.00ID:b5UX6G3j48デフォルトの名無しさん
2017/11/04(土) 23:34:10.39ID:KxJ3WBAq >>47
Entity Frameworkが使えるよ
DBからエンティティクラスを自動生成できるのさ
トランザクションスクリプトの弱点は機能が重複することだから
エンティティごとにサービスクラス作ればその弱点を補える
現実的な落としどころとして最高だと考えるわけだが
Entity Frameworkが使えるよ
DBからエンティティクラスを自動生成できるのさ
トランザクションスクリプトの弱点は機能が重複することだから
エンティティごとにサービスクラス作ればその弱点を補える
現実的な落としどころとして最高だと考えるわけだが
49デフォルトの名無しさん
2017/11/05(日) 00:21:31.23ID:m9wZGInC2017/11/05(日) 00:23:40.39ID:sDEQ50LK
>>49
EntityFramework使ったことない人?
EntityFramework使ったことない人?
51デフォルトの名無しさん
2017/11/05(日) 00:25:55.15ID:PT/Fh6bI >>50
使ったことない前提でいいから質問に回答が欲しい
使ったことない前提でいいから質問に回答が欲しい
2017/11/05(日) 01:38:13.55ID:sDEQ50LK
>>51
正規化されたテーブルとEntityは必ずしも1:1にはならないし、そのEntityをUIでそのまま使うのはアンチパターン。
正規化されたテーブルとEntityは必ずしも1:1にはならないし、そのEntityをUIでそのまま使うのはアンチパターン。
53デフォルトの名無しさん
2017/11/05(日) 02:01:55.97ID:PT/Fh6bI2017/11/05(日) 02:37:13.36ID:mZtOvkfq
>>38
>理想像はエクセルを機能拡張したようなもの
スマートUIの方が作りやすいが変更に弱い
>世界のトップレベルの開発者たちがDDDを否定して
いやこれは違うぞ
欧米ではDDDのようなドメインモデルを選択してる
日本がガラパゴスで遅れてるだけ
>理想像はエクセルを機能拡張したようなもの
スマートUIの方が作りやすいが変更に弱い
>世界のトップレベルの開発者たちがDDDを否定して
いやこれは違うぞ
欧米ではDDDのようなドメインモデルを選択してる
日本がガラパゴスで遅れてるだけ
2017/11/05(日) 02:42:39.47ID:mZtOvkfq
>>45>>46
CRUDならDB+スマートUIで良いが
複雑なドメインや変更が多いアプリはDDDが向く
>すべてのアプケーションはDDDなしでの高生産で作れる
これは違う
スマートUIやトランザクションスクリプトの方が作りやすいが
変更に弱いので長期的には保守が大変で行き詰まってくる
CRUDならDB+スマートUIで良いが
複雑なドメインや変更が多いアプリはDDDが向く
>すべてのアプケーションはDDDなしでの高生産で作れる
これは違う
スマートUIやトランザクションスクリプトの方が作りやすいが
変更に弱いので長期的には保守が大変で行き詰まってくる
2017/11/05(日) 06:59:58.30ID:FTXfpvRm
>>53
自動生成したものをそのまま使うんならそうだね。普通はそんなことあまりしないけど。
自動生成したものをそのまま使うんならそうだね。普通はそんなことあまりしないけど。
2017/11/05(日) 08:00:27.84ID:Xk9zbmTV
2017/11/05(日) 08:03:34.39ID:Xk9zbmTV
UIでエンティティをそのまま使うってめちゃくちゃなこと言ってそれを批判する自作自演論法を駆使してる人を見て頑張り屋さんだなあと思うなど
2017/11/05(日) 08:05:12.56ID:Xk9zbmTV
ジャパニーズはドメインモデルを天皇か何かだと思っているのではないかと思うなど
2017/11/05(日) 08:06:45.10ID:Xk9zbmTV
欧米マジ凄えからマジ
2017/11/05(日) 08:09:27.54ID:Xk9zbmTV
連投すると書き込めなくなるな
2017/11/05(日) 08:18:06.55ID:ctXS9dFl
天皇ってキーワードが引っ掛かったんじゃね
俺もいろいろ書き込みしてるが
決まって煽ろうとしたときだけ
なんか変ないろんなルールに引っ掛かる
実際はAIが仕込まれていて
都合の悪い書き込みだけルールをこじつけてはじいているのでは
俺もいろいろ書き込みしてるが
決まって煽ろうとしたときだけ
なんか変ないろんなルールに引っ掛かる
実際はAIが仕込まれていて
都合の悪い書き込みだけルールをこじつけてはじいているのでは
63デフォルトの名無しさん
2017/11/05(日) 08:23:12.21ID:pKqy3dxV 日本人のDDDに対する信仰はいったいなんなんだろうな?
DDDを取り入れてない企業の若者ほどDDDに傾倒してる気がする
お前らDDDやったことないやろwww
DDDを取り入れてない企業の若者ほどDDDに傾倒してる気がする
お前らDDDやったことないやろwww
64デフォルトの名無しさん
2017/11/05(日) 08:31:03.39ID:pKqy3dxV データと振る舞いが分離して処理があちこちにばらまかれるって言う奴がいるけど
それって設計が雑でレビューもしてないだけだよね
普通に作ればトランザクションスクリプトでも疎結合高凝集になるし
それって設計が雑でレビューもしてないだけだよね
普通に作ればトランザクションスクリプトでも疎結合高凝集になるし
65デフォルトの名無しさん
2017/11/05(日) 08:35:38.15ID:pKqy3dxV ぶっちゃけ並み以上のスキルと統制力があればDDDでも貧血ドメイントランザクションスクリプトでもうまくいく
そしてそれはシステムの複雑度とは関係ない
それを踏まえて考えるとモダンなフレームワークの恩恵を受けにくいDDDは現代ではアンチパターンなんだな
フレームワークが未成熟な時代に考えられたアイデアだし時間が経って陳腐化するのは仕方がないけど
そしてそれはシステムの複雑度とは関係ない
それを踏まえて考えるとモダンなフレームワークの恩恵を受けにくいDDDは現代ではアンチパターンなんだな
フレームワークが未成熟な時代に考えられたアイデアだし時間が経って陳腐化するのは仕方がないけど
66デフォルトの名無しさん
2017/11/05(日) 14:12:32.46ID:tjXjX3Hx >>65
フレームワークのロックインを避けて移植性を高めたい場合は?
フレームワークのロックインを避けて移植性を高めたい場合は?
2017/11/05(日) 14:25:33.60ID:Qjn7pIjt
トランザクションスクリプト推しとの議論スレにじゃなくて、DDDをうまくやる方法を語れるスレになってほしいな
なんでOO系のスレってアンチが粘着しがちなんだろう
なんでOO系のスレってアンチが粘着しがちなんだろう
68デフォルトの名無しさん
2017/11/05(日) 14:46:35.78ID:pKqy3dxV69デフォルトの名無しさん
2017/11/05(日) 14:51:12.32ID:pKqy3dxV >>67
本当に優れた手法なら批判的な意見を正論で叩き潰せるはず
俺はそれを見てみたいんだよ
実は俺はDDDアンチじゃなく信者だからね
他人の意見は上司を説得して業務に取り入れるための参考になる
はやく論破してくれ
本当に優れた手法なら批判的な意見を正論で叩き潰せるはず
俺はそれを見てみたいんだよ
実は俺はDDDアンチじゃなく信者だからね
他人の意見は上司を説得して業務に取り入れるための参考になる
はやく論破してくれ
2017/11/05(日) 15:09:40.83ID:SLzcUjqk
>>69
論破っていうけどさ、
> 現実的な線で言うとDDDにするコストより地道に移植するコストのほうが安いけどな
みたいな、根拠も示さない意見を論破する労力なんて誰も割きたくないでしょw
いや、うちはDDDで移植のコストは下がったけどな、って返せばいいの?
論破っていうけどさ、
> 現実的な線で言うとDDDにするコストより地道に移植するコストのほうが安いけどな
みたいな、根拠も示さない意見を論破する労力なんて誰も割きたくないでしょw
いや、うちはDDDで移植のコストは下がったけどな、って返せばいいの?
71デフォルトの名無しさん
2017/11/05(日) 15:16:50.90ID:pKqy3dxV >>70
移植先のフレームワークも似たような機能が揃ってるから大した手間にならん
フレームワークに沿って高生産の仕事を2回やるだけ
しかもフレームワークは似てるので2回目はさらに簡単
生産性をあげるのがフレームワークだ
それに逆らってDDDをやっても生産性を下げるだけ
移植するときにもまた他のフレームワークに逆らうことになり生産性を下げざるをえない
苦痛を2回も強いられる
移植先のフレームワークも似たような機能が揃ってるから大した手間にならん
フレームワークに沿って高生産の仕事を2回やるだけ
しかもフレームワークは似てるので2回目はさらに簡単
生産性をあげるのがフレームワークだ
それに逆らってDDDをやっても生産性を下げるだけ
移植するときにもまた他のフレームワークに逆らうことになり生産性を下げざるをえない
苦痛を2回も強いられる
2017/11/05(日) 15:33:43.90ID:SLzcUjqk
まず、DDDはフレームワークに逆らっている、というのがよくわからん
具体的にはどういうこと?
具体的にはどういうこと?
73デフォルトの名無しさん
2017/11/05(日) 15:38:24.62ID:pKqy3dxV >>72
フレームワークを使った開発ではプレーンなオブジェクトに属性を付けて不変条件を守るスタイルが優勢
DDDは余計なメンバを公開しないしインフラから切り離すので属性にも依存したくない
フレームワークの利点を潰してしまう
フレームワークを使った開発ではプレーンなオブジェクトに属性を付けて不変条件を守るスタイルが優勢
DDDは余計なメンバを公開しないしインフラから切り離すので属性にも依存したくない
フレームワークの利点を潰してしまう
2017/11/05(日) 15:58:00.31ID:gkj4dTGN
具体的なフレームワーク名も挙げずに何言ってんのこいつ
75デフォルトの名無しさん
2017/11/05(日) 16:00:49.98ID:pKqy3dxV2017/11/05(日) 16:04:04.40ID:HYpM4i0x
>>75
知らないだけ
知らないだけ
2017/11/05(日) 16:04:32.12ID:X/HC4l5L
>>75
具体例を
具体例を
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:hrMLtbbu81デフォルトの名無しさん
2017/11/05(日) 20:29:14.50ID:qSskq3Yv ドメインモデルっていうくらいなんだから
サービスドメインはモデルでしょうな
サービスドメインはモデルでしょうな
2017/11/05(日) 21:16:49.89ID:2uZ0aYp5
2017/11/05(日) 21:20:40.35ID:mZtOvkfq
2017/11/05(日) 22:13:53.69ID:mZtOvkfq
2017/11/06(月) 00:29:31.84ID:P59vPp8D
ここは軽量DDDを議論するところなの?
86デフォルトの名無しさん
2017/11/06(月) 13:22:13.87ID:s60z57bG >>84
リクエストとレスポンスのインタラクションは
コントローラ
データの「加工」「変換」「検索」「演算」「結合」
ここらへんが絡む物はサービス?
DBMSのコネクションの利用はモデルじゃなくてサービスかな
モデルはただ単に「属性」を持っているだけでいい。
それと最低限のゲッターとセッター
こんなところだろうか??
バリデーションや業務ルールのチェックはモデル??サービス??
リクエストとレスポンスのインタラクションは
コントローラ
データの「加工」「変換」「検索」「演算」「結合」
ここらへんが絡む物はサービス?
DBMSのコネクションの利用はモデルじゃなくてサービスかな
モデルはただ単に「属性」を持っているだけでいい。
それと最低限のゲッターとセッター
こんなところだろうか??
バリデーションや業務ルールのチェックはモデル??サービス??
2017/11/06(月) 19:18:41.19ID:9L+ZJ2Xp
考えるな 感じるんだ
じゃなくて
周りに合わせるんだ
どんなくそ設計でも検証通ったコードと一貫性が保たれてるほうが品質高い
サービスだとおもいます
じゃなくて
周りに合わせるんだ
どんなくそ設計でも検証通ったコードと一貫性が保たれてるほうが品質高い
サービスだとおもいます
88デフォルトの名無しさん
2017/11/10(金) 15:55:49.97ID:WtBM3Wp4 他人が構築したドメイン構造を把握するスキルも
重要なのかな?
日本のSIlerの場合常駐先がしょっちゅう変わったりする
んだからそうなるとドメインを構築しようとか
どんなドメインなのかの把握が面倒になってしまう。
重要なのかな?
日本のSIlerの場合常駐先がしょっちゅう変わったりする
んだからそうなるとドメインを構築しようとか
どんなドメインなのかの把握が面倒になってしまう。
2017/11/10(金) 21:17:00.97ID:LsbUks3P
>>86
いろんな考え方があるけど一番シンプルなのは
DDDではドメインが一番大事だからドメインと他を切り分けること
UIとDBは明らかに分かると思うからそれをどけて
残るのはアプリ(サービス)層とドメイン層の区別
両者は混同されやすくサービスの肥大化がよく起こるので
リファクタリングを続けて継続的に
ドメインの知識はドメイン層へと移動させていく
>バリデーションや業務ルールのチェック
たしかにこれはどっちに置くか難しいけど
私ならドメインの知識になってるかどうかで考える
たとえばよくある例では日付でうるう年の判定などは
明らかにドメインの知識だからドメイン層に置く
いろんな考え方があるけど一番シンプルなのは
DDDではドメインが一番大事だからドメインと他を切り分けること
UIとDBは明らかに分かると思うからそれをどけて
残るのはアプリ(サービス)層とドメイン層の区別
両者は混同されやすくサービスの肥大化がよく起こるので
リファクタリングを続けて継続的に
ドメインの知識はドメイン層へと移動させていく
>バリデーションや業務ルールのチェック
たしかにこれはどっちに置くか難しいけど
私ならドメインの知識になってるかどうかで考える
たとえばよくある例では日付でうるう年の判定などは
明らかにドメインの知識だからドメイン層に置く
90デフォルトの名無しさん
2017/11/12(日) 10:23:37.61ID:j0JK3XOe バリデーションはエラーメッセージ、UIの強調表示なども絡むからどう考えたってプレゼンテーション層でしょ
ビューモデル(プレゼンテーションの都合であるモノ)のプロパティ属性にバリデーションルールを書くことが標準的になっている点からもこの事実は明らか
ビューモデル(プレゼンテーションの都合であるモノ)のプロパティ属性にバリデーションルールを書くことが標準的になっている点からもこの事実は明らか
2017/11/13(月) 07:29:43.51ID:XVC/GNte
2017/11/13(月) 08:20:06.77ID:1kxbOfqW
2017/11/13(月) 08:41:32.54ID:vmC6RyQT
目的が違えば両方あってもいいんじゃね?ユーザーの利便のためか自衛のためか。
2017/11/13(月) 09:17:00.78ID:KJNT45pE
>>91
ASP.NETって、ビューモデルのバリデーションをクライアント側のJSで突破できちゃうの?
ASP.NETって、ビューモデルのバリデーションをクライアント側のJSで突破できちゃうの?
2017/11/13(月) 12:08:35.87ID:1LsyXLAY
ジャバオのバリデータだろ
2017/11/13(月) 18:48:33.23ID:1kxbOfqW
97デフォルトの名無しさん
2017/11/13(月) 20:17:19.09ID:IDSFIQtw2017/11/13(月) 22:06:30.64ID:KJNT45pE
プレゼンテーション層でチェック
クライアントでチェックする
一緒にしてる奴がいるね
ちなみにコントローラーもプレゼンテーション層な
クライアントでチェックする
一緒にしてる奴がいるね
ちなみにコントローラーもプレゼンテーション層な
99デフォルトの名無しさん
2017/11/14(火) 05:47:03.90ID:9Gbq8NEA100デフォルトの名無しさん
2017/11/14(火) 07:18:29.77ID:R9xQaEyZ101デフォルトの名無しさん
2017/11/14(火) 19:38:43.49ID:kwaLWx7P セキュリティとか悪意のある攻撃を想定すると
話が厄介になるね
セキュリティ考慮でなければ、情報の源泉に近い
JSでバリデーション1本だけで十分だろう。
セキュリティとか認証が絡むとこういったレイヤの層分け
が狂う要因になるのだろうか?
話が厄介になるね
セキュリティ考慮でなければ、情報の源泉に近い
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みたいなレイヤードアーキテクチャからドメイン抜き出したもの程度しか認識ない人間だけど
DDDってMVCみたいなレイヤードアーキテクチャからドメイン抜き出したもの程度しか認識ない人間だけど
104デフォルトの名無しさん
2017/11/16(木) 07:30:52.62ID:DVV+REXJ >>103
MVCはレイヤードアーキテクチャじゃないよ
MVCはレイヤードアーキテクチャじゃないよ
105デフォルトの名無しさん
2017/11/16(木) 12:33:04.40ID:i9LdlFRo106デフォルトの名無しさん
2017/11/17(金) 08:39:38.18ID:jlfmLuFK validationとormがDDDのボトルネック
要するに机上の空論
要するに机上の空論
107デフォルトの名無しさん
2017/11/17(金) 23:50:35.86ID:tGAvpZAK UIの要求が強すぎるとうまくいかんのだわ
ドメインクラスをフロントとバックの両方に書くはめになる
Node.jsだとそのへんうまくいくのかな
ドメインクラスをフロントとバックの両方に書くはめになる
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 設計書なんで実装終わったときに揃ってれば良いだろ
どうせ開発中にコロコロ仕様変わるなんてよくある話だ
どうせ開発中にコロコロ仕様変わるなんてよくある話だ
レスを投稿する
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- 死にたい死にたい死にたい死にたい死にたい死にたい死にたい死にたい死にたい
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 高市が首相になってから進次郎の評価が爆上がりしてる件について
- このチンポコ!
