SlideShare a Scribd company logo
小さなオブジェクトで
ドメインモデルを組み立てる
Qcon Tokyo 2013
2013年4月23日
有限会社 システム設計 増田
ドメイン駆動設計 実践ガイド
Domain-Driven Design (DDD)
ドメイン駆動設計
コンセプト編
1. 業務アプリケーション
2. 開発の難しさ
3. ドメイン駆動設計のアプローチ
業務アプリケーション
• データの種類と量
• ユーザの役割と権限
• 履歴データ:記録、参照、照合、…
• 通知・連絡・報告とルーティング
• 予定(未来)の管理
• 状態遷移
• 状態+権限に依存した制約ルール
• 人間の判断待ち
…
開発の難しさ
• 複雑さ
– 権限、状態、区分、… 組み合わせ
– 例外規定、救済ルール
• あいまいさ
– ビジネス=人と人との相互作用
– 決め事・調整ごとの積み重ね
– 暗黙の前提
• 不確実性
– ビジネス環境の変化
– 事業の変化
– 人の異動、組織の変更
• 複雑さに立ち向かう
• あいまいさに光をあてる
• 不確実性を受け入れる
ドメイン駆動設計
アプローチ
• 「概念モデル」をそのまま実装
• ドメイン層の独立
• モデルの継続的な改良
概念モデルをそのまま実装
• 名前
– パッケージ名、クラス名、メソッド名、…
– 業務用語に合わせる (粒度、関連性)
• 業務の構造に合わせる
– 業務手順
– サービスポリシー、キャンセルポリシー、…
– 会計ルール、管理会計、評価基準、…
• 現実主義
– 実装の都合・制約からのフィードバック
– 設計判断
ドメイン層の独立
• 関心事の分離
– 業務の関心事と実装の関心事
– UI、データベース、通信
• 依存関係の逆転
– 他の層がドメイン層に依存
• DIP : Dependency Inversion Principle
– 例:永続化(データベースアクセス)
• ドメイン層でインタフェース宣言:業務のやりたいこと
• データアクセス層で実装:実装技術依存コード
ドメイン層の継続的改良
• モデルの深化
– ドメインの理解度の深まりを継続的に実装に反映
– 機能追加やバグ修正が、ひとつのチャンス
• モデルの変化
– ビジネスモデルの変化を反映し続ける
• コミットログ(変更理由)は業務の言葉で
– 不要・無効になった概念・ルールを丁寧に除去
実践編
4. アプリケーション・アーキテクチャ
5. ドメイン層の設計パターン
6. リッチなドメインモデル 設計スタイル
お断り:Java/Spring フレームワークでの実践例です。
アプリケーション
アーキテクチャ
構築モデル
アプリケーションサーバー
アプリケーション
フレームワーク
アプリケーション
ロジック
アプリケーションコンテナ
ディスパッチャ
イベントリスナー
Web MVC
バリデーション
O-Rマッピング
テンプレートエンジン
独自に
開発
再利用
再利用
@Autowired
ドメインモデル
イベント駆動の実行モデル
ブラウザ, Web API
HTTP
リクエスト
メール
受信メール自動処理
非同期
メッセージ
サービス間連携
アプリケーション
サーバー
Tomcat
メッセージング
Active MQ
サービスコンテナ
Mule ESB
メールサーバー
James
Mailet
コンテナ
Servlet
コンテナ
サービス
業務イベント
ユースケースの実装
業務知識
ビジネスルール
マクロな業務手順
(トランザクションスクリプト)
問題領域の
オブジェクトモデル
サービス起動トリガー
リッチな
ドメインモデル
シンプルな
ドメインモデル
ドメイン層の2つの
実装スタイル
手続き型
記述
オブジェクト
モデル
リッチな
トランザクション
スクリプト
シンプルな
トランザクション
スクリプト
大きい(たくさんのインスタンス変数)
データの入れ物(getter/setter)
テーブルと対応 小さい(1つ2つのインスタンス変数)
データ+ロジック
テーブルのカラム
設計パターン
リッチなドメインモデル
日付
期間
予定日
有効期限
場所
地域
商品種類
形状
単価
数量
税率
型式
翌月 拠点
キャンペーン
Event
(出来事)
シンプルなトランザクションスクリプト
Reference
(参照/追跡)
Repository
(記録)
Transfer
(通知)
Policy
(判断)
(制約)
部門
役割
担当者
ファンダメンタルなオブジェクト
端数
超重要
ここが
育つほど
楽になる
ユースケースの実装
基本
オブジェクト
ドメイン層の基本オブジェクト
Event
(出来事)
Service
(業務機能)
Reference
(参照/追跡)
Repository
(記録)
Transfer
(通知)
Policy
(判断/制約)
トランザクションスクリプト
ファサード(実際の仕事はドメインオブジェクトに任せる)
問題領域の出来事を表すオブジェクト
イベント種別、いつ/だれが/何を
記録と参照の業務ニーズの表現
インタフェース宣言(実装は、データソース層で)
通知の業務ニーズの表現
インタフェース宣言(実装は、データソース層で)
関心事の「識別」(参照番号、管理番号、追跡番号、…)
関連オブジェクトの集約ルート(値オブジェクトの集約)
ルールの集約
(プライシング、キャンセル、オーバーブッキング、…)
ファンダメンタルなオブジェクト
リッチなドメインモデルの構築基盤
日付
期間
予定日
有効期限
場所
地域
商品種類
形状
単価
数量
税率
型式
翌月 拠点
キャンペーン
部門
役割
担当者
• 業務モデルを表現する基本語彙集
• ビジネスルールの基本ロジック
日付計算、形式チェック、区分の列挙、…
• プログラミング言語のプリミティブな型のラッパー
端数
役に立つ
ドメインオブジェクト
 良い名前
 小さく
 ばらばらに
良い名前の見つけ方
正しく使う(言葉を使って相手の反応をみる)
言葉を組み合わせてみて反応をみる
似た言葉を使い分けて反応をみる
名前の宝庫(初日に見つける)
・その分野のガイドブック
・類似サービスのヘルプ画面
・類似パッケージソフトのカタログ
(英語版ならクラス名の宝庫)
頻度、重要度、関心度、…
語彙を増やす
読む/調べる
聴く/尋ねる
小さく作る
クラス 50行以内
メソッド 3行以内
パッケージ 10ファイル以内
これを超えたら、
分割を考える習慣をつける。
3行メソッド
register( order )
{
verify( order );
record( order );
notifyTo(shippingSection);
}
こういうのが良い感じ
小さく作る狙い
作りやすい
わかりやすい
使いやすい
捨てやすい
業務の言葉をオブジェクトで
プログラミング言語の基本データ型 (Date,String, BigDecimal, Long, …)
をラップした 業務の基本用語ごとのオブジェクトに、
その用語に関するデータとロジックをまとめる。
日付 (時分秒を持たない)
時分(秒を持たない)
翌営業日, 休前日
月末,月初, 四半期, 半期, 年度
期間
有効期限
予定日
期限切れ一週間前のアラート
前日のリマインダ
…
金額
単価
数量,数量単位,換算
消費税,税率,端数処理
合計,小計,総合計
数量割引
キャンペーン価格
季節料金
キャンセルポリシー
…
管理番号,登録番号
取引先コード
取引区分
契約番号
商品番号
型式コード
製造番号
シリアルナンバー
…
用語の粒度=オブジェクトの粒度
委譲メソッド
面倒でも隣人とだけ話す
× person.contactInfo().phones().mobile()
◎ person.primaryContact()
ばらばらにする習慣
実装継承 控え目に。もっと控えめに。
パッケージ階層 フラットに。もっとフラットに。
• 構造を安易にコードに埋め込まない。
• 初期の構造はまちがっていることが多い。
• 構造の変更を簡単にする準備をしておく。
構造の変更に備える
ビジネスロジックの
カプセル化
• if 文/switch 文を使わない
• for 文を閉じ込める/使わない
if 文 / switch 文を使わない
• 列挙型(enum)
–区分、種別、カテゴリー、エリア、…
– EventType, StateType, Category, …
– タイプごとの振る舞いを if 文なしに記述
• Strategy/State パターン
• たとえば、「未記入」や「不明」の表現→ MissingObject パターン
• Map, Set
…
for文を閉じ込める/書かない
• ファーストクラスコレクション
– コレクション変数は単独でラッピング
• List<Order> orders ; → class Orders
– for 文を使ったロジックの集約と整理
• コレクション操作の副作用の撲滅
• for 文を書かない
– コレクション API の活用
– Comparable/Comparator の実装
– equals()/hashCode() のオーバーライド
ドメインオブジェクトの
組み立て方
• サービスクラスを起点に
– サービスクラスはマクロな業務手順(数行)を記述
– 判断・分岐・導出は、ドメインオブジェクトに委譲
• フレームワーク(Inversion of Control)
– 組み込み済の制御構造
• Web MVC、 バインド&バリデーション
• O-R マッピング、 O-X マッピング
• 例外ハンドラー
– @Autowired
• パターンマッチング、命名規約、アノテーションで自動で組み
立ててくれる。
参考情報
7. 設計と実装のスキルアップ
8. ドメインモデルの開発スタイル
9. 問題領域の把握手法
10. 開発プロセス
設計と実装のスキルアップ
エクササイズ
9つのルール
小さく作る
・メソッドの構成
・オブジェクト間の特性移動
・データの再編成
・条件記述の単純化
・メソッド呼び出しの単純化
実装の原則
ドメインの理解
言葉の力
モデル駆動
設計のスタイル
For
Thoughtful Developer
Leading Designer
オブジェクト指向
基礎訓練
・クラス
・振る舞いとメソッド
・状態とコレクション
設計の改善
責任割当の原則
GRASP
責任駆動設計
役割ステレオタイプ
契約による設計
リファクタリング
モデリング
プログラミング
イテレーティブで発見的な活動
ドメインモデルの開発
三位一体
リレーションシップ駆動
要件定義(RDRA)
・コンテキストモデル
・業務フローモデル
・イベント/状態モデル
ICONIX
・ドメインオブジェクトの発見
・ドメインモデルの育て方
・ロバストネス分析
ビジネスルールの発見と定義
業務フロー図から
ドメインモデルから
イベント/状態モデルから
問題領域を把握する
初期のラフモデルを
2時間以内で描く
モデル間を関連づけ
整合性と網羅性を確保
ユースケースと
実装のギャップを埋める
それぞれのモデルから
ビジネスルールを抽出する
ヒントとテクニック
ドメイン駆動の開発プロセス
業務フロー
モデルの改良
要約、骨格
画面・帳表ユースケース
属性の追加モデルの洗練
イベント 状態遷移
データモデル
初期の
ラフモデル
コンテキスト図
手がかかり
初日からドメインモデルの設計と実装
ロバストネス分析
必要ならシーケンス図
操作追加
Java
ソース
基盤クラス追加
DDL/SQL
ソース
問題領域の把握
構造化用語集
Domain-Driven Design (DDD)
ドメイン駆動設計
まとめ
アプローチ
• 「概念モデル」をそのまま実装
• ドメイン層の独立
• ドメインモデルの継続的な改良
役に立つ
ドメインオブジェクト
 良い名前
 小さく
 ばらばらに

More Related Content

What's hot

ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
Mao Ohnishi
 

What's hot (20)

3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
 
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
 
オブジェクト指向設計の原則
オブジェクト指向設計の原則オブジェクト指向設計の原則
オブジェクト指向設計の原則
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
ドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだ
 
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
 
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
 
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
 
ドメインモデルの育て方
ドメインモデルの育て方ドメインモデルの育て方
ドメインモデルの育て方
 
FiNC DDD第一回勉強会
FiNC DDD第一回勉強会FiNC DDD第一回勉強会
FiNC DDD第一回勉強会
 
某S社のddd(メイリオ)
某S社のddd(メイリオ)某S社のddd(メイリオ)
某S社のddd(メイリオ)
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
 

Viewers also liked

オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
 

Viewers also liked (11)

ドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩みドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩み
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
 
wabi sabi のススメ
wabi sabi のススメwabi sabi のススメ
wabi sabi のススメ
 
RDRA DDD Agile
RDRA DDD AgileRDRA DDD Agile
RDRA DDD Agile
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
いまなぜドメイン駆動設計か
いまなぜドメイン駆動設計かいまなぜドメイン駆動設計か
いまなぜドメイン駆動設計か
 
21世紀のソフトウェア技術者
21世紀のソフトウェア技術者21世紀のソフトウェア技術者
21世紀のソフトウェア技術者
 
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 

Similar to QCon Tokyo 2013

自己紹介にかえて-変化する企業ITと“ワクワク感” 桑原里恵
自己紹介にかえて-変化する企業ITと“ワクワク感” 桑原里恵自己紹介にかえて-変化する企業ITと“ワクワク感” 桑原里恵
自己紹介にかえて-変化する企業ITと“ワクワク感” 桑原里恵
Sapporo Sparkle k.k.
 
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
Hironori Washizaki
 
会社紹介・説明資料(カジュアル面談資料)_20230404.pdf
会社紹介・説明資料(カジュアル面談資料)_20230404.pdf会社紹介・説明資料(カジュアル面談資料)_20230404.pdf
会社紹介・説明資料(カジュアル面談資料)_20230404.pdf
ssuserf1df9a
 
クラウドは○○を共有するサービス ~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?...
クラウドは○○を共有するサービス ~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?...クラウドは○○を共有するサービス ~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?...
クラウドは○○を共有するサービス ~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?...
WebSig24/7
 
セミナー「クラウド時代におけるシステムデザイン」桑原里恵
セミナー「クラウド時代におけるシステムデザイン」桑原里恵セミナー「クラウド時代におけるシステムデザイン」桑原里恵
セミナー「クラウド時代におけるシステムデザイン」桑原里恵
Sapporo Sparkle k.k.
 
クラウドサービスの安全性を考える
クラウドサービスの安全性を考えるクラウドサービスの安全性を考える
クラウドサービスの安全性を考える
Daisuke Nakazawa
 

Similar to QCon Tokyo 2013 (20)

自己紹介にかえて-変化する企業ITと“ワクワク感” 桑原里恵
自己紹介にかえて-変化する企業ITと“ワクワク感” 桑原里恵自己紹介にかえて-変化する企業ITと“ワクワク感” 桑原里恵
自己紹介にかえて-変化する企業ITと“ワクワク感” 桑原里恵
 
マイクロアドにおけるデータストアの使い分け
マイクロアドにおけるデータストアの使い分けマイクロアドにおけるデータストアの使い分け
マイクロアドにおけるデータストアの使い分け
 
クラウドがもたらすパラダイムシフト
クラウドがもたらすパラダイムシフトクラウドがもたらすパラダイムシフト
クラウドがもたらすパラダイムシフト
 
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
 
会社紹介・説明資料(カジュアル面談資料)_20230404.pdf
会社紹介・説明資料(カジュアル面談資料)_20230404.pdf会社紹介・説明資料(カジュアル面談資料)_20230404.pdf
会社紹介・説明資料(カジュアル面談資料)_20230404.pdf
 
第32回Websig会議「クラウドは○○を共有するサービス」
第32回Websig会議「クラウドは○○を共有するサービス」第32回Websig会議「クラウドは○○を共有するサービス」
第32回Websig会議「クラウドは○○を共有するサービス」
 
クラウドは○○を共有するサービス ~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?...
クラウドは○○を共有するサービス ~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?...クラウドは○○を共有するサービス ~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?...
クラウドは○○を共有するサービス ~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?...
 
セミナー「クラウド時代におけるシステムデザイン」桑原里恵
セミナー「クラウド時代におけるシステムデザイン」桑原里恵セミナー「クラウド時代におけるシステムデザイン」桑原里恵
セミナー「クラウド時代におけるシステムデザイン」桑原里恵
 
オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)
オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)
オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)
 
社内 DDD 勉強会第1回
社内 DDD 勉強会第1回社内 DDD 勉強会第1回
社内 DDD 勉強会第1回
 
[Modern Cloud Day Tokyo 2019] 実践エンタープライズ・ブロックチェーン ~ システム設計・運用における課題とそのソリューション
[Modern Cloud Day Tokyo 2019] 実践エンタープライズ・ブロックチェーン ~ システム設計・運用における課題とそのソリューション[Modern Cloud Day Tokyo 2019] 実践エンタープライズ・ブロックチェーン ~ システム設計・運用における課題とそのソリューション
[Modern Cloud Day Tokyo 2019] 実践エンタープライズ・ブロックチェーン ~ システム設計・運用における課題とそのソリューション
 
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
 
Ki sales solutions 1
Ki sales solutions 1Ki sales solutions 1
Ki sales solutions 1
 
避けては通れないビッグデータ周辺の重要課題
避けては通れないビッグデータ周辺の重要課題避けては通れないビッグデータ周辺の重要課題
避けては通れないビッグデータ周辺の重要課題
 
クラウドサービスの安全性を考える
クラウドサービスの安全性を考えるクラウドサービスの安全性を考える
クラウドサービスの安全性を考える
 
システム論に基づく情報教育の授業計画と教育実践
システム論に基づく情報教育の授業計画と教育実践システム論に基づく情報教育の授業計画と教育実践
システム論に基づく情報教育の授業計画と教育実践
 
IPA未踏ソフト成果報告(仮想秘書サービス)
IPA未踏ソフト成果報告(仮想秘書サービス)IPA未踏ソフト成果報告(仮想秘書サービス)
IPA未踏ソフト成果報告(仮想秘書サービス)
 
中堅・中小製造業のDX推進のポイント
中堅・中小製造業のDX推進のポイント中堅・中小製造業のDX推進のポイント
中堅・中小製造業のDX推進のポイント
 
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
 
Kspin20121201 kobayashi
Kspin20121201 kobayashiKspin20121201 kobayashi
Kspin20121201 kobayashi
 

More from 増田 亨

More from 増田 亨 (20)

正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
 
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
 
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
 
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
SoR 2.0 summary
SoR 2.0 summarySoR 2.0 summary
SoR 2.0 summary
 
毎日が越境だ!
毎日が越境だ!毎日が越境だ!
毎日が越境だ!
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 

Recently uploaded (14)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

QCon Tokyo 2013