Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Please check the agenda for further details: https:/ /events.codemotion.com/conferences/online/2020/codemotion-online-tech-conference/agenda

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Implementing Domain-Driven Design bounded context with ports and adapters architecture 5

Slide 6

Slide 6 text

6 Agenda ➔ 10:00 - 10:02 - Introduction + explanation ➔ 10:02 - 10:15 - Explanation of the day ➔ 10:15 - 10:20 - Introduction to Lab 3 ➔ 10:20 - 11:00 - Lab 3 ➔ 11:00 - 11:10 - Discuss Lab 3 results ➔ 11:10 - 11:15 - Introduction to Lab 4 ➔ 11:15 - 11:45 - Lab 4 ➔ 11:45 - 11:55 - Discuss Lab 4 results ➔ 11:55 - 12:00 - Check-out @kenny_baas @joaoasrosa

Slide 7

Slide 7 text

7 Essence of Domain-Driven Design ➔ Using models for creating software ➔ Focus on part of the software handling complex business requirements ➔ Focus on a language where we really crisply concisely describe the situation in the domain ➔ Shared language created through conversations between business people (specialists) and software people which becomes the ubiquitous language ➔ Instead of one canonical language, create multiple bounded languages @kenny_baas @joaoasrosa

Slide 8

Slide 8 text

8 It is not the domain experts knowledge that goes to production, it is the assumption of the developers that goes to production - Alberto Brandolini @kenny_baas @joaoasrosa

Slide 9

Slide 9 text

9 Solution Space Our world as we designed it Bounded Context Software Architecture Linked to the business Problem Space Our world as we perceive it (Sub)Domains Business Architecture Independent of Software @kenny_baas @joaoasrosa

Slide 10

Slide 10 text

10 @kenny_baas @joaoasrosa

Slide 11

Slide 11 text

11 Business @kenny_baas @joaoasrosa

Slide 12

Slide 12 text

12 Business Architects @kenny_baas @joaoasrosa

Slide 13

Slide 13 text

13 Business Architects Developers @kenny_baas @joaoasrosa

Slide 14

Slide 14 text

14 Business Architects Developers @kenny_baas @joaoasrosa

Slide 15

Slide 15 text

15 To communicate effectively, the code must be based on the same language used to write the requirements - the same language that the developers speak with each other and with domain experts - Eric Evans @kenny_baas @joaoasrosa

Slide 16

Slide 16 text

16 @kenny_baas @joaoasrosa

Slide 17

Slide 17 text

17 @kenny_baas @joaoasrosa

Slide 18

Slide 18 text

18 @kenny_baas @joaoasrosa

Slide 19

Slide 19 text

19 @kenny_baas @joaoasrosa

Slide 20

Slide 20 text

20

Slide 21

Slide 21 text

21 @kenny_baas @joaoasrosa

Slide 22

Slide 22 text

22 @kenny_baas @joaoasrosa Responsibility mapping (CRC cards)

Slide 23

Slide 23 text

23 @kenny_baas @joaoasrosa

Slide 24

Slide 24 text

24 @kenny_baas @joaoasrosa

Slide 25

Slide 25 text

25 @kenny_baas @joaoasrosa

Slide 26

Slide 26 text

26 @kenny_baas @joaoasrosa Code (C# and Java) can be found at: https://github.com/xebia/CoDDDing-labs