SlideShare a Scribd company logo
1 of 74
領域驅動設計
工作坊
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

From ActiveRecord to EventSourcing
From ActiveRecord to EventSourcingFrom ActiveRecord to EventSourcing
From ActiveRecord to EventSourcingEmanuele DelBono
 
ドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かうドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かう増田 亨
 
團隊協作實戰DDD
團隊協作實戰DDD團隊協作實戰DDD
團隊協作實戰DDDJed Lin
 
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)Sylvia Yang
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント増田 亨
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース増田 亨
 
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步Edward Kuo
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目cct-inc
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)Gelis Wu
 
enterprise agile lean modeling
enterprise agile lean modelingenterprise agile lean modeling
enterprise agile lean modelingKenji Hiranabe
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)A AOKI
 
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計するドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する増田 亨
 
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱TIM WANG
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する増田 亨
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで増田 亨
 
ドメイン駆動設計再入門
ドメイン駆動設計再入門ドメイン駆動設計再入門
ドメイン駆動設計再入門Yukei Wachi
 
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawaクリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawaShohei Okada
 

What's hot (20)

From ActiveRecord to EventSourcing
From ActiveRecord to EventSourcingFrom ActiveRecord to EventSourcing
From ActiveRecord to EventSourcing
 
ドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かうドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かう
 
團隊協作實戰DDD
團隊協作實戰DDD團隊協作實戰DDD
團隊協作實戰DDD
 
50.000 orange stickies later
50.000 orange stickies later50.000 orange stickies later
50.000 orange stickies later
 
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
 
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)
 
enterprise agile lean modeling
enterprise agile lean modelingenterprise agile lean modeling
enterprise agile lean modeling
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
 
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計するドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
 
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
軟體架構模式
軟體架構模式軟體架構模式
軟體架構模式
 
ドメイン駆動設計再入門
ドメイン駆動設計再入門ドメイン駆動設計再入門
ドメイン駆動設計再入門
 
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawaクリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
 

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_lastLi Jiansheng
 
Conference Brochure Scrum Gathering Shanghai 2011
Conference Brochure Scrum Gathering Shanghai 2011Conference Brochure Scrum Gathering Shanghai 2011
Conference Brochure Scrum Gathering Shanghai 2011Shining Hsiong
 
Gettingreal 37signals Com Gr Chn Php
Gettingreal 37signals Com Gr Chn PhpGettingreal 37signals Com Gr Chn Php
Gettingreal 37signals Com Gr Chn Phpyu 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 2Raymond Chang
 
Open source culture_in_china_team
Open source culture_in_china_teamOpen source culture_in_china_team
Open source culture_in_china_teamLi Jiansheng
 
敏捷软件开发——一个实践者的思考V1.2
敏捷软件开发——一个实践者的思考V1.2敏捷软件开发——一个实践者的思考V1.2
敏捷软件开发——一个实践者的思考V1.2Zhang 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 viewpointNTUST
 
商業模式創新起手式
商業模式創新起手式商業模式創新起手式
商業模式創新起手式基欽 劉
 
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_20211217Winny 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國昭 張
 
事件風暴-設計衝刺
事件風暴-設計衝刺事件風暴-設計衝刺
事件風暴-設計衝刺國昭 張
 
Scrum essential
Scrum essentialScrum essential
Scrum essential國昭 張
 
Docker進階探討
Docker進階探討Docker進階探討
Docker進階探討國昭 張
 
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國昭 張
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇國昭 張
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具國昭 張
 
例外處理與單元測試
例外處理與單元測試例外處理與單元測試
例外處理與單元測試國昭 張
 
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國昭 張
 

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
 

事件風暴-領域建模