ドメイン駆動設計のための Spring の上手な使い方

増田 亨
増田 亨ソフトウェアシステムの設計・構築 at システム設計
ドメイン駆動設計のための
Springの上手な使い方
2017年11月24日
ギルドワークス 増田
Spring Fest 2017
1
自己紹介
コード :https://github.com/system-sekkei/isolating-the-domain
ブログ:システム設計日記 http://masuda220.jugem.jp/
https://www.slideshare.net/masuda220/
コードを書くのが楽しくて、作ったソフトウェアを使ってもらえとうれしい、どこにでもいる技術者
2
お話しする内容
ドメイン駆動設計とは何か
Spring のプログラミングモデル
ドメイン駆動設計のための
Springの使い方
3
ドメイン駆動設計とは何か
What is Domain-Driven Design
4
価値のあるシステムを構築する方法
成長し価値を加え続けるソフトウェア
厳しい現実の中での設計の実践技法
ドメイン駆動設計
5
開発者がドメインを学ぶ
モデルと実装を一致させる
深いモデルを探求する
ドメイン駆動設計の基本活動
巨大な複雑さに立ち向かう
6
開発者がドメインを学ぶ
モデルと実装を一致させる
深いモデルを探求する
ドメイン駆動設計の基本活動
巨大な複雑さに立ち向かう
7
開発者がドメインを学ぶ
対象領域(ドメイン)の知識を広げる
学んだことをコードで表現する
8
対象領域(ドメイン)の知識を広げる
• 業務の用語/言い回しを覚える
• 登場人物、活動の目的、関心事、…
• 活動の内容、タイミング
• ルール、前提、制約、…
• 表面的な言葉の理解から始める
• しだいに深い洞察へ
• 背景にある構造や原理を言語化する
• 継続的に学習する
9
学んだことをコードで表現する
• ドメインの知識をコードで表現する基本スキル
• 値オブジェクト、コレクションオブジェクト、区分オブジェクト
• 識別オブジェクト、集約
• Repository, Factory
• 知識の増加がコードに現れる
• パッケージ名、クラス名、インタフェース名、メソッド名
• 洞察の深さがコードに現れる
• パッケージの構造、オブジェクトの参照関係、…
• コードレビュー:ドメインの学習成果のレビュー
• パッケージ名、クラス名、インタフェース名、メソッド名、…
• 参照関係/グルーピングの範囲
• コードで表現されたドメインの知識の量は? 質は?
• コードでの知識表現に工夫の余地は?
10
技術者はエクセルで知識を表現してはいけない
開発者がドメインを学ぶ
モデルと実装を一致させる
深いモデルを探求する
ドメイン駆動設計の基本活動
巨大な複雑さに立ち向かう
11
モデル
• 選び抜かれた重要な
側面
• 蒸留された本質的な知
識
• 全体を形づくる主要な
骨組み
12
モデル
• 選び抜かれた重要な
側面
• 蒸留された本質的な知
識
• 全体を形づくる主要な
骨組み
実装
• 大量かつ網羅的な記
述が必要
• 重要ではないが、省略
はできない細部の記述
• 肥大化したコード、重
複したコードとの戦い
13
モデル
• 選び抜かれた重要な
側面
• 蒸留された本質的な知
識
• 全体を形づくる主要な
骨組み
実装
• 大量かつ網羅的な記
述が必要
• 重要ではないが、省略
はできない細部の記述
• 肥大化したコード、重
複したコードとの戦い
モデルと実装を関連づけることで、実装が整理され、見通しが良くなる
実装からフィードバックすることで、モデルが実用的になる
14
モデルと実装を一致させる
• ドメインの記述を、技術の関心事から独立させる
• isolating-the-domain
• Spring のプログラミングモデル
• 概念の単位とプログラミングの単位を一致させる
• オブジェクト指向によるモジュール化
• 型(クラス、インタフェース、enum)で、知識を表現する
• 基本データ型ではなく、ユーザ定義型で表現する
• 最初からぴったりの型は見つからない
• 実験→フィードバック→設計の改善を繰り返す
15
開発者がドメインを学ぶ
モデルと実装を一致させる
深いモデルを探求する
ドメイン駆動設計の基本活動
巨大な複雑さに立ち向かう
16
深いモデルを探求する
• 中核の複雑さ/機会に焦点を合わせる
• 中核を探す活動
• 仮説と検証
• 役に立つ型を見つけるための実験を繰り返す
• 暗黙の概念を明示的に表現する
• 暗黙になりがちな知識を明示的に表現する工夫
• しなやかな設計
• 複雑になっても成長を続けることができる設計
• 重複を徹底的に取り除く(オブジェクト指向設計)
17
暗黙になりがちな知識を
明示的に表現する工夫
• 制約
• Bean Validationで、正しい値を明示的に表現する
• Policy { Set<Predicate<T>> rules }
• プロセス(業務の流れ/手順)
• 流れの構造の表現 : Set<Action>, Action#nextAction()
• 行動の記録 : List<Event>
• 区分の分析
• enumによる区分名の列挙(コードから日本語名へ)
• enumのリファクタリング
• MECE : Mutually Exclusive and Collectively Exhaustive
相互に排他的、かつ、網羅的
• そうなっていない区分の背景を深掘る
• enumに振る舞い(判断/加工/計算)を持たせる
暗黙の知識を宣言的に表現できると、if文がどんどん減っていく18
開発者がドメインを学ぶ
モデルと実装を一致させる
深いモデルを探求する
ドメイン駆動設計の基本活動
巨大な複雑さに立ち向かう
19
巨大な複雑さに立ち向かう
• 戦略的に取り組む
• 時間がかかる
• 地道な努力の積み重ねのエネルギー
• モデルを探求する
• このレベルでも、モデルとコードを一致させる
• コードに責任を持つ開発者がリードする
• 巨大な複雑さに立ち向かうためのスキル
• 俯瞰
• 蒸留
• 大きな構造化
20
開発者がドメインを学ぶ
モデルと実装を一致させる
深いモデルを探求する
ドメイン駆動設計の基本活動
巨大な複雑さに立ち向かう
21
Spring のプログラミングモデル
Spring Programming Model
22
Spring のプログラミングモデル
also known as
ドメインオブジェクト
アノテーション
Java-based configration
application.properties
23
Spring のプログラミングモデル
also known as
ドメインオブジェクト
アノテーション
Java-based configration
application.properties
ドメイン駆動設計の
活動の中心
24
Spring のプログラミングモデル
also known as
ドメインオブジェクト
アノテーション
Java-based configration
application.properties
ドメイン駆動設計の
活動の中心
ドメイン駆動設計を実践した場合
何が変わるのか/変わらないのか
25
Springのプログラミングモデル
Springはアプリケーションの「基盤」を提供する
開発者は、ドメイン固有のロジックに集中する
ドメイン駆動設計の考え方そのもの
focus on your specific domain model
implement with plain Objects
26
Springのプログラミングモデル
Springはアプリケーションの「基盤」を提供する
開発者は、ドメイン固有のロジックに集中する
ドメイン駆動設計の考え方そのもの
focus on your specific domain model
implement with plain Objects
DDD本が出版された後、Springドキュメントに、DDDを意識した記述が増えた
@Service, @Repositoryは、DDD本に由来する
エヴァンスは、EJBからSpringへのシフトは大きな転換だったと振り返っている
Springは
ドメイン駆動設計を実践するためのフレームワーク
27
Spring
ドメインとドメインロジックに集中できる
ドメインの分析と理解に時間を割ける
ドメインロジックのコードがフレーム
ワークに汚染されない
28
Spring
こんな使い方もあります…
29
ドメインとドメインロジックに集中
技術課題に集中する
モデルに基づき設計する
バックログをせっせと消化する
分析・設計・実装を単一の活動に
フェーズに分けて伝言ゲーム
基盤チームとアプリチームの分離
30
プレゼンテーション層
データソース層
アプリケーション層
画面の入出力
データベースの入出力
データベースの
更新・参照の手続き
データの加工ロジック
データの検証ロジック
データの判断/加工/計算
書き込みの前処理ロジック
読み出しの後処理ロジック
データ処理に焦点をあてる
@Controller
@Service
@Repository
31
トランザクションスクリプト
ドメインロジックが重複しない
同じロジックが重複する
どこにロジックが書いてあるか
特定しやすい
データ処理の流れを追いかけて探しまわる
変更の影響を狭い範囲に限定できる
後続の処理をすべて追いかける
32
Spring
ドメイン駆動設計らしい使い方
33
ドメインとドメインロジックに集中
モデルに基づき設計する
分析・設計・実装を単一の活動に
核心の複雑さに立ち向かう
34
プレゼンテーション層
データソース層
アプリケーション層
ドメインを独立させる
@Controller
@Service
@Repository
ドメインモデル
ここを
インクリメンタルに
成長させながら
全体の開発を駆動する
ドメインロジックを
ここに集約する
35
ドメインモデル
ドメインロジックが重複しない
どこにロジックが書いてあるか
特定しやすい
変更の影響を狭い範囲に限定できる
データを持つクラスが唯一のロジックを持つ
パッケージ名→クラス名
変更したクラスに閉じる
パッケージに閉じる
そのクラスを直接使うクラスまでに閉じる
36
ドメイン駆動設計のための
Spring の使い方
Spring Integration Spring Batch Spring Security
37
38
初日から、動くアプリケーションで考える
初日から、学んだことをコードで記録する
初日から、コードでモデルを表現してみる
初日から、End to End で実験してみる
gitですべての履歴を管理
spring-boot-starter-*
動く画面でフィードバック、実データからのフィードバック
ドメインを学ぶ
モデルと実装の一致
深いモデルの探求
巨大な複雑さに立ち向かう
39
Spring Integration
40
Spring Integration
ドメインを学ぶ
モデルと実装の一致
深いモデルの探求
巨大な複雑さに立ち向かう
• 複数のアプリケーションの連携という課題
• 境界づけられたコンテキスト(Bounded Context)
• コンテキストマップ(Context Map)
• モデルとモデルの連携パターン
• EIP(Enterprise Integration Patterns)の実装技術
• メッセージングモデル
• 分散/非同期/並列
• イベントソーシング
• 結果整合性
githubリポジトリ
41
Enterprise Integration Patterns
巨大な複雑さを分析・設計・実装するための
枠組みと共通の語彙
42
Spring Integration
• データ通信の技術 vs. 業務モデル
• メッセージングモデルは、業務のモデルでもある
• ドメインの知識がコードに現れる場所
• message名/channel名/endpoint名
• コンポーネントの粒度、名前づけ、組み合わせ方
• Transformer
• Filter
• Router
• Splitter/Aggregator
• Scatter/Gather
• Service Activator
• Channel Adapter
• 開発者のドメインへの意識/理解の違いが、設計(コー
ド)にそのままでてくる
43
Spring Batch
44
Spring Batch
アーキテクチャ
Step フロー定義45
Spring Batch
• バッチ処理:今でも、多くの業務を裏で支えている
• 大量のデータ処理技術 vs. 業務モデル
• Job/Taskモデルは、業務のモデルでもある
• ドメインの理解度の違いが表れる場所
• Job / Step / Step Flow
• Job Launcher/ Schedule 定義
• Completion policy
• Retry Policy
• Exception Handling
• RepeatListener (before/after/open/close/onError)
• 構成メタデータで、ドメインの知識を表現する
ドメインを学ぶ
モデルと実装の一致
深いモデルの探求
巨大な複雑さに立ち向かう
46
47
Spring Security
• 認可モデル : 業務の重要な関心事
• できる/できない
• 見える/見えない
• 認可モデルを宣言的に明示する手段
• Role/権限
• Roleの分析と定義
• 権限の分析と定義
• UserとRoleの関係
• Roleと権限のひもづけ
• RoleとRoleの構造化
ドメインを学ぶ
モデルと実装の一致
深いモデルの探求
巨大な複雑さに立ち向かう
48
ドメイン駆動設計
現場で取り組むためのヒント
49
開発者がドメインを学ぶ
モデルと実装を一致させる
深いモデルを探求する
ドメイン駆動設計の基本活動
巨大な複雑さに立ち向かう
50
オブジェクト指向
エクストリームプログラミング
ドメイン駆動設計
Spring Integration Spring Batch Spring Security
アプリケーションの基盤技術
51
• 実践的なオブジェクト指向の考え方とやり方
• ドメインの知識をオブジェクトで表現する基本
• 「ドメイン駆動設計」本への橋渡し
• 日本語版への序文
• はじめに
• 1部/2部/3部/4部の導入文
• 結論
52
• 3章 コードのいやな臭いと処方箋
• 12章 4つの大きなリファクタリング
• 第1部 多国通貨
• 値オブジェクトの設計の参考
分析からコードへの橋渡し
• 全体を視覚的に俯瞰する実践的な技法
• 関連性から要点を導く
• 要件(スコープ)を共通認識にする
• 最小のステップでモデルをコードに落とし込
む実践的な技法
• 初期のドメインモデル
• ユースケース記述
• ロバストネス分析(予備設計)
53
持続的な努力と到達レベル
到
達
レ
ベ
ル
努力(時間)
成果が出るまで
がんばる期間
なかなか上達しなくても
あきらめずにがんばる期間
学習曲線
もっと上を目指して
がんばってみる期間
最初のブレークスルー
手ごたえを感じる瞬間
次のブレークスルー
気がついたらレベルアップ
別世界へのブレークスルー
視界が広がる瞬間
54
• どんな状況でも改善はできる
• どんなときでも「あなた」から改善を始められる
• どんなときでも「今日」から改善を始められる
55
Kent Beck のメッセージ
1 of 55

Recommended

「実践ドメイン駆動設計」 から理解するDDD (2018年11月) by
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)A AOKI
24.3K views127 slides
ドメイン駆動設計に15年取り組んでわかったこと by
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと増田 亨
10.2K views21 slides
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話 by
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
88K views89 slides
世界でいちばんわかりやすいドメイン駆動設計 by
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
14.5K views44 slides
ドメイン駆動設計 基本を理解する by
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する増田 亨
117.5K views134 slides
ドメイン駆動設計 の 実践 Part3 DDD by
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD増田 亨
8.8K views23 slides

More Related Content

What's hot

ドメイン駆動設計のためのオブジェクト指向入門 by
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門増田 亨
48K views89 slides
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring by
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
29.8K views83 slides
3週連続DDDその1 ドメイン駆動設計の基本を理解する by
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する増田 亨
32.5K views113 slides
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか by
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかKoichiro Matsuoka
48.4K views65 slides
ドメイン駆動で開発する ラフスケッチから実装まで by
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで増田 亨
15.7K views103 slides
オブジェクト指向の設計と実装の学び方のコツ by
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
95.1K views76 slides

What's hot(20)

ドメイン駆動設計のためのオブジェクト指向入門 by 増田 亨
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨48K views
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring by 増田 亨
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨29.8K views
3週連続DDDその1 ドメイン駆動設計の基本を理解する by 増田 亨
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨32.5K views
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか by Koichiro Matsuoka
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka48.4K views
ドメイン駆動で開発する ラフスケッチから実装まで by 増田 亨
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨15.7K views
オブジェクト指向の設計と実装の学び方のコツ by 増田 亨
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨95.1K views
DDD sample code explained in Java by 増田 亨
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
増田 亨21.7K views
ドメイン駆動設計 複雑さに立ち向かう by 増田 亨
ドメイン駆動設計 複雑さに立ち向かうドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かう
増田 亨5.8K views
ドメイン駆動設計 本格入門 by 増田 亨
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨44.6K views
ドメイン駆動設計 失敗したことと成功したこと by BIGLOBE Inc.
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.23.5K views
ドメイン駆動設計入門 by Takuya Kitamura
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura44.4K views
ソーシャルゲーム案件におけるDB分割のPHP実装 by infinite_loop
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop51.8K views
例外設計における大罪 by Takuto Wada
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada68.5K views
Redisの特徴と活用方法について by Yuji Otani
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani101.5K views
リッチなドメインモデル 名前探し by 増田 亨
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨14.4K views
Java ORマッパー選定のポイント #jsug by Masatoshi Tada
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada90.1K views
ドメイン駆動設計 ( DDD ) をやってみよう by 増田 亨
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨50.1K views
イミュータブルデータモデル(入門編) by Yoshitaka Kawashima
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima185.7K views
イミュータブルデータモデル(世代編) by Yoshitaka Kawashima
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima38.1K views

Similar to ドメイン駆動設計のための Spring の上手な使い方

ドメイン駆動設計とは何か 【入門編】 by
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】増田 亨
13.3K views40 slides
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう by
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しようCSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しようMasayuki Abe
3.8K views76 slides
論理思考とプログラミング 2013f#10 by
論理思考とプログラミング 2013f#10論理思考とプログラミング 2013f#10
論理思考とプログラミング 2013f#10Noritada Shimizu
1.8K views38 slides
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~ by
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~貴志 上坂
11.5K views42 slides
Webの勉強会#14 by
Webの勉強会#14Webの勉強会#14
Webの勉強会#14MarlboroLand
215 views60 slides

Similar to ドメイン駆動設計のための Spring の上手な使い方(20)

ドメイン駆動設計とは何か 【入門編】 by 増田 亨
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
増田 亨13.3K views
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう by Masayuki Abe
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しようCSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
Masayuki Abe3.8K views
論理思考とプログラミング 2013f#10 by Noritada Shimizu
論理思考とプログラミング 2013f#10論理思考とプログラミング 2013f#10
論理思考とプログラミング 2013f#10
Noritada Shimizu1.8K views
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~ by 貴志 上坂
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
貴志 上坂11.5K views
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」 by Kazumi IWANAGA
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Kazumi IWANAGA157 views
FiNC DDD第一回勉強会 by 裕紀 重村
FiNC DDD第一回勉強会FiNC DDD第一回勉強会
FiNC DDD第一回勉強会
裕紀 重村12.3K views
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座 by DIVE INTO CODE Corp.
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
Python におけるドメイン駆動設計(戦術面)の勘どころ by Junya Hayashi
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi17.4K views
20151110 ドメイン駆動設計によるサービス開発 by Mao Ohnishi
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
Mao Ohnishi11.3K views
メンバーズグループ アジャイル開発への取り組み by Hiroshi Tsukamoto
メンバーズグループ アジャイル開発への取り組みメンバーズグループ アジャイル開発への取り組み
メンバーズグループ アジャイル開発への取り組み
Hiroshi Tsukamoto789 views
ゼロからのプログラミングRails講座 Codeanywhere版 by DIVE INTO CODE Corp.
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.10.7K views
私がドメイン駆動設計をやる理由 by 増田 亨
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨22.9K views
NS study8 DDD Microservices Azuer Service Fabric by 貴志 上坂
NS study8 DDD Microservices Azuer Service FabricNS study8 DDD Microservices Azuer Service Fabric
NS study8 DDD Microservices Azuer Service Fabric
貴志 上坂1.1K views
うちの開発におけるXD利用法 by Kazuma Sekiguchi
うちの開発におけるXD利用法うちの開発におけるXD利用法
うちの開発におけるXD利用法
Kazuma Sekiguchi1.6K views
サーバーレスの今とこれから by 真吾 吉田
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田35.2K views
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート) by Koichiro Matsuoka
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Koichiro Matsuoka599 views
Stripeを1年使ってみて思ったこと by tomoaki koshi
Stripeを1年使ってみて思ったことStripeを1年使ってみて思ったこと
Stripeを1年使ってみて思ったこと
tomoaki koshi857 views
ドメイン駆動設計の学習曲線とブレークポイント by 増田 亨
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
増田 亨8.2K views

More from 増田 亨

ソフトウェア開発のやり方の改善 by
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善増田 亨
6.6K views26 slides
事業活動モデル・システム機能モデル・ビジネスロジックの記述 by
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述増田 亨
1.5K views7 slides
ドメインオブジェクトの設計ガイドライン by
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン増田 亨
3.6K views10 slides
オブジェクト指向プログラミングの現在・過去・未来 by
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来増田 亨
6.6K views39 slides
ドメイン駆動設計 コアドメインを語り合ってみよう by
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう増田 亨
2.5K views24 slides
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer by
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer増田 亨
13.9K views43 slides

More from 増田 亨(20)

ソフトウェア開発のやり方の改善 by 増田 亨
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨6.6K views
事業活動モデル・システム機能モデル・ビジネスロジックの記述 by 増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
増田 亨1.5K views
ドメインオブジェクトの設計ガイドライン by 増田 亨
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨3.6K views
オブジェクト指向プログラミングの現在・過去・未来 by 増田 亨
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨6.6K views
ドメイン駆動設計 コアドメインを語り合ってみよう by 増田 亨
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨2.5K views
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer by 増田 亨
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
増田 亨13.9K views
ドメイン駆動設計という設計スタイル by 増田 亨
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨17.4K views
プロダクトづくりのためのソフトウェア設計スタイル by 増田 亨
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
増田 亨4.6K views
ソフトウェア設計の学び方を考える by 増田 亨
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
増田 亨25.1K views
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ by 増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨3.7K views
ドメイン駆動設計の正しい歩き方 by 増田 亨
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨25.3K views
マイクロサービス 4つの分割アプローチ by 増田 亨
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨41.4K views
ビジネスルールの複雑さに立ち向かう by 増田 亨
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨12.2K views
ソフトウェアの核心にある複雑さに立ち向かう by 増田 亨
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨10.6K views
アジャイルなソフトウェア設計を目指して by 増田 亨
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
増田 亨12.2K views
ドメイン駆動設計をゲーム開発に活かす by 増田 亨
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨4.8K views
SoR 2.0 summary by 増田 亨
SoR 2.0 summarySoR 2.0 summary
SoR 2.0 summary
増田 亨1.3K views
毎日が越境だ! by 増田 亨
毎日が越境だ!毎日が越境だ!
毎日が越境だ!
増田 亨10.5K views
SoR 2.0 基幹システムの再定義と再構築 by 増田 亨
SoR 2.0 基幹システムの再定義と再構築SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
増田 亨9.2K views
越境する情シス:進化可能なアーキテクチャを手に入れる by 増田 亨
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
増田 亨5.8K views

ドメイン駆動設計のための Spring の上手な使い方