Enviar búsqueda
Cargar
ドメインオブジェクトの設計ガイドライン
•
2 recomendaciones
•
3,593 vistas
増田 亨
Seguir
ドメイン駆動設計の内輪の勉強会用に作ったドメインオブジェクトの設計ガイドラインを公開します。
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 10
Descargar ahora
Descargar para leer sin conexión
Recomendados
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
Recomendados
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
増田 亨
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
増田 亨
関連事例紹介A DX時代のビジネス戦略・要求
関連事例紹介A DX時代のビジネス戦略・要求
Hironori Washizaki
IoT サービスのビジネスデザイン part 2
IoT サービスのビジネスデザイン part 2
Nitta Tetsuya
Más contenido relacionado
La actualidad más candente
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
増田 亨
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
増田 亨
La actualidad más candente
(20)
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
Similar a ドメインオブジェクトの設計ガイドライン
関連事例紹介A DX時代のビジネス戦略・要求
関連事例紹介A DX時代のビジネス戦略・要求
Hironori Washizaki
IoT サービスのビジネスデザイン part 2
IoT サービスのビジネスデザイン part 2
Nitta Tetsuya
Introduction of Business Models in Requirement Development
Introduction of Business Models in Requirement Development
Kent Ishizawa
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨
Developers festa Sapporo 2014
Developers festa Sapporo 2014
Zenji Kanzaki
ビジネスモデリングによる問題解決型アプローチ
ビジネスモデリングによる問題解決型アプローチ
Kent Ishizawa
Introduction of KOTATSU-MODEL in Requirement Development
Introduction of KOTATSU-MODEL in Requirement Development
Kent Ishizawa
Webマーケティングを通じたデータサイエンティストの価値発揮方法
Webマーケティングを通じたデータサイエンティストの価値発揮方法
E2D3.org
ドメイン駆動設計入門
ドメイン駆動設計入門
KenjiroUehara
Ict 授業計画書
Ict 授業計画書
clmsyz
DDDで本質の探究 .pptx
DDDで本質の探究 .pptx
ssuser502958
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
Satoshi Nagayasu
ビジネスモデル2 rdra
ビジネスモデル2 rdra
Zenji Kanzaki
事業開発メソッド
事業開発メソッド
Valiant HERO Inc.
MSC 2010 T5-7 事例とデモで徹底解説! マイクロソフトのクラウド CRM
MSC 2010 T5-7 事例とデモで徹底解説! マイクロソフトのクラウド CRM
kumo2010
20130403 valueproposition
20130403 valueproposition
Hara Shoji
AgileJapan 2017 ビジネスアジャイル 匠Methodとスクラム
AgileJapan 2017 ビジネスアジャイル 匠Methodとスクラム
Hagimoto Junzo
エントリーシート書き方セミナー(学生起業家選手権)20120924
エントリーシート書き方セミナー(学生起業家選手権)20120924
GKS_tokyo
デジタルマーケティング戦略策定
デジタルマーケティング戦略策定
Flyke1
分析のリアルがここに!現場で使えるデータ分析
分析のリアルがここに!現場で使えるデータ分析
webcampusschoo
Similar a ドメインオブジェクトの設計ガイドライン
(20)
関連事例紹介A DX時代のビジネス戦略・要求
関連事例紹介A DX時代のビジネス戦略・要求
IoT サービスのビジネスデザイン part 2
IoT サービスのビジネスデザイン part 2
Introduction of Business Models in Requirement Development
Introduction of Business Models in Requirement Development
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
Developers festa Sapporo 2014
Developers festa Sapporo 2014
ビジネスモデリングによる問題解決型アプローチ
ビジネスモデリングによる問題解決型アプローチ
Introduction of KOTATSU-MODEL in Requirement Development
Introduction of KOTATSU-MODEL in Requirement Development
Webマーケティングを通じたデータサイエンティストの価値発揮方法
Webマーケティングを通じたデータサイエンティストの価値発揮方法
ドメイン駆動設計入門
ドメイン駆動設計入門
Ict 授業計画書
Ict 授業計画書
DDDで本質の探究 .pptx
DDDで本質の探究 .pptx
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
ビジネスモデル2 rdra
ビジネスモデル2 rdra
事業開発メソッド
事業開発メソッド
MSC 2010 T5-7 事例とデモで徹底解説! マイクロソフトのクラウド CRM
MSC 2010 T5-7 事例とデモで徹底解説! マイクロソフトのクラウド CRM
20130403 valueproposition
20130403 valueproposition
AgileJapan 2017 ビジネスアジャイル 匠Methodとスクラム
AgileJapan 2017 ビジネスアジャイル 匠Methodとスクラム
エントリーシート書き方セミナー(学生起業家選手権)20120924
エントリーシート書き方セミナー(学生起業家選手権)20120924
デジタルマーケティング戦略策定
デジタルマーケティング戦略策定
分析のリアルがここに!現場で使えるデータ分析
分析のリアルがここに!現場で使えるデータ分析
Más de 増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
増田 亨
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
増田 亨
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
増田 亨
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
DDD sample code explained in Java
DDD sample code explained in Java
増田 亨
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
増田 亨
SoR 2.0 summary
SoR 2.0 summary
増田 亨
毎日が越境だ!
毎日が越境だ!
増田 亨
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
増田 亨
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
増田 亨
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
Más de 増田 亨
(17)
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
DDD sample code explained in Java
DDD sample code explained in Java
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
SoR 2.0 summary
SoR 2.0 summary
毎日が越境だ!
毎日が越境だ!
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
ドメインオブジェクトの設計ガイドライン
1.
ドメインオブジェクト 設計ガイドライン 2020年6月25日 有限会社システム設計 増田
2.
はじめに ① ドメインオブジェクトとは? ✓ビジネスルールに基づく計算・判断のロジック(ビジネスロジック) を記述するためのオブジェクト ② ドメインオブジェクト設計の要点 ✓ビジネスで関心のある値の種類に注目する ✓ビジネスの関心事とプログラミングの関心事を分離する ✓値の種類ごとの計算・判断の「操作」に注目する ✓操作は「メソッド名」「引数の型」「メソッドの返す値の型」で定義 する
3.
ビジネスで関心のある値の分類 数値系 金額、数量、率、金額範囲、数量範囲、… 日付系 日付、日数、期間、日数範囲、時刻、時間、… 分岐系
区分、種類、種別、… ドメインオブジェクトの基本単位は、この分類をさらに用途別に細分化した 業務用語として使う、売上金額・割引額・原価・手数料などにする
4.
2種類の型 • 独自に定義する型(アプリケーション特化の型) • ドメインオブジェクト •
ビジネスの関心事の表現(業務用語と対応させる) • 業務用語と対応しない汎用型は原則として独自に定義しない • 基本の型(汎用的な型) • 標準ライブラリの型(String, LocalDate, List, Map, … ) • プリミティブの型( int, long, boolean, char, 配列)
5.
型を使う場所 • フィールド変数の型 • メソッドの引数の型 •
メソッドが返す値の型 • ローカル変数の型 ※ ドット連鎖でローカル変数を暗黙化するのは非推奨 ※ 積極的に説明用変数を使って意図を明示する ※ 説明用変数が増えたらメソッドの抽出 and/or ロジックの移動を検討する
6.
型の使い方の傾向分析 類別 フィールドの型(非公開) メソッドが返す型
メソッドの引数の型 ドメイン特化型 ドメインオブジェクト ドメインオブジェクト ドメインオブジェクト 混合型A ドメインオブジェクト ドメインオブジェクト 基本型 混合型B(怪しい) ドメインオブジェクト 基本型 ドメインオブジェクト 混合型C 基本型 ドメインオブジェクト 基本型 混合型D(怪しい) 基本型 基本型 ドメインオブジェクト 自立型 基本型 自分の型 または基本型 自分の型 または基本型 汎用部品(怪しい) 基本型 基本型 基本型 Good! Good! 注)業務で使う識別番号(従業員番号など)は、汎用部品の一種だが業務の関心事の表現として使用する
7.
ドメインオブジェクトの評価基準 優 ビジネスの中心的な関心事を表現している 良 ビジネスの周辺的な関心事を表現できている 可
いちおうビジネスの間接的な関心事と言える 不可 ビジネスの関心事とは言えない 「優」と「良」を目指す(数としては「優」は少なくてよい。「良」が多い。) 不可は削除を検討する(ロジックの移動 and/or インライン化)
8.
ドメインオブジェクトの怪しげな名前 ◆汎用的な言葉のクラス名 例:曜日、月、時刻 → 名前を具体的にする or
ロジックをインライン化してクラスを削除 ◆業務で使いそうもない名前 例:15分単位日時 → とりあえずの関心事の表現としては問題ない → これを手掛かりに名前の改善 or ロジックインライン化とクラス削除 → 長期間、放置しない
9.
ドメインオブジェクトの設計スキル向上 ① 業務知識を増やす ✓業務に登場する言葉を自分の語彙にする ✓業務に登場する言葉を組み合わせて文章を書けるようになる ✓業務に登場する似た言葉の使い分けを理解する ② クラスの設計スキルを磨く ✓クラスの設計とは「ソッドの一覧」の定義であることを理解する ✓メソッドの引数の型、メソッドの返す値の型に注目する ✓フィールドを参照しないメソッドを書かない ✓ロジックを持たないメソッド(getter/setter)を書かない
10.
オブジェクトの基本操作(設計のヒント) 加算・減算 同じ型を引数にとり、結果として同じ型を返す 乗算 他の型を引数にとり、結果として同じ型を返す(加算の繰り返し) 除算
同じ型を引数にとり、有理数または整数を返す 除算 整数を引数にとり、除算の結果として同じ型を返す 一致・不一致 同じ型を引数にとり、判定区分を返す 比較演算 同じ型を引数にとり、判定区分を返す 最大・最小 有効な値の範囲を定義して公開する 前後の値 同じ型の「前の値」「後の値」を返す (循環あり/循環なし) 文字列化 オブジェクトの値の標準的な文字列形式を返す オブジェクト化 標準的な文字列形式からオブジェクトを生成する(static) ✓ 必要最小限の操作だけを定義する(網羅を目指さない) ✓ メソッド名にできるだけ業務の用語を使う(汎用的なメソッド名を避ける)
Descargar ahora