Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
増田 亨
PDF, PPTX
3,806 views
ドメインオブジェクトの設計ガイドライン
ドメイン駆動設計の内輪の勉強会用に作ったドメインオブジェクトの設計ガイドラインを公開します。
Software
◦
Related topics:
Object-Oriented Programming
•
Read more
2
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 10
2
/ 10
Most read
3
/ 10
4
/ 10
Most read
5
/ 10
6
/ 10
Most read
7
/ 10
8
/ 10
9
/ 10
10
/ 10
More Related Content
PDF
ソフトウェア開発のやり方の改善
by
増田 亨
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
PDF
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PDF
ドメイン駆動設計 基本を理解する
by
増田 亨
ソフトウェア開発のやり方の改善
by
増田 亨
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
ドメイン駆動設計 本格入門
by
増田 亨
ドメイン駆動設計 基本を理解する
by
増田 亨
What's hot
PDF
正しいものを正しく作る塾-設計コース
by
増田 亨
PDF
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
PDF
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
PDF
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
PDF
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PDF
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
PDF
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PDF
DDD sample code explained in Java
by
増田 亨
PDF
3週連続DDDその3 ドメイン駆動設計 戦略的設計
by
増田 亨
PDF
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
PDF
ちいさなオブジェクトでドメインモデルを組み立てる
by
増田 亨
PDF
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
PDF
ドメインモデルの育て方
by
増田 亨
PDF
ドメイン駆動設計の正しい歩き方
by
増田 亨
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PDF
ドメイン駆動設計入門
by
Takuya Kitamura
PDF
リーンなコードを書こう:実践的なオブジェクト指向設計
by
増田 亨
正しいものを正しく作る塾-設計コース
by
増田 亨
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
DDD sample code explained in Java
by
増田 亨
3週連続DDDその3 ドメイン駆動設計 戦略的設計
by
増田 亨
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
ちいさなオブジェクトでドメインモデルを組み立てる
by
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
ドメインモデルの育て方
by
増田 亨
ドメイン駆動設計の正しい歩き方
by
増田 亨
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
ドメイン駆動設計入門
by
Takuya Kitamura
リーンなコードを書こう:実践的なオブジェクト指向設計
by
増田 亨
Similar to ドメインオブジェクトの設計ガイドライン
PDF
ドメイン駆動設計という仕事の流儀
by
増田 亨
PDF
ドメイン駆動設計という設計スタイル
by
増田 亨
PDF
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
by
Koichiro Matsuoka
PDF
ビジネスルールの複雑さに立ち向かう
by
増田 亨
PDF
リッチなドメインモデル 名前探し
by
増田 亨
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
PPT
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
PDF
ドメイン駆動設計入門
by
増田 亨
PDF
現場で役立つシステム設計の原則
by
増田 亨
PDF
現場で役立つシステム設計の原則
by
増田 亨
PDF
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
by
Tomoharu ASAMI
PDF
Swift api design guidelines (dec 3, 2015)
by
Takaaki Tanaka
PDF
QCon Tokyo 2013
by
増田 亨
PDF
DDD 20121106 SEA Forum November
by
増田 亨
PDF
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
by
Tomoharu ASAMI
PDF
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
by
Tomoharu ASAMI
PDF
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
by
Tomoharu ASAMI
PDF
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
by
Tomoharu ASAMI
PDF
クラウドアプリケーションのための オブジェクト指向分析設計講座 (1)
by
Tomoharu ASAMI
PDF
Swift API Design Guidelines (dec 3, 2015)
by
Goichi Hirakawa
ドメイン駆動設計という仕事の流儀
by
増田 亨
ドメイン駆動設計という設計スタイル
by
増田 亨
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
by
Koichiro Matsuoka
ビジネスルールの複雑さに立ち向かう
by
増田 亨
リッチなドメインモデル 名前探し
by
増田 亨
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
ドメイン駆動設計入門
by
増田 亨
現場で役立つシステム設計の原則
by
増田 亨
現場で役立つシステム設計の原則
by
増田 亨
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
by
Tomoharu ASAMI
Swift api design guidelines (dec 3, 2015)
by
Takaaki Tanaka
QCon Tokyo 2013
by
増田 亨
DDD 20121106 SEA Forum November
by
増田 亨
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
by
Tomoharu ASAMI
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
by
Tomoharu ASAMI
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
by
Tomoharu ASAMI
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
by
Tomoharu ASAMI
クラウドアプリケーションのための オブジェクト指向分析設計講座 (1)
by
Tomoharu ASAMI
Swift API Design Guidelines (dec 3, 2015)
by
Goichi Hirakawa
More from 増田 亨
PDF
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
PDF
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
PDF
ソフトウェア設計の学び方を考える
by
増田 亨
PDF
アジャイルなソフトウェア設計を目指して
by
増田 亨
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
PDF
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
PDF
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
PDF
毎日が越境だ!
by
増田 亨
PDF
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
PDF
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
PDF
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
PDF
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
PDF
SoR 2.0 summary
by
増田 亨
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
ソフトウェア設計の学び方を考える
by
増田 亨
アジャイルなソフトウェア設計を目指して
by
増田 亨
マイクロサービス 4つの分割アプローチ
by
増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
毎日が越境だ!
by
増田 亨
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
SoR 2.0 summary
by
増田 亨
Recently uploaded
PPTX
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
by
Yoshiki Shibukawa
PDF
20251122_OWASPNagoya_takei_ITU-T,X.1060,security
by
OWASP Nagoya
PDF
Gluesync:RDBMS、NoSQL,データレイク間のリアルタイム・データレプリケーション
by
株式会社クライム
PDF
最高峰のストレージとバックアップ:ARTESCA+Veeam:統合型ソフトウェア
by
株式会社クライム
PDF
N2WS Backup & Recovery と Veeam Backup for AWS
by
株式会社クライム
PDF
Veeam&WasabiでトリプルV: クラウドへのランサムウエア対策の決定コンビ
by
株式会社クライム
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
by
Yoshiki Shibukawa
20251122_OWASPNagoya_takei_ITU-T,X.1060,security
by
OWASP Nagoya
Gluesync:RDBMS、NoSQL,データレイク間のリアルタイム・データレプリケーション
by
株式会社クライム
最高峰のストレージとバックアップ:ARTESCA+Veeam:統合型ソフトウェア
by
株式会社クライム
N2WS Backup & Recovery と Veeam Backup for AWS
by
株式会社クライム
Veeam&WasabiでトリプルV: クラウドへのランサムウエア対策の決定コンビ
by
株式会社クライム
ドメインオブジェクトの設計ガイドライン
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) ✓ 必要最小限の操作だけを定義する(網羅を目指さない) ✓ メソッド名にできるだけ業務の用語を使う(汎用的なメソッド名を避ける)
Download