Skip to main content
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
EN
Upload
Download free for 30 days
Sign in
Uploaded by
増田 亨
PDF, PPTX
22,434 views
DDD sample code explained in Java
2019-02-18 #jsug ドメイン駆動設計サンプルコード徹底解説
Software
◦
Related topics:
Object-Oriented Programming
•
Read more
11
Save
Share
Embed
Save to Drive
Download now
Download as PDF, PPTX
1
/ 24
2
/ 24
3
/ 24
4
/ 24
5
/ 24
6
/ 24
7
/ 24
8
/ 24
9
/ 24
10
/ 24
11
/ 24
12
/ 24
13
/ 24
14
/ 24
15
/ 24
16
/ 24
17
/ 24
18
/ 24
19
/ 24
20
/ 24
More Related Content
PDF
ドメインオブジェクトの設計ガイドライン
by
増田 亨
10 slides
3.9K views
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
103 slides
16.2K views
PDF
ドメイン駆動設計 本格入門
by
増田 亨
139 slides
46.9K views
PDF
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
153 slides
8.4K views
PDF
ドメイン駆動設計 基本を理解する
by
増田 亨
134 slides
119K views
PPTX
テストコードの DRY と DAMP
by
Yusuke Kagata
11 slides
4.5K views
PDF
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
44 slides
15.5K views
PDF
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
23 slides
9.2K views
ドメインオブジェクトの設計ガイドライン
by
増田 亨
10 slides
3.9K views
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
103 slides
16.2K views
ドメイン駆動設計 本格入門
by
増田 亨
139 slides
46.9K views
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
153 slides
8.4K views
ドメイン駆動設計 基本を理解する
by
増田 亨
134 slides
119K views
テストコードの DRY と DAMP
by
Yusuke Kagata
11 slides
4.5K views
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
44 slides
15.5K views
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
23 slides
9.2K views
What's hot
PPTX
Spanner移行について本気出して考えてみた
by
techgamecollege
59 slides
1.9K views
PDF
ドメイン駆動設計入門
by
Takuya Kitamura
22 slides
45.8K views
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
21 slides
11.7K views
PDF
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
113 slides
33.3K views
PDF
正しいものを正しく作る塾-設計コース
by
増田 亨
9 slides
10.3K views
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
16 slides
40.7K views
PDF
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
45 slides
24.6K views
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
89 slides
49.3K views
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
60 slides
44.8K views
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
95 slides
32.7K views
PDF
3週連続DDDその3 ドメイン駆動設計 戦略的設計
by
増田 亨
89 slides
15.1K views
PDF
ソフトウェア設計の学び方を考える
by
増田 亨
39 slides
25.4K views
PDF
DynamoDB設計のちょっとした技
by
Yoichi Toyota
10 slides
2.2K views
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
65 slides
51.4K views
PDF
リーンなコードを書こう:実践的なオブジェクト指向設計
by
増田 亨
51 slides
15.9K views
PPT
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
48 slides
15.1K views
PDF
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
by
Koichiro Matsuoka
130 slides
24.4K views
PDF
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
40 slides
13.6K views
PDF
実践に向けたドメイン駆動設計のエッセンス
by
増田 亨
99 slides
26.3K views
PDF
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
24 slides
197.2K views
Spanner移行について本気出して考えてみた
by
techgamecollege
59 slides
1.9K views
ドメイン駆動設計入門
by
Takuya Kitamura
22 slides
45.8K views
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
21 slides
11.7K views
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
113 slides
33.3K views
正しいものを正しく作る塾-設計コース
by
増田 亨
9 slides
10.3K views
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
16 slides
40.7K views
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
45 slides
24.6K views
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
89 slides
49.3K views
マイクロサービス 4つの分割アプローチ
by
増田 亨
60 slides
44.8K views
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
95 slides
32.7K views
3週連続DDDその3 ドメイン駆動設計 戦略的設計
by
増田 亨
89 slides
15.1K views
ソフトウェア設計の学び方を考える
by
増田 亨
39 slides
25.4K views
DynamoDB設計のちょっとした技
by
Yoichi Toyota
10 slides
2.2K views
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
65 slides
51.4K views
リーンなコードを書こう:実践的なオブジェクト指向設計
by
増田 亨
51 slides
15.9K views
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
48 slides
15.1K views
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
by
Koichiro Matsuoka
130 slides
24.4K views
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
40 slides
13.6K views
実践に向けたドメイン駆動設計のエッセンス
by
増田 亨
99 slides
26.3K views
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
24 slides
197.2K views
Similar to DDD sample code explained in Java
PDF
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
41 slides
22.2K views
PDF
Python におけるドメイン駆動設計(戦術面)の勘どころ
by
Junya Hayashi
33 slides
18K views
PDF
ドメイン駆動設計という設計スタイル
by
増田 亨
63 slides
17.7K views
PDF
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
by
Koichiro Matsuoka
32 slides
4.3K views
PDF
C#実装から見るDDD(ドメイン駆動設計)
by
Takuya Kawabe
91 slides
20.7K views
PDF
アドテクに携わって培った アプリをハイパフォーマンスに保つ設計とコーディング
by
MicroAd, Inc.(Engineer)
31 slides
832 views
PDF
ドメイン駆動設計という仕事の流儀
by
増田 亨
53 slides
16.6K views
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
83 slides
31.1K views
PDF
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
45 slides
5.2K views
PDF
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
by
Fumiyasu Sumiya
100 slides
2.1K views
PDF
Dddをもっと身近に
by
Yukei Wachi
58 slides
3.2K views
PDF
ドメイン駆動設計入門
by
増田 亨
53 slides
28.9K views
PDF
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
by
Koichiro Matsuoka
29 slides
665 views
PDF
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
by
Junichiro Kazama
37 slides
12.9K views
PPTX
Acceleoによるmodel2 text変換
by
Norihito Ohshima
30 slides
1.8K views
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
45 slides
51.8K views
PPTX
ドメイン駆動設計入門
by
KenjiroUehara
28 slides
138 views
PDF
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
133 slides
32.7K views
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
41 slides
22.2K views
Python におけるドメイン駆動設計(戦術面)の勘どころ
by
Junya Hayashi
33 slides
18K views
ドメイン駆動設計という設計スタイル
by
増田 亨
63 slides
17.7K views
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
by
Koichiro Matsuoka
32 slides
4.3K views
C#実装から見るDDD(ドメイン駆動設計)
by
Takuya Kawabe
91 slides
20.7K views
アドテクに携わって培った アプリをハイパフォーマンスに保つ設計とコーディング
by
MicroAd, Inc.(Engineer)
31 slides
832 views
ドメイン駆動設計という仕事の流儀
by
増田 亨
53 slides
16.6K views
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
by
増田 亨
83 slides
31.1K views
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
45 slides
5.2K views
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
by
Fumiyasu Sumiya
100 slides
2.1K views
Dddをもっと身近に
by
Yukei Wachi
58 slides
3.2K views
ドメイン駆動設計入門
by
増田 亨
53 slides
28.9K views
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
by
Koichiro Matsuoka
29 slides
665 views
JSUG 20141127 「Spring Bootを用いたドメイン駆動設計」
by
Junichiro Kazama
37 slides
12.9K views
Acceleoによるmodel2 text変換
by
Norihito Ohshima
30 slides
1.8K views
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
45 slides
51.8K views
ドメイン駆動設計入門
by
KenjiroUehara
28 slides
138 views
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
133 slides
32.7K views
More from 増田 亨
PDF
ソフトウェア開発のやり方の改善
by
増田 亨
26 slides
7.2K views
PDF
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
7 slides
1.7K views
PDF
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
39 slides
7.1K views
PDF
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
24 slides
2.7K views
PDF
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
43 slides
14.4K views
PDF
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
29 slides
4.7K views
PDF
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
38 slides
3.8K views
PDF
ドメイン駆動設計の正しい歩き方
by
増田 亨
61 slides
26.1K views
PDF
ビジネスルールの複雑さに立ち向かう
by
増田 亨
53 slides
12.6K views
PDF
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
65 slides
11.1K views
PDF
アジャイルなソフトウェア設計を目指して
by
増田 亨
94 slides
12.3K views
PDF
SoR 2.0 summary
by
増田 亨
8 slides
1.4K views
PDF
毎日が越境だ!
by
増田 亨
51 slides
10.6K views
PDF
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
58 slides
9.4K views
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
55 slides
139.6K views
PDF
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
31 slides
5.9K views
PDF
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
28 slides
4K views
PDF
現場で役立つシステム設計の原則
by
増田 亨
11 slides
8.9K views
PDF
現場で役立つシステム設計の原則
by
増田 亨
21 slides
6.7K views
ソフトウェア開発のやり方の改善
by
増田 亨
26 slides
7.2K views
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
7 slides
1.7K views
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
39 slides
7.1K views
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
24 slides
2.7K views
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
43 slides
14.4K views
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
29 slides
4.7K views
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
38 slides
3.8K views
ドメイン駆動設計の正しい歩き方
by
増田 亨
61 slides
26.1K views
ビジネスルールの複雑さに立ち向かう
by
増田 亨
53 slides
12.6K views
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
65 slides
11.1K views
アジャイルなソフトウェア設計を目指して
by
増田 亨
94 slides
12.3K views
SoR 2.0 summary
by
増田 亨
8 slides
1.4K views
毎日が越境だ!
by
増田 亨
51 slides
10.6K views
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
58 slides
9.4K views
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
55 slides
139.6K views
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
31 slides
5.9K views
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
28 slides
4K views
現場で役立つシステム設計の原則
by
増田 亨
11 slides
8.9K views
現場で役立つシステム設計の原則
by
増田 亨
21 slides
6.7K views
DDD sample code explained in Java
1.
DDDのサンプルコード isolating-the-domain Spring Boot, Spring
MVC, MyBatis, Thymeleaf 2019-02-18 2019/2/18 1
2.
始める前に ブログを書くかもという人、いらっしゃいますか? 2019/2/18 2
3.
なぜ作ったか? 実アプリケーション並みの具体例がほしかった コードがいちばん具体的に伝えることができる 質問が具体的になり、考え方の違いがはっきりする 今日のイベントのQAタイムでのフィードバックにわくわく 2019/2/18 3 https://github.com/system-sekkei/isolating-the-domain
4.
何の具体例か? 2019/2/18 4
5.
何の具体例か? ビジネスルールが複雑さの原因 計算をモデリング 型指向でプログラミング この3つがドメイン駆動設計の核心 3/22(金)DevLOVE Premium「ドメイン駆動設計 本格入門」で解説 今日は、コードを中心に、どういう雰囲気か紹介 2019/2/18
5
6.
関心の分離 計算(ビジネスルール)を実行するモジュール群 データを入出力するモジュール群 この2つを分ける 同じモジュール(ソースファイル)に、計算と入出力を書かない 2019/2/18 6
7.
モジュール構造の選択 手続き的な入出力モジュールに計算を埋め込む (トランザクションスクリプト) 計算を型(値の種類)でモジュール化して組み合わせる (ドメインモデル) ドメインモデル→計算モデル→計算モジュール→値の種類→型→クラス 2019/2/18 7
8.
サンプルの概要 時給ベースの給与計算モデル 背景にあるルール 雇用契約(時給単価, …) 労働基準法(深夜, 休日,
総労働時間, …) 計算に必要な事実 勤務実績(いつ、何時間) 給与計算ルールを62種類の型で記述 本日は、給与(Payroll)型を中心に説明 2019/2/18 8
9.
この後の段取り 給与(Payroll)型を中心に、レイヤごとに説明 ①ドメイン層(ビジネスルール層) ②アプリケーション層 ③データソース層 ④データベース ⑤プレゼンテーション層 ⑥ビジネスルールの設計ドキュメント レイヤごとにQAタイム 2019/2/18 9 ⑤プレゼンテーション 層 ②アプリケーション層 ③データソース層 ④データベース ①ビジネスルール層
10.
給与計算 計算結果 給与の一覧 2月 支払い額 計算の元データ →勤務時間の一覧(勤務の履歴) →従業員の一覧→布川光義→時給の履歴 計算ロジックのアグリゲートクラス domain.model.payroll.Payroll 計算結果 Payroll#totalPayment()
: PaymentAmount 2019/2/18 10
11.
ドメイン層(ビジネスルール層) 計算モデルが息づく場所 model パッケージ type パッケージ 型指向のプログラミング →github.com/masuda220/business-logic-patterns/wiki/設計ガイドライン Plain
Old Java Bean Validation → 有効な値の表明 → 自己文書化の一部 可読性 over Javaの習慣的な記法 No getter, no setter, no Lombok, no JPA Payrollクラス 事実への参照:Contract型(契約条件:時給単価、割り増しルール、…) 事実への参照:Attendance型 (勤務実績) → (TimeRecords型:コレクションオブジェクト) 計算の実行:totalAmount() 結果の表現:PaymentAmount型 プレゼンテーション層 アプリケーション層 データソース層 データベース ビジネスルール層 2019/2/18 11
12.
QAタイム ドメイン層(ビジネスルール層)について (JIGドキュメントでも説明します) プレゼンテーション層 アプリケーション層 データソース層 データベース ビジネスルール層 2019/2/18 12
13.
アプリケーション層 計算モデルのインスタンスの生成を指示する→データソース層 Query サービス :
計算結果を返す(結果を表現した型のインスタンス)→プレゼンテーション層 Operation サービス:計算結果の記録/通知を指示する→データソース層 coordinatorクラス @Service 単機能のserviceのautowire 複数のサービスを複合したサービス PayrollQueryCorrdinatorクラス serviceクラス @Service repositoryのautowire 単機能 ContractQueryServiceクラス AttendanceQueryServiceクラス プレゼンテーション層 アプリケーション層 データソース層 データベース ビジネスルール層 2019/2/18 13
14.
QAタイム アプリケーション層について プレゼンテーション層 アプリケーション層 データソース層 データベース ビジネスルール層 2019/2/18 14
15.
データソース層 データの入出力の実装 MyBatis SQL Mapper SELECTの実行→オブジェクトの生成 記録すべき事実を持ったオブジェクト→INSERTの実行 ContractDataSourceクラス TimeRecordDatasourceクラス プレゼンテーション層 アプリケーション層 データソース層 データベース ビジネスルール層 2019/2/18
15
16.
データベース イミュータブルデータモデル 履歴+最新状態レコード 履歴:事実の記録 → INSERT
オンリー 最新状態レコード:論理的には不要 → INSERT/DELETE NO UPDATE NO updated_at カラム 制約指向 型 NOT NULL制約、外部キー制約、ユニーク制約 とことん日本語 スキーマ名、テーブル名、カラム名 プレゼンテーション層 アプリケーション層 データソース層 データベース ビジネスルール層 2019/2/18 16 https://www.slideshare.net/kawasima/ss-40471672 https://www.slideshare.net/kawasima/ss-44958468
17.
QAタイム データソース層とデータベースについて プレゼンテーション層 アプリケーション層 データソース層 データベース ビジネスルール層 2019/2/18 17
18.
プレゼンテーション層 計算モデルのビュー ドメインオブジェクトをそのまま表示 (naked object
パターン) Spring MVC Direct Field Access → WebDataBinder#initDirectFieldAccess() Thymeleaf Semantic UI PayrollControllerクラス templates/payroll/list.html プレゼンテーション層 アプリケーション層 データソース層 データベース ビジネスルール層 2019/2/18 18
19.
QAタイム プレゼンテーション層について プレゼンテーション層 アプリケーション層 データソース層 データベース ビジネスルール層 2019/2/18 19
20.
JIGドキュメント • ビジネスルールの設計ドキュメント • コードから自動生成 •
設計レビューの補助(冶具) 2019/2/18 20
21.
QAタイム JIGドキュメントについて 2019/2/18 21
22.
まとめ 2019/2/18 22
23.
なぜ作ったか? 実アプリケーション並みの具体例がほしかった コードがいちばん具体的に伝えることができる 質問が具体的になり、考え方の違いがはっきりする 2019/2/18 23
24.
何の具体例か? ビジネスルールが複雑さの原因 計算をモデリング 型指向でプログラミング この3つがドメイン駆動設計の核心 3/22(金)DevLOVE Premium「ドメイン駆動設計 本格入門」で解説 今日は、コードを中心に、どういう雰囲気か紹介 2019/2/18
24