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