Skip to content

Baasie/CoDDDing-labs-circle

Repository files navigation

Tactical DDD Training Visma Circle

Deze training is een een vervolg aan hoe DDD nu daadwerkelijk geprogrammeerd moet worden in de software. Toen de ontwikkeling van Djuma is begonnen is er van de N-tier-architectuur uitgegaan, waarin model en database centraal stonden in de afhankelijkheden in de software. In 2019 is al een begin gemaakt met het gebruik van de Clean Architecture voor nieuwe onderdelen en de centraal hierin de Domain-laag. Deze nieuwe manier van code-opzet en het gebruik van DDD-patronen in de domein laag waar alle domeinlogica moet zitten, is nog niet geheel ingebakken in de kennis van de Backend-Developers en vereist training voor personen met deze rol.

Korte termijndoelen

  • Introductie in het onderwerp, gemeenschappelijke basiskennis over DDD en uitleg over de voordelen van deze aanpak van software ontwikkeling binnen Circle.
  • Het vertalen van de een gemeenschappelijke taal (“Ubiquitous language“) in code.
  • Kennis omtrent hoe DDD binnen de Clean Architecture past die we binnen Djuma R&D gebruiken.
  • DDD-patronen opdoen die nuttig zijn voor de programmeer uitdagingen binnen Djuma R&D.
  • Kennis over hoe deze Domain-laag eenvoudig getest kan worden in de huidige opzet.
  • Inventarisatie van knelpunten in onze huidige manier van software ontwikkeling.

Lange termijndoelen

  • Binnen het Backend-Chapter duidelijkheid over hoe DDD ingezet moet worden.
  • Makkelijker uitvoeren van Code Reviews door duidelijk naar welke zaken gekeken moet worden.
  • Duidelijke scheiding tussen Domein- en Applicatielogica.
  • Vanuit Development meer kennis krijgen een Bounded-Context gedefinieerd kan worden in code om onze Big-Ball-Of-Mud op te splitsen.
  • Meer handvaten om een plan te maken om de Zaaksysteem-solution op te splitsen in Domein-solution en hoe dit te bewerkstelligen.

Agenda (maar deze kan natuurlijk iets veranderen terwijl wij bezig zijn) zal het volgende zijn:

Dag 1:

  • Recap DDD, Eventstorming, example mapping en bounded context canvas
  • object design met responsibility mapping

Dag 2:

  • Coding lab 1 outside-in TDD en
  • lab 2 essential tactical DDD patterns

Dag 3:

  • Lab 3 - Refactoring to a deeper model
  • lab 4 ports and adapters/clean architecture

Dag 4:

  • Eigen coding voorbeeld modellen (Ga na of je zelf al bepaalde stukjes models/code in wilt brengen)

Prerequisites

  • .net 6.0, git en je favourite IDE

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages