Clean Architecture Flashcards

1
Q

O que é Clean Architecture?

A

Clean Architecture é um modelo de arquitetura de software que organiza o código em camadas concéntricas para separar responsabilidades e facilitar manutenção e testes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são as principais camadas da Clean Architecture?

A

As principais camadas são:
- Entidades (Entities)
- Casos de Uso (Use Cases)
- Interface de Aplicação (Interface Adapters)
- Infraestrutura (Frameworks & Drivers)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que são as entidades na Clean Architecture?

A

As entidades são objetos de domínio que representam as regras de negócio independentes de tecnologia ou frameworks.

public class Cliente
{
    public int Id { get; set; }
    public string Nome { get; set; }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que são os casos de uso na Clean Architecture?

A

Os casos de uso contêm a lógica de aplicação e coordenam a execução das regras de negócio definidas pelas entidades.

public class CriarClienteUseCase
{
    private readonly IClienteRepositorio _repositorio;
    
    public CriarClienteUseCase(IClienteRepositorio repositorio)
    {
        _repositorio = repositorio;
    }
    
    public void Executar(Cliente cliente)
    {
        _repositorio.Adicionar(cliente);
    }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qual é o papel dos adaptadores de interface na Clean Architecture?

A

Os adaptadores de interface convertem dados entre a camada de casos de uso e o mundo externo, como APIs, UI e bancos de dados.

public class ClienteController
{
    private readonly CriarClienteUseCase _useCase;
    
    public ClienteController(CriarClienteUseCase useCase)
    {
        _useCase = useCase;
    }
    
    public void Post(Cliente cliente)
    {
        _useCase.Executar(cliente);
    }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Como a Clean Architecture lida com a infraestrutura?

A

A infraestrutura fica na camada mais externa e fornece implementações concretas para bancos de dados, frameworks web e outros serviços externos.

public class ClienteRepositorio : IClienteRepositorio
{
    private readonly DbContext _context;
    
    public ClienteRepositorio(DbContext context)
    {
        _context = context;
    }
    
    public void Adicionar(Cliente cliente)
    {
        _context.Clientes.Add(cliente);
        _context.SaveChanges();
    }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly