Use o código e tenha 10% de desconto!

🎁 Dezembro é especial na Casa do Código e vamos presentear você! Confira o regulamento aqui

Programação Funcional e Concorrente em Rust

Julia Naomi Boeira

*Você terá acesso às futuras atualizações do livro.

Conteúdo

Rust é uma linguagem de nível de sistema com algumas características que são grandes diferenciais, como ter segurança de memória sem coletor de lixo, possibilitar concorrência sem corrida de dados, abstração sem overhead e um compilador que garante segurança no alocamento de recursos. Com Rust, pensar em Programação Funcional será algo muito intuitivo no desenvolvimento.

Neste livro, Julia Naomi traz todo o potencial do Rust, apresentando-o como uma ótima opção às outras linguagens, inclusive as de mais alto nível, sendo até possível implementar TDD. Você verá como Programação Funcional se associa a Rust, em comparação com Clojure, com foco em funções, traits, iterators, adapters e consumers. Além disso, você se aprofundará em sua principal característica, a concorrência, nos diversos modos que o Rust oferece, como a criação de threads, o compartilhamento de estados e a transferência de informações por canais. A autora ainda apresenta quatro frameworks HTTP, sendo dois de alto nível (Iron e Nickel), um de baixo nível (Hyper) e um de programação assíncrona (Tokio), com os quais você já pode colocar a mão na massa.

A edição atualizada em 02/2021 conta com novos capítulos completos de async, incluindo tokio e async_std, além da adição de assincronicidade com sistema de atores baseado no Actix. Todos os códigos foram atualizados para a edição 2018 do Rust.

Saiba o que você vai aprender

 

Sumário

Parte 1 – Por que Rust?

  • 1 Introdução ao Rust
  • 1.1 História do Rust
  • 2 Por que Rust?
  • 2.1 Type Safety
  • 2.2 Entendimento da linguagem e sua sintaxe
  • 2.3 Segurança de memória
  • 2.4 Programação concorrente
  • 2.5 Mais sobre Rust
  • 3 TDD em Rust
  • 3.1 Por que TDD?
  • 3.2 Um exemplo em Rust

Parte 2 – Programação Funcional

  • 4 O que é programação Funcional?
  • 4.1 Imutabilidade
  • 4.2 Laziness
  • 4.3 Funções
  • 5 Definindo funções
  • 5.1 Funções de ordem superior
  • 5.2 Funções anônimas
  • 5.3 Funções como valores de retorno
  • 6 Traits
  • 6.1 Trait bounds
  • 6.2 Traits em tipos genéricos
  • 6.3 Tópicos especiais em traits
  • 7 If let e while let
  • 7.1 if let
  • 7.2 if let else
  • 7.3 while let
  • 8 Result e Option
  • 8.1 Result
  • 8.2 Option
  • 8.3 Exemplo
  • 9 Iterators, adapters e consumers
  • 9.1 Iterators
  • 9.2 Maps, filters, folds e tudo mais
  • 9.3 Consumer
  • 9.4 Mais exemplos com resoluções funcionais
  • 9.5 Funções interessantes

Parte 3 – Programação concorrente

  • 10 O que é programação concorrente?
  • 10.1 Definição de concorrência
  • 10.2 E o Rust? Como fica?
  • 10.3 Quando utilizar concorrência?
  • 11 Threads — A base da programação concorrente
  • 11.1 Lançando muitas threads
  • 11.2 Panic! at the Thread
  • 11.3 Threads seguras
  • 12 Estados compartilhados
  • 13 Comunicação entre threads
  • 13.1 Criando channels MPSC
  • 13.2 Como funciona?
  • 13.3 Comunicação assíncrona e síncrona
  • 14 Assincronicidade em Rust
  • 14.1 Async-await
  • 14.2 Runtime Tokio
  • 14.3 Canais do Tokio
  • 14.4 Sincronização de estado
  • 15 Atores com Actix
  • 15.1 Fazendo um request com Actix
  • 15.2 Registrando no banco de dados
  • 15.3 Buscando um alias registrado
  • 15.4 Gerando um BrCode

Parte 4 – Aplicando nossos conhecimentos

  • 16 Consolidando todos os temas com Iron
  • 16.1 Iron
  • 16.2 Mais detalhes do Iron
  • 16.3 Iron testes
  • 17 Brincando com Nickel
  • 17.1 Routing
  • 17.2 Lidando com JSON
  • 17.3 Templates em Nickel
  • 18 Hyper: servidores desenvolvidos no mais baixo nível
  • 18.1 Criando um servidor Hello World mais robusto
  • 18.2 Fazendo nosso servidor responder um Post
  • 18.3 Uma API GraphQL com Hyper e Juniper
  • 19 Tokio para web e a assincronicidade
  • 19.1 Tokio-proto e Tokio-core
  • 19.2 Futures
  • 19.3 A versão assíncrona
  • 20 Bibliografia
  • 20.1 Links importantes
  • 20.2 Exemplos GraphQL

Autor

Julia Naomi Boeira

Julia Naomi Boeira é desenvolvedora de software na Thoughtworks Brasil e possui grande experiência no desenvolvimento de jogos, tendo idealizado o Lean Game Development. Atualmente, atua como divulgadora da engine Unity dentro da Thoughtworks principalmente em realidade aumentada.

Dados do produto

Número de páginas:
276
ISBN:
978-85-94188-42-7
Data publicação:
03/2018. Atualizado em 02/2021.

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter