Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Domain Driven Design 
Through Onion Architecture
Bowling Score Sheet
What is Domain Driven Design 
• A technique for developing software that 
focuses on collaboration between technical 
expe...
Bowling Domain 
• Who are the Domain Experts? 
• What is the Ubiquitous Language?
Bounded Contexts 
• Subdivide large domains into smaller contexts. 
• Each context can have it’s own ubiquitous 
language ...
Bowling Bounded Contexts 
• Scoring 
• Statistics 
• Lane Reservation 
• Sales 
• Maintenance
Traditional Layered Architecture 
Presentation 
Business/Domain 
Data Access
Onion Architecture 
Infrastructure 
API 
Domain 
Core
The Core 
• Building blocks used to create the 
application. 
• Not specific to any domain or technology. 
• Eg. Lists, Ma...
The API 
• Acts as an entry point to the Domain 
• Communicates using Domain terms and 
Domain objects 
• Should be restri...
Bowling API 
• Could include methods like: 
• Create Game 
• Add/Remove Player 
• Get Players 
• Set Pin State 
• Skip Pla...
The Domain 
• Built out of the building blocks defined in the 
Core 
• Uses Ubiquitous Language 
• BUSINESS LOGIC GOES HER...
Bowling Domain 
• Domain Terms: Game, Player, Pin, Frame, 
Strike, Spare 
• Out of Context: Pinsetter, Customer, Lane 
Res...
Domain Building Blocks 
• Value Objects 
• Entities 
• Aggregate Roots 
• Repositories 
• Factories 
• Services
Bowling Aggregate Root 
• Candidates: Player, Game 
• Which Entities are present in most or all API 
operations? 
• Which ...
The Infrastructure 
• Contains adapters for various technology 
concerns including Databases, User 
Interfaces, External S...
Bowling Infrastructure 
• Pinsetter 
• UI for lane screens 
• UI for alley staff 
• Database
Wrap Up 
• How portable is the Bowling Score Keeper? 
• Can it be adapted to other uses with minimal 
effort? 
• Is it tie...
Domain Driven Design Through Onion Architecture
Upcoming SlideShare
Loading in …5
×

of

Domain Driven Design Through Onion Architecture Slide 1 Domain Driven Design Through Onion Architecture Slide 2 Domain Driven Design Through Onion Architecture Slide 3 Domain Driven Design Through Onion Architecture Slide 4 Domain Driven Design Through Onion Architecture Slide 5 Domain Driven Design Through Onion Architecture Slide 6 Domain Driven Design Through Onion Architecture Slide 7 Domain Driven Design Through Onion Architecture Slide 8 Domain Driven Design Through Onion Architecture Slide 9 Domain Driven Design Through Onion Architecture Slide 10 Domain Driven Design Through Onion Architecture Slide 11 Domain Driven Design Through Onion Architecture Slide 12 Domain Driven Design Through Onion Architecture Slide 13 Domain Driven Design Through Onion Architecture Slide 14 Domain Driven Design Through Onion Architecture Slide 15 Domain Driven Design Through Onion Architecture Slide 16 Domain Driven Design Through Onion Architecture Slide 17 Domain Driven Design Through Onion Architecture Slide 18 Domain Driven Design Through Onion Architecture Slide 19

YouTube videos are no longer supported on SlideShare

View original on YouTube

Upcoming SlideShare
The Architecture of an API Platform
Next
Download to read offline and view in fullscreen.

9

Share

Download to read offline

Domain Driven Design Through Onion Architecture

Download to read offline

Domain Driven Design with Onion Architecture is a powerful combination of Architecture Patterns that can dramatically improve code quality and can help you learn a great deal about writing "clean" code.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Domain Driven Design Through Onion Architecture

  1. 1. Domain Driven Design Through Onion Architecture
  2. 2. Bowling Score Sheet
  3. 3. What is Domain Driven Design • A technique for developing software that focuses on collaboration between technical experts and domain experts. • The ideas and terms of the domain should be directly reflected by the code through the Ubiquitous Language.
  4. 4. Bowling Domain • Who are the Domain Experts? • What is the Ubiquitous Language?
  5. 5. Bounded Contexts • Subdivide large domains into smaller contexts. • Each context can have it’s own ubiquitous language and it’s own model. • Bounded Contexts may share some domain aspects.
  6. 6. Bowling Bounded Contexts • Scoring • Statistics • Lane Reservation • Sales • Maintenance
  7. 7. Traditional Layered Architecture Presentation Business/Domain Data Access
  8. 8. Onion Architecture Infrastructure API Domain Core
  9. 9. The Core • Building blocks used to create the application. • Not specific to any domain or technology. • Eg. Lists, Maps, Case Classes, Actors, Lenses
  10. 10. The API • Acts as an entry point to the Domain • Communicates using Domain terms and Domain objects • Should be restricted to exposing only immutable objects • Can access the Core and the Domain but not the Infrastructure
  11. 11. Bowling API • Could include methods like: • Create Game • Add/Remove Player • Get Players • Set Pin State • Skip Player • Set Lane
  12. 12. The Domain • Built out of the building blocks defined in the Core • Uses Ubiquitous Language • BUSINESS LOGIC GOES HERE!
  13. 13. Bowling Domain • Domain Terms: Game, Player, Pin, Frame, Strike, Spare • Out of Context: Pinsetter, Customer, Lane Reservation • Non Domain Terms: User Interface, Database
  14. 14. Domain Building Blocks • Value Objects • Entities • Aggregate Roots • Repositories • Factories • Services
  15. 15. Bowling Aggregate Root • Candidates: Player, Game • Which Entities are present in most or all API operations? • Which Entity if deleted would result in the deletion of some or all other Entities?
  16. 16. The Infrastructure • Contains adapters for various technology concerns including Databases, User Interfaces, External Services etc. • Has access to all areas of the system (API, Domain, Core)
  17. 17. Bowling Infrastructure • Pinsetter • UI for lane screens • UI for alley staff • Database
  18. 18. Wrap Up • How portable is the Bowling Score Keeper? • Can it be adapted to other uses with minimal effort? • Is it tied to the underlying technology?
  • rualatngua

    Apr. 28, 2019
  • SergeyAstapenko

    Feb. 19, 2019
  • AtreyeeSarkar1

    Mar. 31, 2018
  • wieliong

    Oct. 3, 2017
  • WangTianqing

    Jun. 25, 2017
  • haowei

    Nov. 7, 2016
  • hzahed

    Aug. 23, 2016
  • powerirs

    Apr. 25, 2016
  • GustavoTovar3

    Mar. 25, 2015

Domain Driven Design with Onion Architecture is a powerful combination of Architecture Patterns that can dramatically improve code quality and can help you learn a great deal about writing "clean" code.

Views

Total views

8,755

On Slideshare

0

From embeds

0

Number of embeds

2,342

Actions

Downloads

149

Shares

0

Comments

0

Likes

9

×