Voorbereiding
Een veelgebruikte manier om de domein-code af te schermen van de buitenwereld is de Hexagonal Arhitecture. In deze les oefenen we het gebruik van deze acrhitectuur in een Spring Boot Applicatie.
1. Introductie Hexagonal Architecture
📺 Bekijk de onderstaande gedeelten van Spring Office Hours: Episode 53 - Structuring your Spring Boot Applications:
- Bekijk de 2:30 - 5:00 minuten zodat je weet wat het onderwerp is, wie de gastspreker is en wat de belangrijkste overweging is voor het structureren van je Spring Boot applicatie.
- Bekijk vanaf 47:45 tot 1:00:43 voor een uitleg en voorbeeld van de Hexagonal Architecture.

Figuur 1: Visualisatie van de Driving- en Driven-kant in Hexagonal Architecture (Vega & Young, 2023)
NB: In sommige bronnen (zoals Ted Young) heten poorten driving ports (inbound) en driven ports (outbound). In deze course gebruiken we de verzamelterm ports voor beide, en adapters voor de implementaties aan de buitenkant.
Maak de 'Hexagonal Quiz' om te kijken of je het filmpje van Dan Vega en Ted Young goed hebt begrepen.
Op https://github.com/jitterted/ensembler kun je de applicatie vinden die wordt gedemonstreerd in de video.
Voor de oefening in het huiswerk gebruiken we van een vereenvoudigde versie van deze applicatie.
Testability is een belangrijk beslissingscriterium!
2. Beschrijving Hexagonal Architecture
📖 Lees uit de Reader DoEx het stuk over Hexagonal Architecture in het gedeelte "Get Your Hands Dirty on Clean Architecture" van pagina 54 tot en met 58.
3. Oefenen met Hexagonal Architecture
In deze oefening ga je klasses uit een bestaande Spring Boot applicatie verplaatsen naar de juiste laag in de Hexagonal Architecture.
✏️ De oefening is te vinden in <jouw repo van week 4>/oefeningen/les-3/voorbereiding/onderdeel3/README.md.
Bronnen
Vega, D., & Young, T. (2023, september 26). Spring Office Hours: Episode 53 - Structuring your Spring Boot Applications [Video]. SpringDeveloper. https://www.youtube.com/live/aIuZySWPNI4