Soumettre la recherche
Mettre en ligne
DDD sample code explained in Java
•
11 j'aime
•
21,921 vues
増田 亨
Suivre
2019-02-18 #jsug ドメイン駆動設計サンプルコード徹底解説
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 24
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
増田 亨
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨
Recommandé
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
増田 亨
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0
Atsushi Nakamura
Contenu connexe
Tendances
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
Tendances
(20)
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
Similaire à DDD sample code explained in Java
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0
Atsushi Nakamura
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Atsushi Nakamura
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来
Akira Inoue
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
Akira Inoue
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
BIGLOBE Inc.
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
増田 亨
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
Logic Apps/Flow Update Summary
Logic Apps/Flow Update Summary
Tomoyuki Obi
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
visasQ - ビザスク
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
日本マイクロソフト株式会社
最近のQ#について
最近のQ#について
Takayoshi Tanaka
アイデンティティ プロバイダーとの連携手法 Tsmatsuz
アイデンティティ プロバイダーとの連携手法 Tsmatsuz
Tusyoshi Matsuzaki
Netmf-180224
Netmf-180224
Atomu Hidaka
de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版
Minoru Naito
Monaco Editor on Cloud
Monaco Editor on Cloud
Shuto Suzuki
WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0
ShinichiAoyagi
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Koichiro Matsuoka
Similaire à DDD sample code explained in Java
(20)
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Logic Apps/Flow Update Summary
Logic Apps/Flow Update Summary
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
最近のQ#について
最近のQ#について
アイデンティティ プロバイダーとの連携手法 Tsmatsuz
アイデンティティ プロバイダーとの連携手法 Tsmatsuz
Netmf-180224
Netmf-180224
de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版
Monaco Editor on Cloud
Monaco Editor on Cloud
WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Plus de 増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
増田 亨
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
増田 亨
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
増田 亨
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
SoR 2.0 summary
SoR 2.0 summary
増田 亨
毎日が越境だ!
毎日が越境だ!
増田 亨
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
増田 亨
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
増田 亨
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
Plus de 増田 亨
(18)
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
SoR 2.0 summary
SoR 2.0 summary
毎日が越境だ!
毎日が越境だ!
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
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
Télécharger maintenant