Muito obrigado por assinar e espero que você goste do conteúdo! Não esqueça de preencher o feedback no final da newsletter para eu saber o que você quer ver por aqui nas próximas edições!
Nota: Vocês devem ter percebido que a quantidade de conteúdos esse mês caiu um pouco. Isso aconteceu porque tive um pequeno problema de saúde e tive que me afastar um pouco para me recuperar, mas aos poucos o conteúdo vai estar de volta aos trilhos, obrigado pela compreensão :D
JavaScript vai ter decorators?
Um dos maiores rumores da história do JavaScript foi desmascarado! Será que o JS vai ter decorators? E o que são decorators? Bora entender mais uma das propostas do TC39, dessa vez vamos mergulhar a fundo nesse padrão de projetos e entender como ele pode mudar a história do JS pra sempre!
Você já pensou em uma carreira internacional?
Conteúdo feito em parceria com a Turing
Você já pensou em ganhar em dólares trabalhando remotamente para as maiores empresas do mundo? A Turing pode te ajudar a fazer isso! Basta acessar este link e se inscrever nas dezenas de vagas abertas para as mais variadas áreas e dar aquele empurrão internacional da sua vida profissional!
Links do mês
Matemática de inteiros com JavaScript
O JavaScript tem uma fama de ter um problema sério com conversões numéricas. A mais notável das contradições é que todos os números na linguagem são, por padrão, floats com precisão decimal, então todas as operações sobre números inteiros são primeiro convertidos de um double de 64 bits para um inteiro de 32 e ai convertido de volta para o double original (pelo menos conceitualmente).
A dica aqui é que, quando você for fazer operações com inteiros, adicione | 0
após o calculo se o seu número puder ser negativo e >>>
0 se ele só for positivo. Isso vai fazer uma operação bitwise convertendo forçadamente o número para inteiro e poupando algum tempo.
O básico que você precisa saber sobre unicode
Joel Spolsky (co-criador do Stack Overflow e do Trello) discute como funcionam charsets e o formato unicode, que é um dos conhecimentos que ele considera imprescindível para qualquer dev hoje em dia. Esse é um artigo super interessante porque ele passa nos detalhes de como funcionam cadeias de caracteres e por que a gente está sempre lutando quando temos que fazer internacionalização.
O guia de números com ponto flutuante
Esse é um site que todo dev precisa ler. Muita gente me pergunta (inclusive eu fiz uma thread toda sobre isso) por que 0.1 + 0.2
não é 0.3 em sistemas computacionais, e esse site explica perfeitamente todas as ideias e todos os problemas com os números de pontos flutuantes.
Além disso estou preparando um super conteúdo para mostrar como bancos e outros sistemas financeiros dão a volta nesse problema de um jeito um tanto quanto não convencional.
Pequenos detalhes sobre como computadores medem tempo que você pode não conhecer
Um pequeno site que mostra algumas notas sobre como computadores medem tempo, por exemplo:
- O que é UTC: É o tempo na longitude
0
- O que é GMT: UTC era chamado de GMT porque passava pelo observatório de Greenwich na Inglaterra
- Todos os fusos horários nada mais são do que um offset do UTC, para mais ou menos
- Horários de verão não tem efeitos sobre o UTC
- O tempo no Unix não tem efeitos de fusos porque é só uma contagem crescente de segundos desde 1970
- Fusos horários são uma preocupação das camadas de apresentação SEMPRE
- Para medir intervalos de tempo, use sempre relógios monotônicos
- Para medir ou gravar qualquer tempo, use sempre o Unix timestamp porque é um único número, é fácil de gravar e obter, não tem drifts, horários de verão e quaisquer outras coisas
- Relógios em redes são incertos
Esse é outro conteúdo que estou preparando depois da minha série sobre criptografia no YouTube, vamos falar um pouco mais sobre sistemas distribuídos e como eles podem ser um problema bem sério.