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

Programação Funcional e Concorrente em Rust

Julia Naomi Boeira

Introdução

Este livro apresenta Rust de forma que a programação funcional seja inerente ao desenvolvimento, assim como identifica uma das grandes forças do Rust, a concorrência. Para isso, o livro foi dividido em quatro partes.

Na primeira, temos um resumo do potencial do Rust e sua história. Passaremos por uma explicação de por que Rust deve ser considerado uma ótima opção, bem como por suas principais características, e apresentaremos um breve módulo de como pode ser feito TDD em Rust. Na segunda, mostramos a programação funcional na perspectiva dessa linguagem, comparando ao Clojure. Nosso foco será principalmente em funções, traits, iterators, adapters e consumers. 

Na terceira parte, apresentamos 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. Então, na última parte, resumimos as outras, de forma a apresentar 4 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). 

 

Público-alvo

Este livro tem como objetivo usar Rust para desenvolver o pensamento funcional e concorrente em qualquer pessoa que goste de programação, por conta dos motivos já explicados. Logo, é recomendado ter um básico conhecimento nessa linguagem, pois muitas das implementações de código esperam um conhecimento raso dele. 

Outros aspectos importantes da escolha de Rust foram a paixão da autora pela linguagem, já que poupou muitas dores de cabeça por não ter mais de se preocupar em implementar sistemas concorrentes em C++, e a facilidade da sintaxe, que tem uma sensação de linguagem de alto nível.

 

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 Iterators, adapters e consumers
    • 8.1 Iterators
    • 8.2 Maps, filters, folds e tudo mais
    • 8.3 Consumer
  • Parte 3 – Programação concorrente
  • 9 O que é programação concorrente?
    • 9.1 Definição de concorrência
    • 9.2 Por que Clojure é uma boa referência de comparação?
    • 9.3 E o Rust? Como fica?
    • 9.4 Rust: concorrência sem medo
    • 9.5 Quando utilizar concorrência?
  • 10 Threads — A base da programação concorrente
    • 10.1 Lançando muitas threads
    • 10.2 Panic! at the Thread
    • 10.3 Threads seguras
  • 11 Estados compartilhados
  • 12 Comunicação entre threads
    • 12.1 Criando channels
    • 12.2 Enviando e recebendo dados
    • 12.3 Como funciona?
    • 12.4 Comunicação assíncrona e síncrona
  • Parte 4 – Aplicando nossos conhecimentos
  • 13 Aplicando nossos conhecimentos
    • 13.1 Iron
    • 13.2 Mais detalhes do Iron
    • 13.3 Iron testes
  • 14 Brincando com Nickel
    • 14.1 Routing
    • 14.2 Lidando com JSON
    • 14.3 Templates em Nickel
  • 15 Hyper: servidores desenvolvidos no mais baixo nível
    • 15.1 Criando um servidor Hello World mais robusto
    • 15.2 Fazendo nosso servidor responder um Post
  • 16 Tokio e a assincronicidade
    • 16.1 Tokio-proto e Tokio-core
    • 16.2 Futures
    • 16.3 A versão assíncrona
  • 17 Bibliografia

Dados do produto

Número de páginas:
165
ISBN:
978-85-94188-42-7
Data publicação:
03/2018

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter