Elixir Do zero à concorrência
Tiago DaviPrefá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.
Todos os exemplos deste livro foram testados no Erlang v19 e no Elixir v1.4.1.
.
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