Junte-se à 7.500+ devs e receba e-mails semanais com a melhor curadoria de artigos, repositórios e outros links interessantes da área tech.
Share
#151 - Desmistificando o GC: nem todo herói usa ponteiro manual
Published 3 days ago • 4 min read
Hey! 👋
A Codecon Summit 25 está com a programação totalmente definida!
Se você queria saber tudo que vai rolar antes de comprar o ingresso, chegou a hora. No site você já pode ver a lista completa de palestrantes, os temas das palestras e os horários.
Em um mundo onde velocidade e concorrência são reis, os sistemas operacionais precisam ser rápidos como um foguete e multitarefa como um polvo com cafeína. Otimizar cada pedacinho do código é essencial, e nisso os desenvolvedores de kernel são quase atletas de alta performance. Nesse cenário, surge o RCU (Read-Copy-Update), uma técnica genial (e meio mágica) pra lidar com dados que são muito lidos, mas raramente modificados, como a lista de dispositivos USB conectados.
A ideia é simples e elegante: quando for preciso atualizar os dados, em vez de travar geral e atrapalhar os leitores, o sistema copia os dados, faz as alterações e troca o ponteiro para a nova versão. Fácil, rápido... e cheio de vazamentos de memória, se não for bem cuidado. A solução? Usar um sistema que espera os leitores terminarem antes de apagar a versão antiga. E se isso for feito de forma adiada e assíncrona, voilà: temos um coletor de lixo, sim, no kernel!
RCU mostra que a coleta de lixo não é só “coisa de linguagem de preguiçoso” ou sinônimo de lentidão. Pelo contrário, pode ser incrivelmente eficiente e usada em sistemas de altíssimo desempenho, como o kernel do Linux. Na prática, os GCs modernos são rápidos, eficientes e oferecem vantagens que até os melhores gerenciamentos manuais de memória não conseguem alcançar.
Moral da história? A coleta de lixo não é um vilão. Na verdade, é uma ferramenta poderosa, e quem ainda torce o nariz pra ela talvez esteja preso em ideias ultrapassadas. No fim das contas, o que importa mesmo é: funciona bem? Se sim, que venha o GC!
Um recado do patrocinador 📣
“Eu entrei no Asaas em agosto de 2020, e já perdi a noção do quanto consegui me desenvolver profissionalmente dentro da empresa. Desde o início tive diversos desafios para ajudar a desenvolver o front-end do sistema da empresa, ajudando a implementar ferramentas que ajudassem no dia a dia.
Trabalhar no Asaas é incrível, as pessoas estão sempre dispostas a te apoiar, seja para tirar uma dúvida, bater um papo, as pessoas são extremamente receptivas.
Muitas coisas me fazem gostar do Asaas que existe hoje em dia, seus valores, os pilares da engenharia, o interesse genuíno pelo cliente, e uma das máximas da engenharia que é: Crie códigos que você teria orgulho de mostrar para sua mãe.
É tudo isso e muito mais que faz eu ser encantado pelo Asaas.”
Gean Farias, Tech Lead no Asaas.
Quer trabalhar em um time onde colaboração e desenvolvimento andam juntos? As vagas estão abertas e esperando por você! Vem conferir.
💡 ideias
Tá a fim de sair do óbvio e encarar uns projetos de programação desafiadores? Esse texto é pra você! Ele traz uma lista irada de ideias que fogem do tradicional “app de lista de tarefas” e mergulham em projetos criativos e até meio malucos, como criar sua própria linguagem de programação, simular fenômenos físicos ou desenvolver um jogo no TIC-80. Não são projetos pensados pra te arrumar emprego, mas pra quem curte programar por paixão e quer aprender se divertindo. Bora botar o cérebro pra suar e o código pra brilhar!
🦀 Rust
Por que usar async/await se threads já fazem o trabalho? Essa pergunta vive aparecendo no mundo do Rust. A real é que async/await permite lidar com milhões de conexões sem sobrecarregar o sistema, diferente das threads, que escalam bem, mas têm seus limites. A mágica está em rodar várias tarefas como se fossem máquinas de estados que se alternam. Apesar da complexidade extra, o poder de composição do async é incrível: dá pra adicionar timeout, combinar futuros e trabalhar com fluxos diferentes com elegância e controle total.
🚀 autodesenvolvimento
Você não é uma versão finalizada de si mesmo. E isso é uma ótima notícia! Sua personalidade, gostos e habilidades mudam com o tempo, e você pode assumir o controle desse processo. Comece reconhecendo que você já é diferente do que era no passado, imagine com clareza quem quer ser no futuro e mude a história que você conta sobre si mesmo. Seu comportamento atual deve refletir quem você quer se tornar, não quem foi. Assuma a responsabilidade pelo seu “eu do futuro” e vá construindo ele, um passo de cada vez.
💼 entrevista
Imagina estar numa entrevista de engenharia e receber o seguinte desafio: "Adicione um comando de multiplicação atômica no memcached". Isso acontece! A empresa já mexia com banco de dados e queria testar mais que conhecimento: queriam ver código na prática. O memcached é um sistema de armazenamento chave-valor que já permite append, incr, decr… só faltava o mult! O teste era simples (na teoria): modificar o código-fonte do memcached pra criar esse novo comando. Só isso. Em uma hora. Boa sorte!
🇯🇸 JavaScript
Promise em JavaScript pode parecer mágica negra no começo, mas na real, são só objetos com superpoderes pra lidar com tarefas assíncronas. Quando você usa new Promise, cria um objeto que espera ser resolvido ou rejeitado no futuro. Com then e catch, dá pra encadear reações, que são jogadas na Microtask Queue, rolando só depois que a pilha de chamadas estiver vazia. Isso evita travamentos e deixa o código mais fluido. É tipo um “fica tranquilo que eu te aviso quando acabar”!
😉 conselhos
Se você pudesse voltar 10 anos no tempo, talvez se aconselhasse assim: pense mais por conta própria e menos no que esperam de você. Use os momentos tranquilos para criar e compartilhe o que faz. Escreva mais, beba menos, caminhe mais. Dinheiro não é tudo, ambiente e criatividade contam muito. Valorize bons amigos, um bom gerente e projetos que tragam sentido. Fuja de empregos que te prendem numa caixa sem janelas. E lembre-se: não aceite menos do que merece, nem de empresas, nem de amores. Leia na íntegra: “101 coisas que eu diria a mim mesmo há 10 anos”.
Hey! 👋 Que tal apoiar a Codecon e ganhar benefícios exclusivos? Por R$15/mês ou R$ 180/ano, você apoia nossos projetos, entra nos bastidores do que rola por aqui, troca ideia com quem tá por trás da Codecon e ainda curte vantagens em eventos, produtos e muito mais. E mais! Durante esse mês de maio, se a gente conseguir atingir a primeira meta, vamos sortear um NINTENDO SWITCH novinho. Bora lá? Faltam poucas pessoas! SEJA CODECON PRO! 🔥 Veja todos os detalhes e vantagens clicando aqui. Até...
Hey! 👋 Você sabia que agora temos uma comunidade no Discord? Bom, na verdade a gente já tinha, só tava abandonada. Mas agora ela tá ativa novamente e estamos sempre trocando ideia por lá (tem até um bot de lo-fi). E junto dela, a gente também lançou o plano Codecon Pro. Uma forma de você apoiar a Codecon a tirar mais projetos do papel. Mais barato que um lanche por mês Até mais,Gabriel Nunes (@nunesgabriel) ADRs: o diário de bordo da arquitetura Quando a gente fala de decisões de arquitetura...
Hey! 👋 O principal encontro de devs sênior+ do Brasil! A Select Experience chega à sua terceira edição como o ponto de encontro das principais referências em tecnologia. Um evento feito sob medida para quem já tem estrada na área e busca conversas que realmente agregam. As inscrições para a edição de 2025 já estão abertas. 01 DE NOVEMBRO ~ STATE INNOVATION CENTER, SÃO PAULO, SPGaranta o seu lugar entre os melhores! Até mais,Gabriel Nunes (@nunesgabriel) Dividir para conquistar Dividir tarefas...