Estrutura de pastas, arquivos e projetos
TÓPICOS: projetos; pastas; testes; arquivos;
Projetos
- Nomenclatura ➜ Ex: NomeProjeto.Domain
- Normalmente os projetos são Domain, Infra, AppService
- AppService ➜ contém a ligação entre a infra e o domain
- Quando se usa o pattern command, pode ser chamado o handler direto da controller
- Padrão command é para se usar quando precisa reverter alterações ou a lógica é complexa
- Domain ➜ contém toda a regra de negócio e declarações de classes
- Infra ➜ contém toda a parte de comunicação para fora do projeto como API's de terceiros, leitura de arquivos, envio de e-mails
- Não deve ser possível adicionar regras
- Deve se tratar lista como IReadOnlyCollection ou IReadOnlyList
Pastas
- Entidades ➜ Entities
- Value Objects ➜ ValueObjects
- Dto ➜ Dtos
- Interface ➜ Interfaces
- Helper ➜ Helpers
Arquivo
- Nome do arquivo deve ser em PascalCase. Ex: ArquivoProcessamento.cs
Testes
- Nomenclatura de projeto ➜ NomeProjeto.Domain.Tests
- Nomenclatura de classes de teste ➜ Entities.Tests