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

Elixir Do zero à concorrência

Tiago Davi

Prefácio

Décadas atrás, os processadores eram projetados com apenas um núcleo. Então, naquela época, fazia sentido programar sem pensar em distribuição de tarefas por núcleos de processamento.

A maioria dos programadores não se preocupava se estava utilizando todo o potencial do processador para executar tarefas em paralelo. Entretanto, hoje, depois de várias pesquisas neste setor, os processadores evoluíram e passaram a ter não apenas um núcleo, mas diversos! Hoje estes processadores são conhecidos como multicore e são muito comuns, até mesmo em aparelhos celulares. 

 No momento, vivemos neste cenário moderno e em constante evolução, mas muitos programadores continuam escrevendo código de maneira clássica, sem considerar que hoje podemos extrair muito mais dos processadores no sentido de podermos processar diversas tarefas em paralelo, a fim de termos um resultado muito mais eficiente.

Diversas linguagens tentam resolver esse problema. Mas a implementação desses recursos em geral é muito complicada e, no final, eles não conseguem resolver o problema de fato.

Sistemas orientados a objeto têm de lidar com mutação de estado em processos paralelos. E quando você tem diversos núcleos disputando o mesmo espaço de memória, para checar esse estado, o resultado final pode ser um desastre. 

Neste livro, vamos estudar a linguagem de programação Elixir que resolve muito bem este problema. Por ser uma linguagem imutável e utilizar o paradigma funcional, Elixir nos permite pensar em termos de funções e transformação de dados.

Elixir também é baseado em processos que se comunicam isoladamente e, por isso, não sofre efeitos colaterais indesejados como outras linguagens. Em vez disso, ele potencialmente cria uma nova versão limpa dos dados a cada possível mutação.

Elixir executa código em pequenos processos e cada um com seu próprio estado, o que faz com que a construção de sistemas distribuídos e concorrentes seja feita de forma natural, transparente e fácil.

PARA QUEM ESTE LIVRO FOI ESCRITO

Se você é recém-chegado no universo da programação, creio que este livro não lhe cairá muito bem devido aos diversos aspectos técnicos que são comparados e explicados aqui. Mas se por outro lado, você já possui alguma experiência com programação, seja qual for a linguagem, e tem vontade de aprender um pouco mais sobre a forma funcional de pensar, utilizando como base os diversos aspectos da linguagem de programação Elixir, então este livro é para você. Espero que sirva bem ao seu propósito. 

É requerido que você entenda um pouco sobre Orientação a Objetos, estruturas de dados, funções, variáveis e constantes. Você terá de lidar com terminal, editores de código, Elixir e Erlang. Logo, conhecer estes assuntos previamente pode ajudar.

Como ler este livro

Sugiro que leia em ordem, do início ao fim, pois os assuntos são abordados pouco a pouco e o conhecimento é exigido conforme os capítulos vão avançando. Porém, nada o impede de visitar somente o assunto que lhe interessa, desde que você já saiba do que se trata.

 

Sumário

  • 1 Introdução
    • 1.1 O paradigma funcional
    • 1.2 Instalando Elixir
    • 1.3 IEx — Elixir Interativo
    • 1.4 Aridade de funções
    • 1.5 Exercícios
    • 1.6 Você aprendeu
  • 2 Fundamentos
    • 2.1 Tudo é uma expressão
    • 2.2 Inspecionando código
    • 2.3 Introdução a tipos
    • 2.4 Exercícios
    • 2.5 Você aprendeu
  • 3 Organização
    • 3.1 Pattern Matching
    • 3.2 Módulos
    • 3.3 Funções
    • 3.4 Funções e Pattern Matching
    • 3.5 Exercícios
    • 3.6 Você aprendeu
  • 4 Verificação
    • 4.1 Controle de fluxo
    • 4.2 Guard clauses
    • 4.3 Operador pipe
    • 4.4 Exercícios
    • 4.5 Você aprendeu
  • 5 Listas
    • 5.1 Head e tail (cabeça e cauda)
    • 5.2 List comprehension
    • 5.3 Lazy evaluation
    • 5.4 Recursividade
    • 5.5 Exercícios
    • 5.6 Você aprendeu
  • 6 Calculadora de médias
    • 6.1 Exercícios
    • 6.2 Você aprendeu
  • 7 Mix
    • 7.1 Exercícios
    • 7.2 Você aprendeu
  • 8 ExUnit
    • 8.1 Exercícios
    • 8.2 Você aprendeu
  • 9 Introdução a processos
    • 9.1 Exercícios
    • 9.2 Você aprendeu
  • 10 Programação concorrente e paralela
    • 10.1 Criando um app de clima
    • 10.2 Executando o app de clima em paralelo
    • 10.3 Exercícios
    • 10.4 Você aprendeu
    • +
  • 11 Tasks
    • 11.1 Exercícios
    • 11.2 Você aprendeu
  • 12 Conclusão

Dados do produto

Número de páginas:
121
ISBN:
978-85-5519-261-6
Data publicação:
04/2017

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter