Giter Site home page Giter Site logo

kauefraga / esquilo-aniquilador Goto Github PK

View Code? Open in Web Editor NEW
8.0 1.0 0.0 163 KB

🐿 Minha API aniquiladora pra Rinha de Backend em Go. Segunda edição da Rinha!

License: MIT License

Go 87.60% Dockerfile 3.26% Shell 9.15%
api golang nginx postgresql rinha-backend rinha-de-backend

esquilo-aniquilador's Introduction

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.

esquilo-aniquilador's People

Contributors

kauefraga avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.