Giter Site home page Giter Site logo

desafio_encurtador_url's Introduction

Hi, I'm Juliano.

Software engineer specialized in creating microservices. I have knowledge in architectural solutions, as well as experience in automated testing.

Find me on: LinkedIn.

desafio_encurtador_url's People

Contributors

filhodanuvem avatar julianojj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

desafio_encurtador_url's Issues

Code review Devgym 🎉

Fala @julianojj , primeiro parabéns por ter completado o desafio. Foi bem rápido nesse, vou ter que criar uns mais desafiadores pra você haha.
Alguns comentários :

Experiência do usuário

  • Já que o .db.env é obrigatório, você poderia ou ter ele no repositorio com valores vazios para env vars necessárias ou ter um .db.env.example e sugerir a pessoa de renomear o arquivo.
  • voce commitou um usuário e senha padrao no arquivo go, voce poderia ter usado o pacote os com a função os.getenv para utilizar as mesmas env vars. Outra opção é usar o projeto dotenv que possibilita ler um arquivo .env.
  • é possivel também ja subir o banco de dados com tabelas e dados que você queira. Você pode dar olhada em como montar um volume dentro do container docker que aponta pra um arquivo que voce tem no seu projeto. O arquivo vai ter qualquer sql e o banco vai executar o arquivo assim que subir. Exemplo.

Design

  • Achei muito legal que você brincou com duas implementações de repository 👍🏾
  • Se nao me engano time.Now().AddDate(0, 0, 1) pode ser escrito de forma mais facil de ler como time.Now().Add(24 * time.Hour)aqui , mas é um detalhe.
  • Achei legal que você pensou na expiração do link
  • os testes precisavam ser mais flexiveis para nao obrigar a conexao do banco aqui esperando env vars tambem.
  • É muito importante pensar em testes pelo lado negativo, os unhappy tests. Você está garantindo que uma url é salva no banco mas quais são os cenários de erros? Salvar a mesma url duas vezes gera hashes diferentes obrigatoriamente? Simular que o banco esta fora do ar retorna um erro?
  • legal que voce pensou nos status codes dos endpoints. 🎖️
  • O endpoint que busca a url deveria retornar 404 em alguns casos, penso eu, mas pelo o que vejo ou retorna um sucesso ou um internal server error. É importante se atentar que errors 5xx dizem pro usuário que o problema está no servidor e se ele tentar novamente pode ser que a resposta mude. O que não necessariamente é verdade no caso das urls expiradas ou hashes não encontradas.

De novo meus parabéns pela solução, gostei também da organização de código e deu pra ver que você usou diferentes conceitos.
Posso em algum momento fazer um vídeo no canal com sua solução?

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.