Onde o teu app quebra quando cresce
Estouro de inteiro é quando o número não cabe na gaveta onde ele é guardado. No YouTube, a gaveta de 32 bits ia até 2.147.483.647; os engenheiros viram chegando e trocaram por uma de 64 bits antes do problema. Números do caso do YouTube conferidos na BBC (04/12/2014) e na Tubefilter (03/12/2014).
- 01 / 04
Pede pra IA testar o teu app 100 vezes maior DICA NOSSA
Pedido pronto pra IA olhar o projeto imaginando 100 vezes mais usuários e dados e listar o que quebra primeiro, com o risco e o conserto de cada item.
Pedido pronto "Imagina que este app tem 100 vezes mais usuários e 100 vezes mais dados do que hoje. Sem mudar nada ainda, me mostra o que quebra primeiro e em que ordem. Procura principalmente: (1) números guardados num tipo pequeno demais (contador, ID, valor em dinheiro) que podem estourar; (2) telas e listas que carregam tudo de uma vez, sem paginação; (3) consultas ao banco sem limite ou sem índice; (4) chamadas repetidas que poderiam ser guardadas prontas (cache); (5) limites do plano grátis das ferramentas que eu uso (banco, hospedagem, IA, e-mail). Pra cada item, me diz onde está no código, o risco em português simples e o conserto mais simples." - 02 / 04
O que é estouro de inteiro OFICIAL
O contador do YouTube era de 32 bits (máximo 2.147.483.647). O Gangnam Style passou desse número em 2014; os engenheiros viram chegando e trocaram por 64 bits (uns 9,2 quintilhões). Número que passa do máximo dá a volta e vira negativo.
BBC · Gangnam Style music video 'broke' YouTube view limitTubefilter · o contador negativo
- 03 / 04
A pergunta que tu faz sempre DICA NOSSA
Toda vez que pedir uma parte nova pra IA, termina com a pergunta: e se isso aqui crescer 100 vezes?
Pra colar no fim de qualquer pedido "E se isso aqui crescer 100 vezes? Me diz o que precisa mudar agora pra não quebrar depois." - 04 / 04
O que não precisa agora DICA NOSSA
App que está começando não precisa aguentar milhões no primeiro dia: conserta antes o que é barato e o que é perigoso (dinheiro, cadastro, contador) e deixa o resto pra quando os números pedirem.