SlideShare a Scribd company logo
領域驅動設計
工作坊
1
一個開發該有的姿勢
真實世界總是…
參考鏈結
參考鏈結
專案成功率
為什麼我們執行一個專案/產品這麼困難?
6
聽過這座塔的故事嗎?
7
溝通的失敗,讓偉大的工程無以為繼
溝通力 = 執行力
領域驅動是什麼?
10
戰略
戰術
戰技
促進溝通並探索問題領域
設計解決方案
基本能力
需求分析
參考鏈結
辛苦的成果,有時候連自己也看不懂
參考資料
利用其它UML圖協助
最後…團隊多了好幾本文件要讀
準備超長的壁報紙 事件探索 聚合 + Context Map Modeling
Design
16
1 2 3
事件和動作有什麼不同呢?
行為 事件
17
買早餐
已經買早餐
有什麼區別?
18
Past
• 採用過去式描述
• 事件彼此之間不相依
• 範例:
已購票(Ticket Bought)
19
事件
事件的發生是有強列的順序性
事件
20
事件意味著證據
21
事件1 事件2 事件3
由左至右
呈現事件發生順序
22
* 事件探索的建議:
1. 盡可能細化,找出更多事件
2. 不要過早抽象化
3. 不要過早考慮例外處理,先以快樂路徑(Happy path)為主
事件1 事件2 事件3
事件2’
平行事件的處理方式
23
事件1 事件2 事件3
事件2’
添加命令
命令
24
事件1 事件2 事件3
事件2’
命令的發起者是誰?
命令
角色
25
事件 事件
事件事件
事件 事件 事件
事件
豐富你的事件
命令
角色
26
事件
或許是由User所執行的
命令而來
或許是由外部系統
所觸發
或許只是表達某個特定
間需要做的事
或許它是銜接另一個事件
事件從何而來?
Refund
Request
Received
Refund
Policy
Issue
Refund
Refund
Issued
Notificaton
Sent to
Payee
外部系統所引發的事件
商務流程中,極
有可能會使用
到外部系統
決策流程
人為
促進人為決策
的輸入(Input)
Refund
Request
Received
Refund
Policy
Issue
Refund
Refund
Issued
Notificaton
Sent to
Payee
Organizer
流程有可能是需要人為介入
事件4事件1 事件2 事件3
事件2’
找出機會/風險
命令
角色
30
排序你的機會/風險
This is
where
everything
is stock!
This is
where
everything
is stock!
This is
where
everything
is stock!
This is
where
everything
is stock!
This is
where
everything
is stock!
31
淘汰
要先找出問題,才能設計
解決方案,如果顛倒了順
序,就會事倍功半。
32
問題領域 和 解決方案領域
先瞄準再射擊
33
切割成多個問題子領域
核心子領域
(Core Subdomain)
支持子領域
(Supporting Subdomain)
支持子領域
(Supporting Subdomain)
通用子領域
(General Subdomain)
問題域(Problem Domain)
依照價值(Value)將一個
問題領域切割成為多個
子問題領域。
核心子領域是最有價值的。
34
通用子領域
: 採用現成服務
支持子領域
: 採用外包
核心子領域
: 傾團隊之力
35
This is
where
everything
is stock!
This is
where
everything
is stock!
This is
where
everything
is stock!
This is
where
everything
is stock!
This is
where
everything
is stock!
將排序最高的風險/機會
列為核心子領域。
團隊最好能夠得到管理者
的承諾與支持。
挑選核心子領域
怎麼確定那個風險/機會是最重要的?
價值是從最重要的利害關係人角度出發
除了風險/機會之外,
還有什麼角度?
財務貢獻
戰略效應
(Financial Impact)
(Strategic Impact)
戰略支持
能力
核心
競爭力
商務
基底
商務
支撐力
高
高低
低
依照商業能力進行分析
參考資料
由不同觀點看待
機會/痛點
(Rick / Pain Point) 商務能力
(Business Capability)
設計解決方案
每個問題子領域,都應該會
有解決方案,而這些解決
方案,在DDD中,稱其為:
限界上下文。
限界上下文
限界上下文
限界上下文
限界上下文
限界上下文
在事件風暴中,先找出
聚合,再找出限界上下文。
這就是先求內聚,再看耦合
探索聚合(Aggregate)
把相同功能目標的事件收攏在一起
聚合
事件
事件
事件
事件
命令
角色
事件
事件
事件
事件
命令
角色
43
命令
命令
命令
命令
每一個聚合都是為了相同
的功能目的。
命令與事件都是參考元素。
在事件風暴中,先找出
聚合,再找出限界上下文。
這就是先求內聚,再看耦合
探索限界上下文
把相同功能目標的聚合收攏在一起
限界上下文
(Bounded Context)
事件
事件
事件
事件
命令
事件
事件
事件
事件
命令
產品
事件
事件
事件
事件
命令
事件
事件
事件
事件
命令
將相同功能目的的
聚合放在一起,進而
形成一個限界上下文。
45
限界上下文之間其實並非
完全獨立,它們還是會存在
關聯性(Association)。
探索限界上下文圖
限界上下文圖
(Context Map)
47
U
U
U
D
D
D
上游的改變會嚴重影響
到下游,藉這張圖瞭解
系統變更所可能引發的
風險。
限界上下文圖模式
(Context Map Pattern)
模式大概有9種,但是可以
粗略地分成兩種:
• 協作
• 整合
參考資料
參考資料
一個完整的範例
團隊溝通
重工
系統整合
團隊協作
資源分配
沒有上下文圖之前的窘境…
上下文圖提供更高的商務
視野,讓高階管理人員能夠
更快的理解資源分配和
組織概況。
上下文圖與團隊組織
上下文圖也暗示了許多
與團隊組織相關的訊息。
52
重新看待聚合
業務上的聚合,需要進一步設計
聚合畫布
(Aggregate Canvas)
名稱
輸入 模型 輸出
• 命令(Command)
• 驅動模型運作
• 以統一語言進行建模
• 可以使用Stereoype去標示:
• Entity
• Value Object
• Domain Service
• 領域事件(Event)
• 先不著急命名
Order
Create
Order
Update
Order
Cancel
Order
Order
Created
Order
Updated
Order
Canceled
<<Entity>>
<<VO>>
<<Entity>>
<<Entity>>
<<VO>>
<<Entity>>
範例-聚合畫布
(Aggregate Canvas)
交易樣式
(Transaction Pattern)
參考鏈結
四色建模
(Four Color Modeling)
參考鏈結
建模到底在做什麼?
對統一語言進行圖型化描述
DDD戰技概觀
• 一個聚合是一個完整的交易(Transaction)概念
• 當交易所異動到的資料表過於龐大,會造成效能議題(Issue)
• 適當拆解聚合(i.e. 不違反BASE理論為前題)
• 考慮採用文件型資料庫(NoSQL)
聚合設計原則
CAP理論
參考鏈結
參考鏈結
三者之間的關係
DDD從BDD和TDD上借力,
讓設計更加地完整。
BDD/TDD測試案例的切入點
BDD
TDD
從命令著手,進行
系統行為分析
將模型以TDD
進一步驗證
CAE三者的互動模式
(Command, Aggregate, Event)
參考鏈結
Aggregate接收Command,
並在處理完畢後拋出Event
若有需要流程控制,會再加
上Process Manager這個
Domain Service。
參考鏈結
參考鏈結
六角架構
DDD的模型在最內部的
核心,而越是往外,則代表的
易變性與脆弱。
六角的外部是Port/Adapter,
它們是模型與外部溝通
的工具
參考鏈結
組成微服務架構
以六角堆疊出宛若蜂巢的微服務
服務在微服務中的真面目
參考鏈結
微服務不在於服務的代碼
有多小,而在於其本身的
商務能力有多麼 -
明確與凝煉。
響應式系統設計
參考鏈結
事件驅動的架構模式讓
系統變得更有彈性和
擴充性,是個可以考慮的
架構模式。
Aggregate A
Aggregate B
Aggregate C
Bounded Context A
Bounded Context B
• 領域事件是用於同一個限界上下文
中Aggregate之間相互溝通
• 整合事件(Integration Event)是為了”交易(Transaction)”;
目標在於達成最終一致性(Eventually Consistency)
整合事件 領域事件
領域事件
領域事件
整合事件
命令
事件
聚合
事件
策略
Given
When Then
外部系統
UI/UX
Alternatives啟動BDD
Personas
以User為中心
的系統
警報
基於系統真實
事件的BI
打造自動化的
系統
Matrix
參考資料
PO
我從限界上下文
地圖了解系統概
觀,並且讓我可以
依市場快速調整
資源!
Contributors
Designer:
我了解資料流
的來龍去脈
Developer:
模型都有了,我
只要按圖施工
QA:
驗收條件的分
析,清晰明朗!
Scrum Master
團隊成員能夠快速
吸收領域知識,真的
是節省了我好多
時間和心思!
Gain
Recap
DDD具有兩個環節
戰略, 戰術
利用事件風暴完成
知識獲得, 上下文圖
聚合設計原則
輕巧, 符合BASE理論
事件
整合事件, 領域事件

More Related Content

What's hot

單元測試
單元測試單元測試
單元測試
國昭 張
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
 
勝てる「開発プロセス」のつくり方
勝てる「開発プロセス」のつくり方勝てる「開発プロセス」のつくり方
勝てる「開発プロセス」のつくり方
Hiromasa Oka
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
 
淺談金字塔原理_ver2
淺談金字塔原理_ver2淺談金字塔原理_ver2
淺談金字塔原理_ver2
基欽 劉
 
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版
Fumihiko Kinoshita
 
團隊協作實戰DDD
團隊協作實戰DDD團隊協作實戰DDD
團隊協作實戰DDD
Jed Lin
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點
William Yeh
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキTakao Oyobe
 
ドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かうドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かう
増田 亨
 
SQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリSQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリ
Itabashi Masayuki
 
Si 프로젝트에서 바라보는...traditional vs agile
Si 프로젝트에서 바라보는...traditional vs agileSi 프로젝트에서 바라보는...traditional vs agile
Si 프로젝트에서 바라보는...traditional vs agileKiwon Kyung
 
gRPC入門
gRPC入門gRPC入門
gRPC入門
Kenjiro Kubota
 
20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamurai20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamurai
Takao Oyobe
 
ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①
Kakeru Kikuchi
 
enterprise agile lean modeling
enterprise agile lean modelingenterprise agile lean modeling
enterprise agile lean modeling
Kenji Hiranabe
 

What's hot (20)

軟體架構模式
軟體架構模式軟體架構模式
軟體架構模式
 
單元測試
單元測試單元測試
單元測試
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
勝てる「開発プロセス」のつくり方
勝てる「開発プロセス」のつくり方勝てる「開発プロセス」のつくり方
勝てる「開発プロセス」のつくり方
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
淺談金字塔原理_ver2
淺談金字塔原理_ver2淺談金字塔原理_ver2
淺談金字塔原理_ver2
 
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版
 
團隊協作實戰DDD
團隊協作實戰DDD團隊協作實戰DDD
團隊協作實戰DDD
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ
 
ドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かうドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かう
 
SQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリSQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリ
 
Si 프로젝트에서 바라보는...traditional vs agile
Si 프로젝트에서 바라보는...traditional vs agileSi 프로젝트에서 바라보는...traditional vs agile
Si 프로젝트에서 바라보는...traditional vs agile
 
gRPC入門
gRPC入門gRPC入門
gRPC入門
 
20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamurai20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamurai
 
ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①
 
enterprise agile lean modeling
enterprise agile lean modelingenterprise agile lean modeling
enterprise agile lean modeling
 

Similar to 事件風暴-領域建模

「所知有雲」:維基百科雲端運算中文條目編輯行動發起說明
「所知有雲」:維基百科雲端運算中文條目編輯行動發起說明「所知有雲」:維基百科雲端運算中文條目編輯行動發起說明
「所知有雲」:維基百科雲端運算中文條目編輯行動發起說明
Fred Chiang
 
Why based success_opensource_project_will_fail_its_product_last
Why based success_opensource_project_will_fail_its_product_lastWhy based success_opensource_project_will_fail_its_product_last
Why based success_opensource_project_will_fail_its_product_last
Li Jiansheng
 
Conference Brochure Scrum Gathering Shanghai 2011
Conference Brochure Scrum Gathering Shanghai 2011Conference Brochure Scrum Gathering Shanghai 2011
Conference Brochure Scrum Gathering Shanghai 2011
Shining Hsiong
 
Gettingreal 37signals Com Gr Chn Php
Gettingreal 37signals Com Gr Chn PhpGettingreal 37signals Com Gr Chn Php
Gettingreal 37signals Com Gr Chn Php
yu bo
 
NCKU_visual thinking & information visualization design
NCKU_visual thinking & information visualization designNCKU_visual thinking & information visualization design
NCKU_visual thinking & information visualization designvisualization, ID, NCKU
 
金字塔原理(清晰版)
金字塔原理(清晰版)金字塔原理(清晰版)
金字塔原理(清晰版)mumu337
 
微观重构 黄婉芳
微观重构 黄婉芳微观重构 黄婉芳
微观重构 黄婉芳
Webrebuild
 
簡報規劃與技巧
簡報規劃與技巧簡報規劃與技巧
簡報規劃與技巧
基欽 劉
 
20190126 ddd-meetup1
20190126 ddd-meetup120190126 ddd-meetup1
20190126 ddd-meetup1
國昭 張
 
應用設計思考1210 2
應用設計思考1210 2應用設計思考1210 2
應用設計思考1210 2
Raymond Chang
 
Open source culture_in_china_team
Open source culture_in_china_teamOpen source culture_in_china_team
Open source culture_in_china_team
Li Jiansheng
 
敏捷软件开发——一个实践者的思考V1.2
敏捷软件开发——一个实践者的思考V1.2敏捷软件开发——一个实践者的思考V1.2
敏捷软件开发——一个实践者的思考V1.2
Zhang Yongji
 
How to cooporeate with IT partners from a designer's viewpoint
How to cooporeate with IT partners from a designer's viewpointHow to cooporeate with IT partners from a designer's viewpoint
How to cooporeate with IT partners from a designer's viewpoint
NTUST
 
商業模式創新起手式
商業模式創新起手式商業模式創新起手式
商業模式創新起手式
基欽 劉
 
2011 0729-推动知识管理之成功关键因素(拓尔思)
2011 0729-推动知识管理之成功关键因素(拓尔思)2011 0729-推动知识管理之成功关键因素(拓尔思)
2011 0729-推动知识管理之成功关键因素(拓尔思)
Yeong-Long Chen
 
Design Method & Skill_20211217
Design Method & Skill_20211217Design Method & Skill_20211217
Design Method & Skill_20211217
Winny Wang
 
2020/12 交通大學_資料視覺化與我們的生活|彭其捷
2020/12 交通大學_資料視覺化與我們的生活|彭其捷2020/12 交通大學_資料視覺化與我們的生活|彭其捷
2020/12 交通大學_資料視覺化與我們的生活|彭其捷
彭其捷 Jack
 
程序员与技术
程序员与技术程序员与技术
程序员与技术
ligaoren
 
如何利用Jira + structure 做需求管理
如何利用Jira + structure 做需求管理如何利用Jira + structure 做需求管理
如何利用Jira + structure 做需求管理howie YU
 
一个互联网产品的成长史
一个互联网产品的成长史一个互联网产品的成长史
一个互联网产品的成长史
AHAConference
 

Similar to 事件風暴-領域建模 (20)

「所知有雲」:維基百科雲端運算中文條目編輯行動發起說明
「所知有雲」:維基百科雲端運算中文條目編輯行動發起說明「所知有雲」:維基百科雲端運算中文條目編輯行動發起說明
「所知有雲」:維基百科雲端運算中文條目編輯行動發起說明
 
Why based success_opensource_project_will_fail_its_product_last
Why based success_opensource_project_will_fail_its_product_lastWhy based success_opensource_project_will_fail_its_product_last
Why based success_opensource_project_will_fail_its_product_last
 
Conference Brochure Scrum Gathering Shanghai 2011
Conference Brochure Scrum Gathering Shanghai 2011Conference Brochure Scrum Gathering Shanghai 2011
Conference Brochure Scrum Gathering Shanghai 2011
 
Gettingreal 37signals Com Gr Chn Php
Gettingreal 37signals Com Gr Chn PhpGettingreal 37signals Com Gr Chn Php
Gettingreal 37signals Com Gr Chn Php
 
NCKU_visual thinking & information visualization design
NCKU_visual thinking & information visualization designNCKU_visual thinking & information visualization design
NCKU_visual thinking & information visualization design
 
金字塔原理(清晰版)
金字塔原理(清晰版)金字塔原理(清晰版)
金字塔原理(清晰版)
 
微观重构 黄婉芳
微观重构 黄婉芳微观重构 黄婉芳
微观重构 黄婉芳
 
簡報規劃與技巧
簡報規劃與技巧簡報規劃與技巧
簡報規劃與技巧
 
20190126 ddd-meetup1
20190126 ddd-meetup120190126 ddd-meetup1
20190126 ddd-meetup1
 
應用設計思考1210 2
應用設計思考1210 2應用設計思考1210 2
應用設計思考1210 2
 
Open source culture_in_china_team
Open source culture_in_china_teamOpen source culture_in_china_team
Open source culture_in_china_team
 
敏捷软件开发——一个实践者的思考V1.2
敏捷软件开发——一个实践者的思考V1.2敏捷软件开发——一个实践者的思考V1.2
敏捷软件开发——一个实践者的思考V1.2
 
How to cooporeate with IT partners from a designer's viewpoint
How to cooporeate with IT partners from a designer's viewpointHow to cooporeate with IT partners from a designer's viewpoint
How to cooporeate with IT partners from a designer's viewpoint
 
商業模式創新起手式
商業模式創新起手式商業模式創新起手式
商業模式創新起手式
 
2011 0729-推动知识管理之成功关键因素(拓尔思)
2011 0729-推动知识管理之成功关键因素(拓尔思)2011 0729-推动知识管理之成功关键因素(拓尔思)
2011 0729-推动知识管理之成功关键因素(拓尔思)
 
Design Method & Skill_20211217
Design Method & Skill_20211217Design Method & Skill_20211217
Design Method & Skill_20211217
 
2020/12 交通大學_資料視覺化與我們的生活|彭其捷
2020/12 交通大學_資料視覺化與我們的生活|彭其捷2020/12 交通大學_資料視覺化與我們的生活|彭其捷
2020/12 交通大學_資料視覺化與我們的生活|彭其捷
 
程序员与技术
程序员与技术程序员与技术
程序员与技术
 
如何利用Jira + structure 做需求管理
如何利用Jira + structure 做需求管理如何利用Jira + structure 做需求管理
如何利用Jira + structure 做需求管理
 
一个互联网产品的成长史
一个互联网产品的成长史一个互联网产品的成长史
一个互联网产品的成长史
 

More from 國昭 張

8th ddd taiwan study group bounded context integration
8th ddd taiwan study group  bounded context integration8th ddd taiwan study group  bounded context integration
8th ddd taiwan study group bounded context integration
國昭 張
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architecture
國昭 張
 
事件風暴-設計衝刺
事件風暴-設計衝刺事件風暴-設計衝刺
事件風暴-設計衝刺
國昭 張
 
Docker實務
Docker實務Docker實務
Docker實務
國昭 張
 
Scrum essential
Scrum essentialScrum essential
Scrum essential
國昭 張
 
Docker進階探討
Docker進階探討Docker進階探討
Docker進階探討
國昭 張
 
Vue
VueVue
Docker基礎
Docker基礎Docker基礎
Docker基礎
國昭 張
 
DDD系統分析
DDD系統分析DDD系統分析
DDD系統分析
國昭 張
 
DDD引導
DDD引導DDD引導
DDD引導
國昭 張
 
前端測試
前端測試前端測試
前端測試
國昭 張
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
國昭 張
 
Redux+react js
Redux+react jsRedux+react js
Redux+react js
國昭 張
 
React js
React jsReact js
React js
國昭 張
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇
國昭 張
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具
國昭 張
 
例外處理與單元測試
例外處理與單元測試例外處理與單元測試
例外處理與單元測試
國昭 張
 
ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享
國昭 張
 
ASP.Net MVC Framework
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework
國昭 張
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
國昭 張
 

More from 國昭 張 (20)

8th ddd taiwan study group bounded context integration
8th ddd taiwan study group  bounded context integration8th ddd taiwan study group  bounded context integration
8th ddd taiwan study group bounded context integration
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architecture
 
事件風暴-設計衝刺
事件風暴-設計衝刺事件風暴-設計衝刺
事件風暴-設計衝刺
 
Docker實務
Docker實務Docker實務
Docker實務
 
Scrum essential
Scrum essentialScrum essential
Scrum essential
 
Docker進階探討
Docker進階探討Docker進階探討
Docker進階探討
 
Vue
VueVue
Vue
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 
DDD系統分析
DDD系統分析DDD系統分析
DDD系統分析
 
DDD引導
DDD引導DDD引導
DDD引導
 
前端測試
前端測試前端測試
前端測試
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
 
Redux+react js
Redux+react jsRedux+react js
Redux+react js
 
React js
React jsReact js
React js
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具
 
例外處理與單元測試
例外處理與單元測試例外處理與單元測試
例外處理與單元測試
 
ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享
 
ASP.Net MVC Framework
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 

事件風暴-領域建模