esquilo-aniquilador

module
v0.0.0-...-e241279 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2024 License: MIT

README

Esquilo Aniquilador

GitHub top language Rinha de Backend GitHub's license GitHub last commit (branch)

🐿 Minha API aniquiladora pra segunda edição da Rinha de Backend em Go. A Rinha de Backend é uma competição muito divertida e, para mim, toda edição é/será de muito aprendizado. Participa aí!

[!TIP] Veja o repositório da Rinha. O prazo final é 10/03/2024.

🗺 O que foi implementado

Inicialmente:

  • Rota POST /clientes/:id/transacoes com banco de dados em memória (para testes e validação das regras de negócio)
  • Rota GET /clientes/:id/extrato com banco de dados em memória (só faltou fazer a ordenação decrescente por data/hora)

Posteriormente/atualmente:

  • Rota GET /clientes/:id/extrato com banco de dados PostgreSQL
  • Rota POST /clientes/:id/transacoes com Postgres

A imagem do Dockerfile está disponível no Docker Hub: kauefraga/esquilo-aniquilador-api.

Minha submissão para a Rinha de Backend está aqui.

[!IMPORTANT] Uma pessoa muito importante na conclusão desse projeto foi o Shwuy (@sxhk0), que me ajudou a chegar no 100% OK e me acompanhou no processo!

⬇ Como instalar e botar pra fu...ncionar

  1. Clone o repositório
  2. Rode go run cmd/api/main.go

O segundo passo já deve instalar as dependências. Caso contrário, rode go mod download e execute a segunda instrução de novo.

# (1)
git clone https://github.com/kauefraga/esquilo-aniquilador.git
cd esquilo-aniquilador

# (2)
go run cmd/api/main.go

# (3?)
go mod download

🧪 Como rodar os testes

Testes Gatling

Dá uma olhada no repositório principal, meu mano! Especialmente aqui.

Veja os resultados do último teste que rodei:

Resultados do teste de estresse

Testes unitários

Pra que isso?! 🤡

Testes para verificar as regras de negócio (manual mesmo)

Requisitos: Visual Studio Code.

  1. Instale a extensão REST Client
  2. Abra o arquivo requests.http
  3. Certifique-se de que o banco de dados e a API estejam rodando
  4. Clique em Send Request, faça isso para cada requisição descrita/que aparece
# (1)
code --install-extension humao.rest-client

# (2)
code . # Esteja dentro do diretório esquilo-aniquilador (raiz), que você clonou

🧙‍♂️ O que tunei e como

Não tunei nada, mal implementei o necessário 🤣.

🌳 Interações

Redes Sociais
Meus tweets/xweets

📝 Licença

Este projeto está sob licença do MIT - Veja a LICENÇA para mais informações.


Feito com ❤ por Kauê Fraga Rodrigues.

Directories

Path Synopsis
cmd
api
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL