Code Monkey home page Code Monkey logo

bikedeboa-api's Issues

Adicionar ids unicas/timestamp nas fotos salvas no S3

O cache dos navegadores e dos crawlers das redes sociais não irão perceber quando alguém modificar uma foto de um bicicletário já que salvamos no Amazon S3 sempre com o mesmo nome de arquivo (o ID do bicicletário).
Pra resolver isso basta dar uma refatorada no código do backend pra adicionar um identificador sequencial a mais no nome (ID-1, ID-2, ...) ou mais simples ainda um timestamp da hora que a foto é salva.

Otimizar endpoint GET /local/light

O endpoint de GET /local/light (getAllLight) é uma das chamadas mais importantes da API em termos de Experiência de Usuário, foi é o que bloqueia o uso do aplicativo no primeiro acesso até que o cliente tenha recebido todos dados de todos bicicletários.
Apesar do grande impacto no tempo de carregamento do app, esta chamada não é muito otimizada. Acredito que podíamos facilmente melhorar bastante a performance se não tivéssemos que calcular o número de reviews e a note média pra cada um toda vez que é chamado. Esse número poderia ser pré-computado, salvo no próprio Local e atualizado a cada operação sobre as avaliações.

image

Alternativamente, implementar cache no servidor (#12) pode já melhorar bastante isso, sem gerar maiores complexidades de implementação.

Automatizar emails

Eu tenho usado o Mailchimp pra disparar emails pra alguns usuários, mas isso está sendo feito bem manualmente. Esse ticket é pra investigar como integrar com esse serviço pra de maneira automática:

  • Cadastrar novos usuários na lista de email
  • Disparar emails em pontos-chave da jornada do usuário, como: boas vindas, de cadastro de novo bicicletário, depois de 1 mês sem entrar no site, etc.
  • ...dentre outras ideias do ticket do trello sobre Marketing (https://trello.com/c/7ARkaFp9/210-marketing)

Usar cache do lado do servidor

Não tenho certeza, mas acho não temos middleware de cache do servidor. A ideia é que chamadas recentes à API não obriguem o servidor a trabalhar pra calcular tudo denovo e salve resultados pré-calculados. Isso é especialmente útil com alta demanda do servidor em um curto espaço de tempo.

Cuidado: cache é algo muito útil, mas muito fácil de fazer merda. Usar cache muito duradouro em respostas pode fazer o estado da aplicação parecer maluco, como se estivesse atualizando os dados quando na realidade está, mostrando dados antigos, etc.

Adicionar header max-age às respostas da API

O PageSpeed Insights reclamou que nossas respostas da API não tem header de max-age, ou seja, não aproveitam o cache dos navegadores.

image

Cuidado: cache é algo muito útil, mas muito fácil de fazer merda. Usar cache muito duradouro em respostas pode fazer o estado da aplicação parecer maluco, como se estivesse atualizando os dados quando na realidade está, mostrando dados antigos, etc.

Algumas leituras pra ajudar:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching
https://jakearchibald.com/2016/caching-best-practices/

Investigar migrar do Heroku pra Amazon

Nós pagamos hoje 7 dolares por mês pra cada servidor nosso no Heroku, independente do tráfego que temos. Um amigo sugeriu fortemente tentarmos usar diretamente o serviço da AWS, que provavelmente ficará bem mais barato e é muito mais flexível e poderoso.

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.