Backend for the unoficial Unizar calendar and schedule service
Tras clonar el repositorio funciona con el comando
$ go run ./...
Resuelve la lógica de negocio independientemente de la infraestructura
Son todos los agentes externos
- Drivers: son los que solicitan cosas al core (clientes)
- Driven: El core se comunica con ellos (APIs, bases de datos)
Son las onterfaces que nos permiten la comuncicación con lso actores, deberemos tener una interfaz por cada cotr, independientemente de si es driven or driver
Son las implenetaciones de dichas interfaces, transforman las peticiones o las llamas de forma que todos se entiendan
Hay que conectar los adaptadores a los puertos de alguna forma, esto nos permite conectar distintos adaptadores a un mismo puerto, de tal forma que se sencillo utiliza distintos actores
├── cmd
├── pkg
└── internal
├── core
│ ├── domain
│ │ ├── game.go
│ │ └── board.go
│ ├── ports
│ │ ├── repositories.go
│ │ └── services.go
│ └── services
│ └── gamesrv
│ └── service.go
├── handlers
└── data sources
Todos los componentes iran ahí
Aquí se encuentran los modelos (structs) que representarán las entidades de nuestro programa
Aquí pondremos las interfaces para comunicarnos con los actores (type <name> interface{}
)
Son las implementaciones de los puertos, es decir, el punto de entrada al core. Por ejemplo un caso de uso podría ser "borrar libro".
Todos los driver adapters van aquí, es decir los adaptadores de nuestros clientes. En este caso transformaremos peticiones http en llamadas a servicios.
Todos los driven adapters van aquí, es decir, los adaptadores de los recursos que usemos.
Aquí van todos los main
para crear los mocks se ha usado
$ mockgen -source=src/internal/core/ports/repositories.go -destination src/mocks/mockups/repositories.go