Rust Roadmap
Um guia prático e progressivo para aprender Rust e construir software rápido e confiável.
🧱 1. Fundamentos de Programação
Seção intitulada “🧱 1. Fundamentos de Programação”Lógica de Programação
Seção intitulada “Lógica de Programação”- Algoritmos e resolução de problemas
- Pseudocódigo
- Linguagens compiladas vs interpretadas
Conceitos básicos
Seção intitulada “Conceitos básicos”- Variáveis e constantes
- Tipos de dados
- Comentários
- Entrada e saída no terminal
Controle de fluxo
Seção intitulada “Controle de fluxo”- Condicionais
- Estruturas de repetição
- Funções
Noções de memória
Seção intitulada “Noções de memória”- Stack vs heap
- Ponteiros e referências (conceitual)
- Por que gerenciamento de memória importa
🦀 2. Primeiros Passos com Rust
Seção intitulada “🦀 2. Primeiros Passos com Rust”Ambiente
Seção intitulada “Ambiente”- Instalação com
rustup - Cargo:
new,run,build,check,test rustfmteclippy- Editor com
rust-analyzer
Sintaxe
Seção intitulada “Sintaxe”- Variáveis, imutabilidade e
mut - Shadowing
- Constantes
- Tipos escalares: inteiros, ponto flutuante,
bool,char - Tipos compostos: tuplas e arrays
- Funções, instruções e expressões
- Comentários e comentários de documentação (
///)
Controle de fluxo em Rust
Seção intitulada “Controle de fluxo em Rust”ifcomo expressãoloop,whileefor- Ranges
🔑 3. Ownership e Borrowing
Seção intitulada “🔑 3. Ownership e Borrowing”- Regras de ownership
- Move vs copy (
CopyeClone) - Referências e borrowing (
&e&mut) - As regras do borrow checker
- Slices (
&str,&[T]) Stringvs&str
🧩 4. Structs, Enums e Pattern Matching
Seção intitulada “🧩 4. Structs, Enums e Pattern Matching”- Structs, tuple structs e unit structs
- Métodos e funções associadas (
impl) - Enums com dados
Option<T>matche exaustividadeif let,let elseewhile let- Padrões avançados e guards
📦 5. Organização de Código
Seção intitulada “📦 5. Organização de Código”- Pacotes, crates e módulos
mod,useepub- Separação entre
lib.rsemain.rs - Workspaces do Cargo
- Dependências e crates.io
- Features do Cargo
📚 6. Coleções e Strings
Seção intitulada “📚 6. Coleções e Strings”Vec<T>HashMapeHashSetBTreeMapeVecDeque- Strings e UTF-8
⚠️ 7. Tratamento de Erros
Seção intitulada “⚠️ 7. Tratamento de Erros”panic!vs erros recuperáveisResult<T, E>- O operador
? - Tipos de erro customizados
- Crates
thiserror(bibliotecas) eanyhow(aplicações)
🧬 8. Generics, Traits e Lifetimes
Seção intitulada “🧬 8. Generics, Traits e Lifetimes”- Funções e tipos genéricos
- Traits e implementações
- Traits da biblioteca padrão (
Debug,Display,Clone,PartialEq,From,Default) derive- Trait bounds e
where impl Traitedyn Trait- Lifetimes e elisão
- Associated types
🔁 9. Programação Funcional
Seção intitulada “🔁 9. Programação Funcional”- Closures (
Fn,FnMut,FnOnce) - Iteradores e o trait
Iterator - Adaptadores:
map,filter,fold,collect - Desempenho de iteradores vs laços
🧠 10. Smart Pointers
Seção intitulada “🧠 10. Smart Pointers”Box<T>Rc<T>eArc<T>RefCell<T>e mutabilidade interiorWeak<T>e ciclos de referência- Trait
Drop
⚡ 11. Concorrência
Seção intitulada “⚡ 11. Concorrência”- Threads com
std::thread - Troca de mensagens com channels
- Estado compartilhado com
MutexeRwLock SendeSync- Paralelismo de dados com
rayon
⏳ 12. Programação Assíncrona
Seção intitulada “⏳ 12. Programação Assíncrona”asynceawait- Futures
- Runtime
tokio - Tasks,
select!e cancelamento - Streams
🧪 13. Testes e Qualidade
Seção intitulada “🧪 13. Testes e Qualidade”- Testes unitários com
#[test] - Testes de integração (
tests/) - Doc tests
- Testes baseados em propriedades (
proptest) - Benchmarks com
criterion clippyecargo audit
🌐 14. Desenvolvimento Web e APIs
Seção intitulada “🌐 14. Desenvolvimento Web e APIs”axumeactix-web- Serialização com
serde - Cliente HTTP com
reqwest - Middlewares com
tower - gRPC com
tonic - Validação de entrada
🗄️ 15. Banco de Dados
Seção intitulada “🗄️ 15. Banco de Dados”sqlx(SQL verificado em tempo de compilação)dieseleSeaORM- Migrações
- Redis
🛠️ 16. CLIs e Ferramentas
Seção intitulada “🛠️ 16. CLIs e Ferramentas”- Argumentos com
clap - Configuração e variáveis de ambiente
- Saída colorida e barras de progresso
- Distribuição de binários
📊 17. Observabilidade
Seção intitulada “📊 17. Observabilidade”- Logging e tracing com
tracing - Métricas com Prometheus
- OpenTelemetry
☁️ 18. Cloud, Containers e Deploy
Seção intitulada “☁️ 18. Cloud, Containers e Deploy”- Build otimizado (
--release, profiles, LTO) - Compilação cruzada (targets)
- Imagens Docker multi-stage e mínimas
- CI/CD com GitHub Actions
🌍 19. Outras Áreas do Ecossistema
Seção intitulada “🌍 19. Outras Áreas do Ecossistema”- WebAssembly (
wasm-bindgen,wasm-pack) - Sistemas embarcados (
no_std) - Desenvolvimento de jogos (Bevy)
- Interfaces gráficas (Tauri, egui)
- Interoperabilidade com C (FFI) e Python (PyO3)
🎯 20. Tópicos Avançados
Seção intitulada “🎯 20. Tópicos Avançados”unsafeRust e suas garantias- Macros declarativas (
macro_rules!) - Macros procedurais
- Layout de memória e
repr - Pin e internals de async
- Otimização de desempenho e profiling
🚀 Próximos Passos - Da Sintaxe à Produção
Seção intitulada “🚀 Próximos Passos - Da Sintaxe à Produção”- Domine ownership, borrowing e as mensagens do compilador
- Modele seus dados com structs, enums e pattern matching
- Trate erros com
Resulte?desde o início - Construa uma CLI com
clapeserdee depois uma API comaxumetokio - Empacote com Docker, publique com CI/CD e observe com
tracing
Foque em projetos reais ao invés de só teoria.
Sugestões:
- CLI útil para o seu dia a dia
- Reimplementar uma ferramenta Unix (
grep,wc,cat) - API REST com
axum,sqlxe PostgreSQL - Um módulo WebAssembly rodando no navegador
🔥 Regra de ouro: Aprenda - Aplique - Ensine - Repita