ls -news #12 - Node 20 está ai!

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!


O Node.js 20 chegou!

Como é de costume eu escrevi um artigo para mostrar as novidades que vieram na versão 20 do Node.js, que será a próxima versão LTS, tem muita coisa legal e muita coisa útil!

Quais são as novidades que o novo Node.js 20 trouxe?
Mais um ano, mais uma versão oficial do Node.js está no ar. A versão 20 tem modificações significativas, aprenda tudo sobre elas aqui!

A Semana TS foi INCRÍVEL

Muito obrigado a todo mundo que participou da #SemanaTS, espero que vocês tenham gostado do conteúdo. Foram mais de 1000 pessoas participando 😱

Se você ainda não leu os artigos, eles vão ficar no ar até meu curso de TypeScript começar a ser gravado! E você pode acessá-los aqui:

O que você sabia e não sabia sobre TS - Semana TS dia 1
Aprenda tudo sobre o TypeScript e como você pode dar os primeiros passos nessa tecnologia que está crescendo cada vez mais!
O que são arquivos de declaração .d.ts no TypeScript
No segundo dia da semana TS vamos falar de arquivos de declaração de tipos e boas práticas para criação de bibliotecas!
Boas e más práticas com TypeScript
Você já se perguntou quais são as melhores práticas de TypeScript que você pode ter para deixar o seu código tipado e seguro? Eu vou te mostrar!
Técnicas Avançadas com TypeScript
Vamos aprender tudo sobre técnicas mais avançadas de TypeScript, desde type narrowing até generics e branded types.
Type-level programming - Orientação à tipos com TypeScript
Você já ouviu falar de programação orientada a objetos, mas e a tipos? Um estilo de desenvolvimento que pode ajudar você a escrever códigos muito mais seguros com TypeScript

Lembrando que estou lançando um curso que está em pré-produção agora! Chamado FORMAÇÃO TS! E você pode dar suas dicas e feedbacks sobre o que você quer aprender lá no site!

Formação TypeScript
O curso de TypeScript mais completo do Brasil!

O Deno nos surpreende novamente

E o Deno nos surpreendeu novamente com um Key-Value store nativo! Eu não sabia que essa funcionalidade estava ainda por baixo dos panos, mas foi super legal descobrir!

O Deno agora tem um banco de dados nativo
O Deno nos surpreende novamente com um banco de dados nativo implementado direto no namespace global! Bora entender como isso funciona!

Ta na hora de aprender!

Conteúdo feito em parceria com a Alura.

Como devs nós não podemos deixar de aprender coisas novas não é mesmo? E é por isso que a nossa parceira para essa newsletter é nada mais nada menos do que a maior escola de programação da América Latina!

Com esse link especial da Alura você consegue 10% de desconto na sua matrícula e tem acesso a mais de 1000 cursos sensacionais, inclusive o meu próprio curso de aplicações serverless! Então bora lá e dá um up no seu aprendizado com a Alura!


Links do mês

Soft deletes de uma forma… Diferente

Em uma newsletter passada eu mostrei um artigo que falava sobre os problemas do soft delete, depois de alguns meses o autor escreveu esse artigo como uma melhoria do processo anterior.

No outro artigo ele dizia que era melhor termos uma tabela de registros removidos para poder trazê-los de volta quando necessário, o que raramente acontece, nesse artigo ele mostra um pequeno código PGSQL que vai criar um trigger em todas as tabelas, criando um registro JSON para cada linha removida de uma tabela, assim é fácil recuperar o conteúdo.

Melhorando documentações com automação

Um artigo bem interessante do time do Medusa, uma plataforma de ecommerce, sobre como mudar a documentação e melhorar tanto o layout quanto o conteúdo transformou o time para que eles fossem mais eficientes e conseguissem mais clientes.

No geral, a ideia é que a documentação passa a ser parte do processo de desenvolvimento, ferramentas como o Docusaurus e o ESLint tem um papel importante nessa jornada já que eles podem analisar erros e padronizar a documentação, bem como gerar documentação automaticamente baseado no que está escrito no código.

Nomes devem ser fofos e não descritivos

Esse artigo é um pouco controverso, eu particularmente não concordo, mas entendo o propósito. O autor diz que nomes de serviços devem ser algo não relacionado com o serviço em si, por exemplo, chamar um serviço de mensagem de “Jaiminho” ou algo desse tipo ao invés de um nome descritivo.

O motivo é simples: responsabilidades mudam, o nome não. E isso é muito verdade, o serviço pode ter mais responsabilidades ao longo do tempo mas o nome é muito mais complexo de mudar.

Porém, para mim, se você tem que mudar o nome de um serviço porque ele tem mais responsabilidades, acho que talvez seja melhor você criar outro serviço.

Alguém resolveu transformar o Chrome em um browser que roda no Terminal

Um dos projetos malucos mais interessantes que eu já vi. Quem usa terminais há muito tempo (tipo, muito tempo mesmo) conhece o Lynx, um browser que foi criado para ser rodado diretamente no terminal e exibir as páginas como textos usando o layout e pintura nativos de um terminal para renderizar o conteúdo.

Enquanto o lynx era totalmente baseado em texto, então imagens e outros conteúdos ficavam estranhos, além de ser um browser que rodava por comandos do teclado, o Carbonyl, o browser desse dev chamado Fathy, roda o Chrome completamente. Ele explica como fez isso nesse artigo.

A web é bastante cíclica

Um post super legal no blog do Deno que eu li já faz um tempo, mas ele mostra uma forma bastante interessante de ver a web como um todo.

Mostrando desde os princípios da Web, onde servidores eram construídos para servir conteúdo estático apenas, as vezes imagens, depois passando para os dias de hoje onde o tamanho médio de uma página da web cresceu cerca de 1000%, depois ele passa para os modelos onde as páginas podiam ser dinâmicas renderizadas do lado do servidor e mandadas como arquivos estáticos, o famoso Server Side Rendering.

Depois os browsers ficaram mais fortes, o JS se tornou uma linguagem super utilizada e os clientes se tornaram muito poderosos, então tudo começou a ser renderizado no cliente, mas agora parece que estamos voltando às origens e renderizando conteúdo diretamente no servidor de novo, provando que a web é cíclica.

Além disso temos um tutorialzinho super legal no final do artigo mostrando como passar para um modelo híbrido de SSR com Client rendering chamado de Islands Architecture.


Repositórios interessantes

GitHub - denoland/dnt: Deno to npm package build tool.
Deno to npm package build tool. Contribute to denoland/dnt development by creating an account on GitHub.
GitHub - DovAmir/awesome-design-patterns: A curated list of software and architecture related design patterns.
A curated list of software and architecture related design patterns. - GitHub - DovAmir/awesome-design-patterns: A curated list of software and architecture related design patterns.
GitHub - shobrook/adrenaline: Talk to your codebase
Talk to your codebase. Contribute to shobrook/adrenaline development by creating an account on GitHub.
GitHub - stevenpetryk/mafs: React components for interactive math
React components for interactive math. Contribute to stevenpetryk/mafs development by creating an account on GitHub.
GitHub - jmforsythe/Git-Heat-Map: Visualise a git repository by diff activity
Visualise a git repository by diff activity. Contribute to jmforsythe/Git-Heat-Map development by creating an account on GitHub.
GitHub - you-dont-need/You-Dont-Need-Lodash-Underscore: List of JavaScript methods which you can use natively + ESLint Plugin
List of JavaScript methods which you can use natively + ESLint Plugin - GitHub - you-dont-need/You-Dont-Need-Lodash-Underscore: List of JavaScript methods which you can use natively + ESLint Plugin
Gostou dessa newsletter? Dê seu feedback neste link