![Page 1: 208-04-19 - Architecture hexagonale pour les nulsjavaetmoi.com/.../208-04-19-Architecture-hexagonale-pour-les-nuls.pdf · Architecture hexagonale pour les nuls (et les développeurs](https://reader031.vdocuments.pub/reader031/viewer/2022022020/5b9d9cb409d3f2a4348c366e/html5/thumbnails/1.jpg)
Architecturehexagonalepourlesnuls(etlesdéveloppeursSpring)Speakers:YouenChéné(CTOSaagie)Format:ConférenceDate:19avril2018YouenestunanciendéveloppeurSpring,désormaisProductManagerchezSaagie.Rencontrantdesdifficultéàfaireévolueruneapplication,YouensedemandesileDomainDrivenDevelopment(DDD)nepourraitpasl’aider.IlaassistéàbeaucoupdeconférencessurlesDDD.Maislessnippetsdecodeétaienttoujourssansframework.Bref,descasd’écoleàmillelieuxdesapplicationsJavabourréesdeframework.CetalkapourobjectifdecréerunpontentrelemondeDDDetlesapplisencouchebaséessurSpring.Youenprésenteuneapplicationdanslaquelleunerèglemétierestrépartiedans3serviceset2DAO.Cetéparpillementestàl’architectureencouche.Nécessiteunrefactoringpourlacentraliserdansuneseuleméthode.Dupointdevued’unCTO,touscesmouvementsseressemblentCleanArchitectureóOnionArchitectureóHexagonalArchitectureModélisationduDomaineLes3gèlesàrespecterlorsqu’onmodéliseleDomaine:
1. Règle1:dansunframework,pasdedépendanceversunframeworkouunlibrairie(àl’exceptiondeGuava)
2. Règle2:ledomainen’appellejamaisdirectementl’extérieur3. Règle3:pasdecoded’infrastructuredansledomaine
Pouraccéderauxrèglesmétiersdudomaine,ilfautcréerdesflux.Pourcela,onvacréerdesportsprimairesetsecondaires:
• Portprimaire:portsd’entréedudomaineutilisésparlacoucheapplicative• Portsecondaire:interfacepermettantaudomained’appelerl’extérieur(reposesur
del’injectiondedépendance)Danslalittérature,ontrouveégalementdesDrivingPort,InputPortetOutputPort.LesAdaptersvontsebranchersurlesports.ToutelagluetechniqueestplacéedanslesAdapters.Exemple:lagestiondesexceptionstechniques.LeDDDnécessitedesmappersentrelesobjetsdudomaineetlesDTO.
![Page 2: 208-04-19 - Architecture hexagonale pour les nulsjavaetmoi.com/.../208-04-19-Architecture-hexagonale-pour-les-nuls.pdf · Architecture hexagonale pour les nuls (et les développeurs](https://reader031.vdocuments.pub/reader031/viewer/2022022020/5b9d9cb409d3f2a4348c366e/html5/thumbnails/2.jpg)
ImplémentationMiseenœuvredansuneapplicationSpringBoot:
HackpourencapsulerleDomainedansle@ServicedeSpringBoot:injecterleportsecondairedansleDomaine.MettreenplaceleDDDnécessitedeformerlesdéveloppeursavecdesDOJOparexemple.Conclusion