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!


Saiba tudo sobre o operador satisfies no TypeScript

O TypeScript 4.9 beta trouxe para nós uma melhoria através do operador Satisfies, vamos entender para que ele serve e como ele funciona.

Tudo sobre o novo operador satisfies no TypeScript
Com a versão beta 4.9 do TypeScript, ganhamos um novo operador, o “satisfies”, bora entender como que esse novo operador pode ser útil e porque ele é super legal!

Criando um bot no telegram com GrammY

Aprenda a criar bots incríveis para o Telegram usando uma ferramenta sensacional que vai revolucionar a forma como você trabalhar com automações.

Criando bots para o Telegram com o GrammY
Aprenda a criar bots incríveis para o Telegram usando uma ferramenta sensacional que vai revolucionar a forma como você trabalhar com automações.

Util.parseArgs no Node 18

Junto com um monte de outras novidades, nós finalmente temos a possibilidade de ter um parser nativo de argumentos direto do Node, ao invés de ter que confiar em RegEx e outros pacotes como o Yargs.

CLIs mais simples com Util.parseArgs
Entenda sobre como o Node.js facilitou a criação de ferramentas de linhas de comando com o novo método parseArgs!

O que um livro de 70 anos pode ensinar sobre desenvolvimento web?


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! Veja alguns exemplos:


Links do mês

Porque todas as APIs ReST estão erradas?

REST é provavelmente o termo mais mal utilizado na indústria de tecnologia hoje em dia. Grande parte porque todo mundo fala que uma API que retorna JSON é RESTful, mas, na verdade, o conceito original de REpresentational State Transfer era para ser construído somente sobre hipertexto e HTTP.

Esse é um excelente artigo (e possivelmente eu vou fazer um vídeo sobre) que explica como o REST surgiu como parte da dissertação de PhD de Roy Fielding, essa dissertação explicava como era a arquitetura da Web naquela época, e não tinha JSON envolvido.

A grande ideia é de que toda resposta de API deva ser auto-contida a ponto de que qualquer cliente que esteja recebendo não precise fazer nenhum tipo de operação ou entender a lógica do sistema, só renderizar. E isso faz com que a própria aplicação seja completamente interativa. Recomendo a leitura

O NPM agora tem um seletor de dependencias

O comando npm query é o mais novo comando do NPM v8.16.0 que aceita algo chamado “seletor de dependências” e retorna um array das dependências que fazem um match com esse seletor

A ideia desse comando é descobrir onde as suas dependências estão vivendo e o que elas estão fazendo ali. É bastante interessante principalmente para descobrir porque você tem 12 versões do react instalado na mesma aplicação, além disso ela tem uma versão programática que você pode usar com o pacote @npmcli/arborist que permitiria, por exemplo, que você tomasse ações dependendo dos tipos de dependências instaladas em um sistema

Testando a velocidade do Bun.js

O Bun é o mais novo runtime JavaScript que veio para fazer frente com o Deno e o Node, principalmente com o Node e, diferente do Deno, talvez ele tenha realmente uma chance.

A grande ideia é que o bun diz que é “incrívelmente rápido” (assim como LITERALMENTE QUALQUER outro runtime no mercado), várias pessoas tentaram fazer testes provando isso, mas eram apenas testes simples e diziam que isso provava que ele era mais rápido que o Node e o Deno combinados.

Esse autor tentou algo diferente, e se a gente rodasse algo realmente complexo. Infelizmente o resultado foi que, por conta do estado atual do Bun (muito novo) não foi possível executar todas as funções da aplicação, mas as que foram executadas mostraram uma performance levemente superior em alguns casos mais complexos e muito superior em casos mais leves.

Criando CLIs atrativos usando TypeScript

Esse artigo é muito interessante porque ele mostra que bons CLIs são baseados em uma boa arquitetura e organização. Aqui ele usa o commander.js para criar um CLI simples e mostrar funcionalidades como tratamento de erros e spinners de carregamento que melhoram muito a experiência de um usuário.

Tudo que você precisa saber sobre Hashes

Nesse artigo o autor mostra os básicos de hashes, desde o que é um hash e casos de uso como hashmaps, armazenamento de senhas. Além disso ele separa hashes em vários tipos:

  • Ordenação
  • Integridade
  • Permutação
  • Assinatura
  • Senhas
  • Tokens
  • Criptografia

Uma introdução ao multi-threading do Node.js

Um artigo muito bacana que mostra o que são threads (códigos que rodam em paralelo dentro de um único processo) e como o Node.js (e o JavaScript) lidam com isso através de filas e da libuv (que eu já expliquei aqui) e porque o child_process que é tão útil não é multithreading.

Autorização e autenticação com Serverless

Um artigo direto e reto sobre como trabalhar com autenticação (confirmar que você é quem diz ser) e autorização (confirmar que você tem permissão de executar algo) em ambientes Serverless, nesse caso o AWS Lambda e Lambda Edge.

O artigo é ótimo, porém uma das coisas que eu não gostei é que a solução não é genérica, ela é mais voltada ao AWS e às ferramentas que são dispostas por eles, então você fica meio preso naquele provedor.


Repositórios interessantes

GitHub - pinojs/pino: 🌲 super fast, all natural json logger
🌲 super fast, all natural json logger. Contribute to pinojs/pino development by creating an account on GitHub.
GitHub - nativefier/nativefier: Make any web page a desktop application
Make any web page a desktop application. Contribute to nativefier/nativefier development by creating an account on GitHub.
GitHub - carbon-language/carbon-lang: Carbon Language’s main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)
Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README) - GitHub - carbon-language/carbon-lang: Carbon Langu...
GitHub - discordx-ts/discordx: 🤖 Create a discord bot with TypeScript and Decorators!
🤖 Create a discord bot with TypeScript and Decorators! - GitHub - discordx-ts/discordx: 🤖 Create a discord bot with TypeScript and Decorators!
Gostou dessa newsletter? Dê seu feedback neste link