Successfully reported this slideshow.
Your SlideShare is downloading. ×

Jaap Groeneveld - Software Architecture

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Resume_Appaji
Resume_Appaji
Loading in …3
×

Check these out next

1 of 23 Ad

More Related Content

Similar to Jaap Groeneveld - Software Architecture (20)

Recently uploaded (20)

Advertisement

Jaap Groeneveld - Software Architecture

  1. 1. SoftwareArchitecture JaapGroeneveld-jGroeneveld.de
  2. 2. “Goodarchitecturemakesthesystemeasytounderstand,easytodevelop,easyto maintain,andeasytodeploy.Theultimategoalistominimizethelifetimecostofthe systemandtomaximizeprogrammerproductivity.” ― RobertC.Martin,CleanArchitecture 2
  3. 3. Agenda DescribingSoftwareC4 Layering HexagonalArchitecture ConwaysLaw DDD:DomainDrivenDesign 3
  4. 4. C4 Providesa"standard"todescribesoftwaresystemsfromdifferentlevels c4model.com 4
  5. 5. 5
  6. 6. 6
  7. 7. 7
  8. 8. 8
  9. 9. Layering Commontechniqueinsoftwaredesign(FTP->TCP->IP->Ethernet) Eachlayerrestsonthelowerlayer Eachhigherlayerusesservicesdefinedbylowerlayer Eachlayerusuallyhidesitslowerlayerfromtheonesabove 9
  10. 10. Layeringbenefits Understandingasinglelayerwithoutknowingmuchaboutothers YoucanbuildanFTPserviceswithoutunderstandingethernet Youcansubstitutelayerswithalternativeimplementations Youminimizedependenciesbetweenlayers. Layersareagoodplaceforstandardization Oncealayerisbuilt,youcanuseitformanyhigherlevelservices TCPisusedbyFTP,telnet,SSH,HTTP 10
  11. 11. Thethreeprincipallayers Presentation-Howtohandleinteractionbetweenuserandsoftware Domain-(Businesslogic)Logic Data-Communicatewithothersystems 11
  12. 12. HexagonalArchitecture(PortsandAdapters) https://www.maibornwolff.de/blog/ddd-architekturen-im-vergleich 12
  13. 13. ConwaysLaw Organizationswhichdesignsystemsareconstrainedtoproducedesignswhichare copiesofthecommunicationstructuresoftheseorganizations-Conway,1967. thoughtworks.com/insights/blog/applying-conways-law-improve-your-software-development 13
  14. 14. Technicalorganizationofteams 14
  15. 15. Technicalorganizationofteams 15
  16. 16. Architecturedrivenbytechnicalcapabilities 16
  17. 17. Organizationofteamsdrivenbybusinesscapabilities 17
  18. 18. Organizationofteamsdrivenbybusinesscapabilities 18
  19. 19. Business-drivenarchitecture 19
  20. 20. DomaindrivenDesign VorgehensweisezurSoftwareentwicklung,diedasModellierenderfachlichen ProzesseindenVordergrundrückt RücktdaserarbeiteneinergemeinsamenSprache"UbiquitousLanguage"inden Vordergrund 20
  21. 21. DDD:Bestandteile: EntitiesidentifybyID ValueObjectsidentifybyvalue Aggregates Services DomainEvents Modules Factories Repositories ... 21
  22. 22. DDD:Vorgehensweisen: VisionderFachlichkeit(domainvisionstatement) Kontextübersicht(contextmap) Kontextgrenzen(boundedcontext) Kernfachlichkeit(coredomain) ... 22
  23. 23. 23

×