Skip to content

Explorando os conceitos de Clean Arch com Go através de uma aplicação para gerenciar e avaliar kits de bateria.

Notifications You must be signed in to change notification settings

isabelamoraes/drum-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Drum API

Explorando os conceitos de Clean Arch com Go através de uma aplicação para gerenciar e avaliar kits de bateria.

Clean Arch com Go   |    Features   |    Tecnologias   |    Setup Referências   |   

Clean Arch com Go

Organização da aplicação em GO

Geralmente a comunidade Go organiza a aplicação seguindo a seguinte estrutura:

  • cmd: arquivos que contém o código de entrada do programa;
  • internal: armazena código restrito ao uso do módulo (data, models, handler, service, etc);
  • pkg: pacotes externos;

Clean Architecture

Proposto por Robert Martin, Clean Architecture, ou Arquitetura Limpa, é um padrão arquitetural que consistem em uma série de princípios para estruturar um projeto de forma coesa, testável e de fácil manutenção.

image

Referência: Clean Code Blog

A estrutura se baseia nas seguintes camadas:

  • Entidades - modelos e regras de negócio da empresa
  • Casos de usos - regras de negócio da aplicação
  • Adapters - mediação da interação entre as camadas externas centrais da aplicação
  • Framework e Drivers - camada mais externa na qual temos a parte de frameworks, banco de dados, etc.

Clean Arch com Go

Com base nos conceito de Clean Arch e na maneira como a comunidade organiza as aplicações em Go, o projeto respeita a seguinte estrutura:

├── cmd
├── internal
│   ├── adapter
|   |   ├── http
│   │   └── logger
│   ├── core
│   │   ├── domain
|   |   |   ├── applicationerror
│   │   |   └── usecase
│   │   └── dto
│   ├── di
│   ├── error
│   ├── infra
|   |   └── gorm
|   |   |   ├── model
|   |   |   └── repositories
│   └── scripts

Features

  • CRUD de baterias
  • Buscar uma bateria e suas reviews
  • Adicionar review para determinada bateria
  • Testes

Tecnologias

Esse projeto foi desenvolvido utilizando:

  • Golang - Linguagem de programação open-source criada pelo Google;
  • Gin - Framework web para Golang;
  • GORM - Biblioteca ORM para Golang.

Setup

Para clonar e executar essa aplicação insira os comandos abaixo no terminal:

# Clone this repository
$ git clone https://github.com/isabelamoraes/drum-api.git drum-api

# Go into the repository
$ cd drum-api

# Install dependencies
$ go mod tidy

# Run docker-compose
$ docker-compose up

# Run migrations
$ go run internal/scripts/automigration/migrate.go

# Run api
$ go run cmd/main.go

Referências

  • Artigo - Construindo Sistemas com uma Arquitetura Limpa - Link
  • Cursos sobre Go na Alura
  • Vídeo - Como organizar pastas e arquivo no Go - Full Cycle
  • Artigo - Clear Arch com Golang - Link

About

Explorando os conceitos de Clean Arch com Go através de uma aplicação para gerenciar e avaliar kits de bateria.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages