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,835 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
Most read
4
/ 10
5
/ 10
6
/ 10
Most read
7
/ 10
8
/ 10
9
/ 10
10
/ 10
More Related Content
PDF
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PDF
C#実装から見るDDD(ドメイン駆動設計)
by
Takuya Kawabe
PDF
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
PDF
私がドメイン駆動設計をやる理由
by
増田 亨
PDF
正しいものを正しく作る塾-設計コース
by
増田 亨
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
ドメイン駆動設計 本格入門
by
増田 亨
C#実装から見るDDD(ドメイン駆動設計)
by
Takuya Kawabe
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
私がドメイン駆動設計をやる理由
by
増田 亨
正しいものを正しく作る塾-設計コース
by
増田 亨
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
What's hot
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
PDF
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
PDF
ドメイン駆動設計 基本を理解する
by
増田 亨
PDF
ドメイン駆動設計という仕事の流儀
by
増田 亨
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
PDF
ソフトウェア設計の学び方を考える
by
増田 亨
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
PDF
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
PDF
ドメイン駆動設計という設計スタイル
by
増田 亨
PDF
ドメイン駆動設計 分析しながら設計する
by
増田 亨
PDF
ドメイン駆動設計の正しい歩き方
by
増田 亨
PDF
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
PDF
ドメイン駆動設計入門
by
増田 亨
PDF
ソフトウェア開発のやり方の改善
by
増田 亨
PDF
RDRA DDD Agile
by
増田 亨
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
マイクロサービス 4つの分割アプローチ
by
増田 亨
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
ドメイン駆動設計 基本を理解する
by
増田 亨
ドメイン駆動設計という仕事の流儀
by
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
ソフトウェア設計の学び方を考える
by
増田 亨
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
ドメイン駆動設計という設計スタイル
by
増田 亨
ドメイン駆動設計 分析しながら設計する
by
増田 亨
ドメイン駆動設計の正しい歩き方
by
増田 亨
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
ドメイン駆動設計入門
by
増田 亨
ソフトウェア開発のやり方の改善
by
増田 亨
RDRA DDD Agile
by
増田 亨
Similar to ドメインオブジェクトの設計ガイドライン
PDF
リッチなドメインモデル 名前探し
by
増田 亨
PDF
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
PDF
ちいさなオブジェクトでドメインモデルを組み立てる
by
増田 亨
PPT
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
PDF
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
by
Koichiro Matsuoka
PDF
ビジネスルールの複雑さに立ち向かう
by
増田 亨
PDF
現場で役立つシステム設計の原則
by
増田 亨
PDF
現場で役立つシステム設計の原則
by
増田 亨
PDF
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
by
Tomoharu ASAMI
PDF
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
by
Atsuhiro Kubo
PDF
Swift api design guidelines (dec 3, 2015)
by
Takaaki Tanaka
PDF
DDD 20121106 SEA Forum November
by
増田 亨
PDF
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
by
Tomoharu ASAMI
PDF
QCon Tokyo 2013
by
増田 亨
PDF
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
by
Tomoharu ASAMI
PDF
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
by
Tomoharu ASAMI
PDF
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
by
Tomoharu ASAMI
PDF
作業分野 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第10回】
by
Tomoharu ASAMI
PDF
クラウドアプリケーションのための オブジェクト指向分析設計講座 (1)
by
Tomoharu ASAMI
PDF
Swift API Design Guidelines (dec 3, 2015)
by
Goichi Hirakawa
リッチなドメインモデル 名前探し
by
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
ちいさなオブジェクトでドメインモデルを組み立てる
by
増田 亨
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
by
Koichiro Matsuoka
ビジネスルールの複雑さに立ち向かう
by
増田 亨
現場で役立つシステム設計の原則
by
増田 亨
現場で役立つシステム設計の原則
by
増田 亨
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
by
Tomoharu ASAMI
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
by
Atsuhiro Kubo
Swift api design guidelines (dec 3, 2015)
by
Takaaki Tanaka
DDD 20121106 SEA Forum November
by
増田 亨
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
by
Tomoharu ASAMI
QCon Tokyo 2013
by
増田 亨
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
by
Tomoharu ASAMI
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
by
Tomoharu ASAMI
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
by
Tomoharu ASAMI
作業分野 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第10回】
by
Tomoharu ASAMI
クラウドアプリケーションのための オブジェクト指向分析設計講座 (1)
by
Tomoharu ASAMI
Swift API Design Guidelines (dec 3, 2015)
by
Goichi Hirakawa
More from 増田 亨
PDF
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PDF
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
PDF
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
PDF
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
PDF
アジャイルなソフトウェア設計を目指して
by
増田 亨
PDF
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
PDF
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
PDF
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
PDF
DDD sample code explained in Java
by
増田 亨
PDF
毎日が越境だ!
by
増田 亨
PDF
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
PDF
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
PDF
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
PDF
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
PDF
SoR 2.0 summary
by
増田 亨
PDF
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
アジャイルなソフトウェア設計を目指して
by
増田 亨
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
DDD sample code explained in Java
by
増田 亨
毎日が越境だ!
by
増田 亨
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
SoR 2.0 summary
by
増田 亨
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
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