Programando em Go Crie aplicações com a linguagem do Google
Caio FilipiniConteúdo
Go é uma linguagem moderna, criada com o objetivo principal de melhorar a produtividade no desenvolvimento em larga escala de servidores, baseado nas experiências de alguns times dentro do Google.
Hoje, mais de quatro anos após ter sido anunciada publicamente, cada vez mais empresas têm adotado a linguagem para escrever diversos tipos diferentes de aplicações, muito além dos servidores.
Go traz um misto interessante de recursos de alto e baixo nível que a torna atraente para diferentes públicos. Suas principais características incluem o controle inteligente de dependências, compilação rápida e eficiente, sintaxe simples, gerenciamento automático de memória incluindo um coletor de lixo, sistema de tipos forte e estático, funções de primeira classe e suporte nativo e de alto nível para concorrência.
Este livro apresenta ao leitor os recursos da linguagem Go e importantes partes de sua biblioteca padrão, sempre incluindo exemplos relevantes que demonstram o uso de cada recurso.
Sumário
- 1 Introdução
- 1.1 Por que Go...?
- 1.2 Instalação
- 1.3 O primeiro programa em Go
- 2 Explorando a sintaxe básica
- 2.1 Estrutura do capítulo
- 2.2 If e expressões lógicas
- 2.3 Arrays e slices
- 2.4 Exemplo 1: conversor de medidas
- 2.5 Criando funções básicas
- 2.6 Exemplo 2: quicksort e funções
- 3 Indo além: mais exemplos
- 3.1 Exemplo 3: mapas e estatísticas
- 3.2 Exemplo 4: pilhas e tipos customizados
- 4 Coleções: arrays, slices e maps
- 4.1 Arrays
- 4.2 Slices
- 4.3 Maps
- 5 Criando novos tipos
- 5.1 Novos nomes para tipos existentes
- 5.2 Conversão entre tipos compatíveis
- 5.3 Criando abstrações mais poderosas
- 5.4 Structs
- 5.5 Interfaces
- 5.6 Duck typing e polimorfismo
- 5.7 Um exemplo da biblioteca padrão: io.Reader
- 6 Funções
- 6.1 A forma básica
- 6.2 Valores de retorno nomeados
- 6.3 Argumentos variáveis
- 6.4 Funções de primeira classe
- 6.5 Funções anônimas
- 6.6 Closures
- 6.7 Higher-order functions
- 6.8 Tipos de função
- 6.9 Servindo HTTP através de funções
- 7 Concorrência com goroutines e channels
- 7.1 Goroutines
- 7.2 Channels
- 7.3 Buffers
- 7.4 Controlando a direção do fluxo
- 7.5 Select
- 7.6 Temporizadores e timeouts
- 7.7 Sincronizando múltiplas goroutines
- 7.8 Concorrência, paralelismo e GOMAXPROCS
- 7.9 Recapitulando
- 8 Mão na massa: encurtador de URLs
- 8.1 Estrutura do projeto
- 8.2 Criando o servidor
- 8.3 Criando URLs curtas
- 8.4 Redirecionando para as URLs originais
- 8.5 Apresentando o pacote url
- 8.6 Especificando a implementação do repositório
- 8.7 Criando identificadores curtos
- 8.8 Implementando o repositório em memória
- 9 Compilando e executando o projeto
- 9.1 Entendendo o processo de compilação
- 9.2 Instalando o executável no sistema
- 9.3 Aprendendo mais
- 10 Colhendo estatísticas
- 10.1 Realizando a contagem no repositório
- 10.2 Registrando os acessos no servidor
- 10.3 Serializando JSON
- 10.4 Visualizando as estatísticas como JSON
- 11 Refatorando o código
- 11.1 Substituindo variáveis globais
- 11.2 Reduzindo a duplicação de código
- 11.3 Escrevendo logs
- 11.4 Flexibilizando a inicialização do servidor
- 12 Próximos passos
- 12.1 Aprendendo mais
Autor
Caio Filipini
Caio Filipini é Bacharel em Sistemas de Informacão e trabalha com tecnologia desde 2003. Já participou de diversos projetos como desenvolvedor e consultor, a maioria envolvendo as linguagens Java, JavaScript e Ruby. Foi desenvolvedor na Caelum, mudou-se para Berlim, onde passou por empresas como Fyber e SoundCloud, e atualmente trabalha como engenheiro de software sênior na DigitalOcean.
Dados do produto
- Número de páginas:
- 190
- ISBN:
- 978-85-66250-49-7
- Data publicação:
- 06/2014