Design orientado a domínios (DDD): o que é e seus componentes básicos