• Save
Strategic Appplication Development with Domain-Driven Design (DDD)
Upcoming SlideShare
Loading in...5
×
 

Strategic Appplication Development with Domain-Driven Design (DDD)

on

  • 1,270 views

 

Statistics

Views

Total Views
1,270
Slideshare-icon Views on SlideShare
679
Embed Views
591

Actions

Likes
1
Downloads
0
Comments
0

3 Embeds 591

http://www.dennistraub.de 515
http://localhost 56
http://yguan.github.io 20

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Strategic Appplication Development with Domain-Driven Design (DDD) Strategic Appplication Development with Domain-Driven Design (DDD) Presentation Transcript

    • Dennis Traub @dtraubstrategic application development withDomain-Driven Designdotnet Cologne 2013 – 03. Mai 2013 – #dnc13
    • Dennis Traub @dtraubNow, who‘s that guy?Dennis TraubFounder, Owner, CEO, Single Employee ofD. Traub Software Development Consultancy@dtraubConsultant, developer, trainer, speaker39 years oldMarried, father of one
    • Dennis Traub @dtraub51Blue BookActually it shouldbe two books!TerminologyThe Ubiquitous Language2An ExampleBounded Contextsand Subdomains3Lasagna… the new Spaghetti?4EndQuestions & AnswersAGENDA
    • Dennis Traub @dtraubImage PlaceholderThe „Blue Book“ by Eric Evans
    • Dennis Traub @dtraub• Entities• Value Objects• Aggregates• Repositories• Services• Factories• etc.The „Blue Book“ by Eric EvansTacticalClassDesign• Model Integrity• Large-Scale Structure• Bounded Contexts• Core Domain• Context Maps• Ubiquitous Language• etc.StrategicDDDIt should be two books!
    • Dennis Traub @dtraubDomain
    • Dennis Traub @dtrauba sphere ofknowledge, influence, or activity
    • Dennis Traub @dtraubwhat an organization doesand the world it does it in
    • Dennis Traub @dtraubDomain Model
    • Dennis Traub @dtrauba system of abstractions that describesselected aspects of a domain
    • Dennis Traub @dtraubcan be used to solve problemsrelated to that domain
    • Dennis Traub @dtraubdon‘t model reality
    • Dennis Traub @dtraubwe model useful abstractions of reality
    • Dennis Traub @dtraubUbiquitous Language
    • Dennis Traub @dtrauba language structured aroundthe domain model
    • Dennis Traub @dtraubused by all team members
    • Dennis Traub @dtraubBounded Context
    • Dennis Traub @dtrauban explicit boundary within whicha domain model exists
    • Dennis Traub @dtraubinside the boundaryall terms have specific meaning
    • Dennis Traub @dtraubthese terms are part of the context‘subiquitous language
    • Dennis Traub @dtraubSubdomains
    • Dennis Traub @dtraubthe whole domain of the organizationis comprised of subdomains
    • Dennis Traub @dtraubthey focus on only onespecific area of the whole business domain
    • Dennis Traub @dtraubCore Domain
    • Dennis Traub @dtraubthe distinctive part of the model,central to the users‘ goals
    • Dennis Traub @dtraubdifferentiates the application andmakes it valuable
    • Dennis Traub @dtraubthe most important subdomain
    • Dennis Traub @dtraubExample:
    • Dennis Traub @dtraubAmbulance Flight Managementorder flights from an operatordispatch patientsassign medical staff
    • Dennis Traub @dtraubBounded Contexts1 Patiententransport-Disposition2 Flugplanung und -durchführung3 Personaleinsatzplanung (Flugärzte, Rettungsassistenten)4 Stammdaten, Rechnungswesen5 Benutzerrechte, Web-Oberfläche
    • Dennis Traub @dtraubSubdomains6 Bodentransport7 Abrechnung, Buchhaltung8 Anwendungsoberfläche9 REST-Schnittstelle10 Benutzer- und Zugriffsrechte1 Ambulanzflug-Disposition2 Flottenmanagement3 Flugplanung4 Passagier-/Patientendaten5 Medizinisches Personal
    • Dennis Traub @dtraubremember, we don‘t build a model thatworks for everyone
    • Dennis Traub @dtraubto focus our effort and resources we asktwo questions for each subdomain
    • Dennis Traub @dtraubhow complex is it?1
    • Dennis Traub @dtraubwhat‘s the value to our specific problem?(if we model it ourselves)2
    • Dennis Traub @dtraubCore Domain6 Bodentransport7 Abrechnung, Buchhaltung8 Anwendungsoberfläche9 REST-Schnittstelle10 Benutzer- und Zugriffsrechte1 Ambulanzflug-Disposition2 Flottenmanagement3 Flugplanung4 Passagier-/Patientendaten5 Medizinisches PersonalAmbulanzflug-Disposition
    • Dennis Traub @dtraubwe don‘t use DDDwhen there is no value informalizing the problemthe tactical Building Blocks
    • Dennis Traub @dtraubwe only use DDD in partswhere we get a competitiveadvantage
    • Dennis Traub @dtraubBest PracticeArchitecture
    • Dennis Traub @dtraubDAL / O/R-MapperDomain / Business Model / BLLPresentation LayerApplication ServicesInfrastructureCommonServices
    • Dennis Traub @dtraubWCFData AccessUIBusiness LogicI/O
    • Dennis Traub @dtraubLasagna is the new Spaghetti
    • Dennis Traub @dtraubUI Data AccessDomain ModelApplication ServicesI/OWCF Tests
    • Dennis Traub @dtraubthe D in SOLIDDependencyInversion Principle (just in case)
    • Dennis Traub @dtraubUI Data AccessDomain ModelApplication ServicesI/OWCF Tests
    • Dennis Traub @dtraubSource: Growing Object-OrientedSoftware, Guided by Tests -- Freeman & PryceSimpleTestableFlexible
    • Dennis Traub @dtraubOnion ArchitectureHexagonal ArchitecturePorts & AdaptersArchitecture
    • Dennis Traub @dtraubSummary
    • Dennis Traub @dtraubDDD != Silver Bullet
    • Dennis Traub @dtraubDDD != Diagrams
    • Dennis Traub @dtraubDDD != Class Modeling
    • Dennis Traub @dtraubDDD == how the business works
    • Dennis Traub @dtraubDDD == Separation of Concerns
    • Dennis Traub @dtraubDDD is basically the application ofthe SOLID principles of object-orientationon an architectural level
    • Dennis Traub @dtraubImage PlaceholderThe „Blue Book“ by Eric Evans
    • Dennis Traub @dtraubImage PlaceholderAnother essential Book
    • Dennis Traub @dtraubImage PlaceholderAnd another one
    • Dennis Traub @dtraubTHANK YOU!@dtraub – #dnc13