Erick Wendel Profile picture
Jul 6 11 tweets 5 min read
wooowwwww, I know that you've always wanted to compare objects in JS as `obj === obj` so I brought good news for you 🤩🔥

Let's begin🧵 /1
I don't know about you but I'm really excited about this feature, let me show you how it works 🔥

/2
The #ECMAScript proposal for the #Record and #Tuple value types is Stage 2 which means that it could change at any time but there're packages and playgrounds for you to try out this feature before it's available on the language.

/3
For me, the feeling is the same as when they added async/await to the JavaScript language.

A real game-changing feature 🤯

/4
The most confusing concept in JavaScript to me is the `const` keyword.

You cannot reassign values such as:

const p = { a : 1}
p = { b : 2 } // error

/5
But you can change its content:

const p = { a : 1}
p.a = 2 // works
p.b = 1 // works

So this `const` is not a real constant and immutable variable, right? 😂

Record and Tuples came to help us fix this problem (and others)

/6
Now, you'll define your immutable variables with a new syntax and it throw errors if you try changing them:

const p = #{ count: 1 }
p.count = 2 // "error: count" is read-only"
p.newProp = 1 // "error: can't define property "newProp": Object is not extensible"

/7
Those two data types will be primitive types on JS which means that you can compare them as you do for strings and numbers, independently of the order:

#{ a: 0, count: 1 } === #{ count: 1, a:0 } // true

/8
Ah, and for immutable Arrays, you can check the Tuples, the same idea with even more power 🔥

#[ #{name: 'test'} ] === #[ #{name: 'test'} ] // true

This is just a simple intro about these amazing features.

/9
Come, check and try out this amazing proposal that the @TC39 team is working on

Tutorial: bit.ly/record-tuple-js
Docs: bit.ly/record-tuple-p…

/10
Let me know in the comments what you think about this amazing proposal and what you wish to have on the JS language for the next years 🔥

#javascript #proposals #ecmascript #100daysofcode #nodejs #js #ideas #jstips

/11

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Erick Wendel

Erick Wendel Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @erickwendel_

Jul 5
Aewwww agora simmmmmm, atendendo a pedidos eu trouxe uma super surpresaaaaaaaa 🔥🔥

Boraaaaaaaaa🧵 /1
No ultimo mês estive palestrando em grandes eventos pelo mundo e muita gente acompanhou a parada de perto. /2
Fui para Athenas na Grécia, para Amsterdã em Netherlands palestrar para mais de 2 mil pessoas (como na foto) e por fim em Tel Aviv em Israel para também mais de 2 mil pessoas presencialmente 🚀🚀 /3
Read 8 tweets
May 11
Top 5 dicas para resolver problemas de lentidão em apps @nodejs (ou mesmo qualquer app) 🔥🧵 /1
1 - Entenda o motivo da lentidão e timeouts

Essa é a fase de investigação, procure a causa da lentidão e o motivo de sua aplicação não estar entregando os requests em tempo (timeout). /2
Isso pode ser analisado usando ferramentas de Application Performance Monitoring, os APMs, ou até mesmo localmente, com pacotes para testes de carga como o autocannon em Node.js, o wrk da Apache por aí vai /3
Read 12 tweets
May 10
Fiz o @nodejs suportar 5x mais requests com 99.9% de uptime, adicionando somente 10 linhas de código 🤯😬

Se liga nesse experimento! 🧵 /1
Peguei uma API simples, que tem um problema de performance, que trava o event loop fazendo uns for loops muito doidos

Em seguida, rodei um teste de carga, com 500 usuários simultâneos, por 30 segundos requisitando o mesmo endpoint. /2
Nesse teste, consegui chegar aos 1K requests concluídos e uma latência média de 44 segundos 😬😳

E com a técnica que vou te ensinar nesse vídeo, eu consegui um resultado extremamente melhor /3
Read 7 tweets
May 9
Como resolvi um bug no @nodejs que afeta o @Facebook Jest, @yarnpkg e milhares de outros pacotes 🔥🤩

Bora para o 🧵 /1 Image
Para quem não sabe, há um tempo atrás consegui resolver um bug no Node.js que impedia que sub processos se comunicassem com o processo principal quando usássemos #ECMAScript modules /2
Fiz até um vídeo no canal mostrando todo o passo a passo, vou deixar o link no final do post para você assistir depois!

Minha primeira contribuição foi realizada na versão 17 do Node.js, só que até então, o problema não havia sido corrigido na versão corrente /3
Read 7 tweets
May 6
Como dobrei a capacidade de resposta de um endpoint adicionando cache de apenas 100 milisegundos 🤯🧵

/1 Image
Até criei um repositório completão para você testar essa prova de conceito, comparando o antes e o depois das alterações. /2
Eu já trabalhei bastante otimizações e caching de informações que são "quase" realtime, em desenvolvimento de uma grande plataforma de Application Performance Monitoring (APM) /3
Read 10 tweets
May 5
Top 5 dicas que eu gostaria de ter ouvido quando iniciei em programação 🔥🤩

Segue o 🧵 /1 Image
1 - Você não precisa ser 100% produtivo(a) todos os dias

Isso serve para qualquer área da vida. Não adianta tentar ser produtivo(a) 12 horas por dia todos os dias, seu corpo e principalmente sua mente precisam de descanso. /2
Tem vezes que o dia parece não render bem, mas é normal, isso acontece com todo mundo (e principalmente comigo, até hoje)

A chave é não parar e ir com calma, a consistência é chave no aprendizado /3
Read 11 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(