Home

Awesome

Clean Architecture with Domain Driven Design (DDD)

O objetivo desse projeto é apresentar, de forma didática, alguns dos principais conceitos de Clean Architecture, juntamente com Domain-Driven Design (DDD) com Micronaut.

Problema

Esse problema veio de origem do curso Java e Domain Driven Design: Apresentando os conceitos, com algumas modificações.

Enunciado

Imagine um software em um contexto acadêmico, onde será necessário matricular alunos e indicar alunos.

Entendendo e aplicando os conceitos DDD

Alguns conceitos são necessários para melhor entendimento do desenho da solução. São eles:

Clean architecture

alt

Estrutura do projeto

alt

A estrutura do projeto ficou da seguinte maneira:

   /academic
      /application
      /domain
      /infrastructure
   /email
      /application
      /domain
      /infrastructure
   /gamefification
      /application
      /domain
      /infrastructure
   /shared
      /application
      /domain
      /infrastructure

O primeiro nível representa o domínio, ou seja, foram identificados 4 domínios: academic (acadêmico), email, gamification (pontuação), shared (compartilhado). Em cada domínio, há basicamente 3 pacotes:

References