https://github.com/microsoftarchive/cqrs-journey
https://michaeljswart.com/2017/07/sql-server-upsert-patterns-and-antipatterns/
clean-architecture-api-boilerplate
root - repositório
- docs
- database
- microservice (nome a definir)
- src
- application - camada de aplicação
- errors - erros e ou exceções da aplicação
- use-cases - representa as lógica de negócios do aplicativo
- validation - controla a validação dos value objects
- controllers - gerencia o comportamento dos dados através de regras de negócios
- middlewares - uma camada de abstração da aplicação
- common - camada comun
- adapters - adaptares de modelos de datasources
- TreeAdpter - classe
- helpers - ajudantes - classes comuns
- ObjectKey - classe
- data-mappers - _mapeadores de dados são rápidos de escrever e simples de testar e mesmo que sua implementação seja entediante. http://modelmapper.org/
- adapters - adaptares de modelos de datasources
- domain - camada de domínio
- entities -
- User - classe user
- Progress - classe progress
- UserProgress - classe user progress
- value-objects - objeto imutável sem identidade. Ex.: Email, FullName
- Email - classe e-mail
- use-cases - representa as lógica de negócios do domínio
- repositories - _ armazena classes abstratas de repositórios_
- entities -
- models - camada de modelos de datasources
- UserModel - classe User
- dtos - _ Os DTOs são a representação do modelo de objeto de uma solicitação / resposta JSON / XML ou de uma tabela de banco de dados, portanto sua estrutura é a mais adequada para a comunicação remota_
- infrastructure - _camada de infra "frameworks"
- express
- nestjs
- typeorm
- presentation - camada de apresentação
- responses
- requests
- datasources - camada fonte de dados, na qual os dados se originam e permite sua persistência_
- repositories - O padrão Repository faz a mediação entre o domínio e as camadas de mapeamento de dados (Martin Fowler)
- ProgressRepository
- UserRepository
- fakers -preencher sua persistência para fazer um teste de resistência ou anonimizar dados obtidos de um serviços
- FakerRepository - classe faker de um repositório
- TreeRepository
- UserRepository
- repositories - O padrão Repository faz a mediação entre o domínio e as camadas de mapeamento de dados (Martin Fowler)
- application - camada de aplicação
- src
Refs:
- Domain Driven Design
- Design a DDD-oriented microservice
- Design a microservice domain model
- Definition of the software principle ‘clean architecture’
- Explaining Clean Architecture
- Why you need Use Cases/Interactors
- The “Real” Repository Pattern in Android
- Why ModelMapper?
- Design the infrastructure persistence layer
- Repository
- SOLID