Programação em Rust
Programação em Rust
Resumo:
Introdução
O livro «Programming Rust» (primeira edição, 2017) dos autores Jim Blandy e Jason Orendorff é um dos guias mais autoritativos e profundos sobre a linguagem Rust, lançados nos primeiros anos após a estabilização da linguagem. Apesar de já terem se passado vários anos desde o lançamento e de uma segunda edição (2021) ter sido publicada, a primeira edição continua sendo um recurso valioso para todos que desejam entender os princípios fundamentais do Rust, sua filosofia e as particularidades da programação de sistemas. O livro é publicado em capa dura, contém 622 páginas e abrange tanto tópicos básicos quanto avançados.
Sobre o que é este livro
«Programming Rust» não é apenas um guia de referência de sintaxe. É um manual educacional completo que apresenta a linguagem ao leitor de forma sequencial, começando pela instalação das ferramentas e terminando com conceitos complexos como ownership, borrowing, lifetimes, closures, iterators, concorrência e código unsafe. O livro é estruturado para fornecer ao leitor não apenas conhecimento, mas também a compreensão de por que o Rust é projetado dessa forma. Atenção especial é dada ao sistema de tipos e ao modelo de memória — as principais diferenças do Rust em relação ao C++ e outras linguagens de sistema.
Para quem é este livro
O livro é voltado para programadores que já têm experiência com outras linguagens (C, C++, Python, Java, Go). Pode ser difícil para iniciantes em programação, mas para aqueles que desejam migrar para Rust a partir de outras linguagens, é um ponto de partida ideal. Os autores pressupõem que o leitor esteja familiarizado com conceitos básicos: ponteiros, pilha, heap, compilação, tipos de dados. Se você já programa em Rust, mas deseja aprofundar seu entendimento sobre seu funcionamento interno, este livro também será útil.
O que o leitor aprenderá
- Fundamentos da sintaxe e semântica do Rust: variáveis, funções, structs, enums, pattern matching.
- Sistema de ownership, borrowing e lifetimes: conceitos-chave que garantem segurança de memória sem um garbage collector.
- Trabalho com tipos: programação genérica (generics), traits, dispatch, ligação estática e dinâmica.
- Closures e iterators: recursos funcionais do Rust e seu uso eficiente.
- Gerenciamento de memória: Box, Rc, Arc, RefCell, Cell — smart pointers e mutabilidade interior.
- Concorrência e paralelismo: Send, Sync, mutexes, canais, operações atômicas.
- Unsafe Rust: quando e como usar código inseguro, trabalho com ponteiros brutos, FFI (interação com C).
- Macros: macros declarativas e procedurais, sua criação.
- Testes e documentação: ferramentas de teste integradas, escrita de documentação.
Pontos fortes do livro
A primeira coisa que chama a atenção é a clareza e estruturação da exposição. Os autores não apenas listam fatos, mas explicam a lógica da linguagem. Por exemplo, o capítulo sobre ownership e borrowing é escrito de forma tão clara que até conceitos complexos se tornam compreensíveis. Em segundo lugar, muitos exemplos práticos. Cada tópico é acompanhado por programas pequenos, mas completos, que podem ser executados e experimentados imediatamente. Em terceiro lugar, a profundidade. O livro não tem medo de se aprofundar: são abordados tópicos como o funcionamento interno de Vec, o funcionamento do alocador e o modelo de memória. Isso permite que o leitor não apenas use Rust, mas também entenda o que acontece "sob o capô". Finalmente, a qualidade da tradução (no caso da edição em português) é excelente, a terminologia é uniforme e segue as normas estabelecidas.
Para quem é recomendado
O livro será útil para:
- Desenvolvedores C/C++ que desejam migrar para uma linguagem mais segura, mas igualmente performática.
- Programadores Python, Java, Go,
Recommendations
Teste de aplicações C# (.NET): de testes unitários a testes de integração
Refatoração de código Kotlin: melhorando arquitetura, desempenho e legibilidade
GraphQL em Kotlin: Criação de APIs Modernas
Padrões de Projeto em Java: do básico às técnicas avançadas
Entrevista sobre Kotlin: 200 perguntas e respostas
Código Limpo em Go (Golang): guia para escrever código legível e sustentável