Pular para o conteúdo

Próximos passos em Rust

Se você estudou os temas deste curso, já sabe Rust o suficiente para criar programas de verdade: variáveis, controle de fluxo, funções, ownership (posse), borrowing (empréstimo), coleções, módulos, tratamento de erros, traits, genéricos e até threads, smart pointers (ponteiros inteligentes), unsafe e macros. Isso é, de verdade, a maior parte do que você vai usar no dia a dia. O que falta é principalmente prática, e ir aprendendo cada biblioteca conforme for precisando.

O jeito mais rápido de aprender daqui para frente é escolher um projeto pequeno e empacar algumas vezes. Este site tem cinco projetos guiados para começar:

Depois de fazer esses, tente um por conta própria:

  • Uma calculadora simples — pratique match, Result e tratamento de erros com entradas inválidas.
  • Um leitor de configuração em JSON — carregue configurações de um arquivo com o Serde.
  • Um pequeno web scraper ou cliente de API — busque uma URL com o reqwest usando async/await.

Ainda não sabe que tipo de programa quer construir? As páginas de “O que você pode construir” mostram onde o Rust se destaca e quais crates as pessoas usam: redes, bancos de dados, apps de desktop com interface gráfica, jogos e microcontroladores.

Quer praticar com coisas menores antes? Resolva os Exercícios ou se teste com as Perguntas de entrevista.

O ecossistema de pacotes do Rust (os crates, distribuídos pelo crates.io) cobre quase tudo para o que você ia querer uma biblioteca. Alguns aparecem o tempo todo:

A documentação desses crates está em inglês. Você adiciona qualquer um deles a um projeto com cargo add <nome do crate>, sem precisar de outro gerenciador de pacotes. A página Cargo e crates explica como isso funciona e como escolher um bom crate.

Este curso foi mais longe que a maioria dos tutoriais para iniciantes, incluindo coisas como smart pointers, threads e canais (channels), async/await, unsafe Rust, chamar código C (FFI), WebAssembly e escrever as suas próprias macros com macro_rules!. Alguns temas mais avançados têm a sua própria página, para quando você estiver pronto:

  • Macros procedurais — as primas mais poderosas (e mais complexas) das macros macro_rules! da página Macros; são elas que fazem o #[derive(Debug)] e companhia funcionarem por baixo dos panos
  • no_std / Rust embarcado — escrever Rust sem a biblioteca padrão, para microcontroladores e outros ambientes com recursos limitados

Você não precisa de nenhum desses para escrever Rust útil. Vale a pena saber que eles existem, e aprender quando você realmente esbarrar em um problema que precise deles.

  • The Rust Book (em inglês) — releia agora que o básico já fez sentido; muita coisa vai ficar mais clara na segunda vez
  • Rust by Example (em inglês) — mais código comentado para ler
  • Rustlings (em inglês) — pequenos exercícios para você corrigir, direto no terminal
  • This Week in Rust (em inglês) — uma newsletter semanal para ver o que a comunidade está construindo

Você ainda vai se deparar com erros do compilador que te deixam confuso, e isso é normal. Acontece com quem escreve Rust há anos, não só com iniciantes. A diferença que a experiência faz não é que os erros param de aparecer; é que você fica mais rápido para entendê-los. Continue escrevendo código, continue lendo o que o compilador te diz, e tudo vai ficando mais fácil.

Boa sorte, e obrigado por ter chegado até aqui. 🦀

Teste o que aprendeu

1. Qual crate esta página recomenda para ler e escrever JSON?

2. Qual crate é citado para programação assíncrona?

3. Qual destes a página lista como um tema que NÃO foi coberto?

Pontuação: 0 / 3