SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
ドメインモデルの育て方
ギルドワークス 増田
2014年6月27日
ソフトウェアを正しく作るための
BP Study #82
現実世界/モデルとコード
現実世界 モデル
(模型) ソースコード
単純化
コードで
表現
動くソフトウェア
現実世界/モデルとコード
現実世界 モデル
(模型) ソースコード
単純化
コードで
表現
動くソフトウェア
一回では
うまくいかない
一回では
うまくいかない
モデリングと設計のパラダイム
• 画面・帳票モデル
– 画面一覧、画面遷移図、項目定義書、… スマートUI
モデリングと設計のパラダイム
• 画面・帳票モデル
– 画面一覧、画面遷移図、項目定義書、…
• 機能モデル
– 機能一覧、入出力項目定義、処理詳細、…
スマートUI
トランザクション
スクリプト
モデリングと設計のパラダイム
• 画面・帳票モデル
– 画面一覧、画面遷移図、項目定義書、…
• 機能モデル
– 機能一覧、入出力項目定義、処理詳細、…
• データモデル
– ER 図、テーブル一覧、テーブル定義書、…
スマートUI
トランザクション
スクリプト
Active
Record
モデリングと設計のパラダイム
• 画面・帳票モデル
– 画面一覧、画面遷移図、項目定義書、…
• 機能モデル
– 機能一覧、入出力項目定義、処理詳細、…
• データモデル
– ER 図、テーブル一覧、テーブル定義書、…
• オブジェクトモデル
– パッケージ図、クラス図、コラボレーション図、…
スマートUI
トランザクション
スクリプト
Active
Record
ドメイン
モデル
三層+ドメインモデル
プレゼンテーション層
アプリケーション層
データソース層
三層+ドメインモデル
プレゼンテーション層
アプリケーション層
データソース層
OrderForm.vm
OrderConfirm.vm
OrderRegistered.vm
@Controller
class OrderEntryController
… // bind & validate
@Service
class OrderRegisterService
…
void register( Order order )
@Repository
class OrderDatasource
…
void save( Order order )
三層+ドメインモデル
プレゼンテーション層
アプリケーション層
データソース層
OrderForm.vm
OrderConfirm.vm
OrderRegistered.vm
@Controller
class OrderEntryController
… // bind & validate
@Service
class OrderRegisterService
…
void register( Order order )
@Repository
class OrderDatasource
…
void save( Order order )
ドメインモデル
class Order
class Items
class ShipTo
class BillingTo
class ContactInfo
…
interface OrderRepository
<<use>>
import model.Order
ロジックの抽出と移動
矢印の意味
プロジェクトの進行モデル
• プロジェクト初日
– 顔合わせとご挨拶、プロジェクトの概要説明
プロジェクトの進行モデル
• プロジェクト初日
– 顔合わせとご挨拶、プロジェクトの概要説明
• 仕様が具体的になり始める
– 打合せ、ドキュメント、…
プロジェクトの進行モデル
• プロジェクト初日
– 顔合わせとご挨拶、プロジェクトの概要説明
• 仕様が具体的になり始める
– 打合せ、ドキュメント、…
• コード量が急速に増え始める
– 開発環境が整って、人が集まって、リズムがでてき
た
プロジェクトの進行モデル
• プロジェクト初日
– 顔合わせとご挨拶、プロジェクトの概要説明
• 仕様が具体的になり始める
– 打合せ、ドキュメント、…
• コード量が急速に増え始める
– 開発環境が整って、人が集まって、リズムがでてくる
• 開発終盤
– 仕様の変更/追加/再定義、バグとの戦い、性能問題
プロジェクトの進行モデル
• プロジェクト初日
– 顔合わせとご挨拶、プロジェクトの概要説明
• 仕様が具体的になり始める
– 打合せ、ドキュメント、…
• コード量が急速に増え始める
– 開発環境が整って、人が集まって、リズムがでてきた
• 開発終盤
– 仕様の変更/追加/再定義、バグとの戦い、性能問題
• リリース後
– 障害(バグの発覚)、積み残し開発、追加開発、…
1.プロジェクトの初日の設計
• パッケージ図
顧客
商品
注文
出荷 売上・請
求・回収
値引き 返品
<<use>>
( = import 文)
業務の基本構造
=プログラムの基本構造
参照関係の「複雑」さや「あいまい」さが、設計課題を暗示している
?
?
?
2.仕様が具体的になりはじめたら
• ドメインモデルの基礎部品を増やしていく
– 値オブジェクト
– 振る舞いを持った区分
– ファーストクラスコレクション
• 要求に出てくる「言葉」をマッピング
– パッケージ名
– クラス名
– メソッド名
• コード量とクラスの数は比例する
– クラスの数が変わらずコードが膨らみはじめたら警戒
警報
ドメインモデルの初期の育て方
日付
期間
予定日
有効期限
場所
地域区分
商品種類
顧客区分
単価
数量
税率
型式
翌月 拠点
キャンペーン
Event
(出来事)
アプリケーションサービス
Reference
(参照/追跡)
Repository
(記録)
Transfer
(通知)
Policy
(判断)
(制約)
部門
役割
担当者一覧
ドメインモデルの基礎部品
端数
超重要
ここを
重点的に
育てる
ユースケースの実装
業務の主な
関心事
受注一覧
値オブジェクト
String
StringBuilder
List<String>
BigDecimal
Integer
Caleldar
Date/Long
起算日(InitialDate)
期限(DueDate)
有効期間(ValidTerm)
金額(Money)
数量(Quantity)
単位(Unit)
商品名称(ProductName)
備考(Remarks)
摘要(Abstract) +業務ロジック
+業務ロジック
+業務ロジック
ドメイン固有の「型」を準備する
実装の詳細を隠ぺいする
振る舞いを持った区分
Enum MemberType //会員区分
{
normal, silver, gold;
Rate chargeRate()
String description()
Boolean isLimitOver()
}
「区分」や「種別」はビジネスルールの存在を示唆
ビジネスルールを記述する場所を準備
ファーストクラスコレクション
(Customers)
(OrderLines)
(UsageHistory)
(ToDoList)
(UnReads)
(Candidates)
顧客一覧
注文明細
利用履歴
To-do リスト
未読一覧
選択候補
ビューの一覧画面にほぼ対応する
業務の関心事が集中することが多い
・識別情報/区分/状態をすべて一覧したい
・関心事によって、検索条件と並び順を変えたい
コレクションのカプセル化
private なコレクション宣言 + public なメソッド群
3.コード量が急速に増え始める
• 失敗パターン
– 画面単位や機能単位に分担して並行開発
– ビュー、コントローラ、サービスクラスがファットになる
– コードの重複 → 変更コストの増大
• 成功パターン
– ドメインモデルに業務ロジックを集め続ける
– 共有のドメインモデルをみんなでがんがんいじる
– 痛い目に合う
– そこで逃げない
– みんなで会話しながら同じモデルを追いかける
4.開発の終盤
• 時間との闘い
– 仕様の変更・追加・再定義
– バグとの戦い
– 性能問題
• 現実
– モデル一貫性よりも、とにかく修正する
– ただし、リファクタリングしたほうが結局は早くて確実なことが多い
(スキルレベルによるけど)
• Interface と実装の分離 (多態の導入)
• 間接化(第3のクラスを導入して、クラスAとBの依存関係を無くす)
• できれば
– リファクタリングする
– 最低限、マークしておいて、リファクタリング勉強会のネタにする
– それが次のモデル・設計・開発の糧になる
5.リリース後
• いろいろ起きる
– 障害(バグの発覚)
– 積み残し分の開発
– 追加開発
• ドメインモデルの真価がわかる時
– 業務を単純化したモデルが正しいか
– モデルをうまくコードで表現できているか
• 良いドメインモデルに成長していれば
変更は「楽」で「安全」になる
– 修正箇所の特定
– 修正範囲の局所化
– 副作用の局所化
• リリース後のソフトウェアの成長に立ち会い続けること
が、ドメイン駆動設計を会得する王道
現実世界/モデルとコード
現実世界 モデル
(模型) ソースコード
単純化
コードで
表現
動くソフトウェア
一回では
うまくいかない
一回では
うまくいかない
三層+ドメインモデル
プレゼンテーション層
アプリケーション層
データソース層
OrderForm.vm
OrderConfirm.vm
OrderRegistered.vm
@Controller
class OrderEntryController
… // bind & validate
@Service
class OrderRegisterService
…
void register( Order order )
@Repository
class OrderDatasource
…
void register( Order order )
ドメインモデル
class Order
class Items
class ShipTo
class BillingTo
class ContactInfo
…
interface OrderRepository
<<use>>
import model.Order
ロジックの抽出と移動
矢印の意味

Contenu connexe

Tendances

イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する増田 亨
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかKoichiro Matsuoka
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計するドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する増田 亨
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門増田 亨
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方増田 亨
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう増田 亨
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)Yoshitaka Kawashima
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則増田 亨
 
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~A AOKI
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)A AOKI
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方増田 亨
 
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]Koichiro Matsuoka
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる増田 亨
 

Tendances (20)

イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計するドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
Ooc 2020
Ooc 2020Ooc 2020
Ooc 2020
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
 

Similaire à ドメインモデルの育て方

DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発Tomoharu ASAMI
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門増田 亨
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料OCHI Shuji
 
Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料Atsushi Takayasu
 
uniPaaS RIA Pre
uniPaaS RIA PreuniPaaS RIA Pre
uniPaaS RIA Preskudoh
 
Windowsストア[DB]アプリ入門
Windowsストア[DB]アプリ入門Windowsストア[DB]アプリ入門
Windowsストア[DB]アプリ入門Akira Hatsune
 
世界に通用するアプリケーションを開発しよう
世界に通用するアプリケーションを開発しよう世界に通用するアプリケーションを開発しよう
世界に通用するアプリケーションを開発しようdikehara
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望についてKen Azuma
 
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション日本マイクロソフト株式会社
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望についてKen Azuma
 
LightSwitch 結局何ができるの
LightSwitch 結局何ができるのLightSwitch 結局何ができるの
LightSwitch 結局何ができるのYoshitaka Seo
 
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~Takeshi Shinmura
 
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組みTsuyoshi Hirayama
 
スマ研第2回レポート
スマ研第2回レポートスマ研第2回レポート
スマ研第2回レポートShinpei Niiyama
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadShinsuke Miyaki
 
LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2Yoshitaka Seo
 

Similaire à ドメインモデルの育て方 (20)

DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 
Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料
 
uniPaaS RIA Pre
uniPaaS RIA PreuniPaaS RIA Pre
uniPaaS RIA Pre
 
Windowsストア[DB]アプリ入門
Windowsストア[DB]アプリ入門Windowsストア[DB]アプリ入門
Windowsストア[DB]アプリ入門
 
世界に通用するアプリケーションを開発しよう
世界に通用するアプリケーションを開発しよう世界に通用するアプリケーションを開発しよう
世界に通用するアプリケーションを開発しよう
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
 
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
LightSwitch 結局何ができるの
LightSwitch 結局何ができるのLightSwitch 結局何ができるの
LightSwitch 結局何ができるの
 
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
 
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
 
スマ研第2回レポート
スマ研第2回レポートスマ研第2回レポート
スマ研第2回レポート
 
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
 
ソフトウェアとは
ソフトウェアとはソフトウェアとは
ソフトウェアとは
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_upload
 
2013 Ignite UI 最新情報 in 岡山
2013 Ignite UI 最新情報 in 岡山2013 Ignite UI 最新情報 in 岡山
2013 Ignite UI 最新情報 in 岡山
 
LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2
 

Plus de 増田 亨

正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース増田 亨
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善増田 亨
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述増田 亨
 
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドラインドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン増田 亨
 
ドメイン駆動設計に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増田 亨
 

Plus de 増田 亨 (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
 

ドメインモデルの育て方