Go em Ação
Descrição do livro
O desenvolvimento de aplicações pode ser bem complicado, mesmo quando não estamos lidando com problemas de programação de sistemas complexos, como concorrência em escala web e desempenho de tempo real. Embora seja possível resolver esses problemas comuns com ferramentas e frameworks adicionais, Go já vem pronto para lidar com eles, deixando a experiência de programação muito mais natural e produtiva. Desenvolvida no Google, a eficácia da linguagem Go confere agilidade tanto a startups quanto a empresas de grande porte – companhias que dependem de serviços de alto desempenho em sua infraestrutura.
Go Em Ação é um livro para qualquer desenvolvedor de nível intermediário, com experiência em outras linguagens de programação, que queiram um início imediato no aprendizado de Go ou melhor compreensão da linguagem e de sua organização interna. Esta obra oferece uma visão detalhada, abrangente e idiomática de Go. Ela está concentrada na especificação e na implementação da linguagem, incluindo assuntos como sintaxe da linguagem, sistema de tipos de Go, concorrência, canais e testes.
Conteúdo do livro
Especificação e implementação da linguagem
Sistema de tipos de Go
Organização interna das estruturas de dados de Go
Testes e benchmarking
Este livro pressupõe que você seja um desenvolvedor atuante, proficiente em outra linguagem como Java, Ruby, Python, C# ou C++.
Ver menos ▲Sumário
- Apresentação
- Prefácio
- Agradecimentos
- Sobre este livro
- Sobre a ilustração da capa
- Introdução à linguagem Go
- 1.1 Resolvendo desafios modernos de programação com Go
- 1.1.1 Velocidade de desenvolvimento
- 1.1.2 Concorrência
- 1.1.3 Sistema de tipos de Go
- 1.1.4 Gerenciamento de memória
- 1.2 Hello, Go
- 1.2.1 Apresentando o Go Playground
- 1.3 Resumo
- Imersão rápida em Go
- 2.1 Arquitetura do programa
- 2.2 Pacote principal
- 2.3 Pacote search
- 2.3.1 search go
- 2.3.2 feed go
- 2.3.3 match go/default go
- 2.4 Matcher de RSS
- 2.5 Resumo
- Pacotes e ferramentas
- 3.1 Pacotes
- 3.1.1 Convenções para nomenclatura de pacotes
- 3.1.2 Pacote main
- 3.2 Importações
- 3.2.1 Importações remotas
- 3.2.2 Importações nomeadas
- 3.3 init
- 3.4 Usando as ferramentas de Go
- 3.5 Indo além com outras ferramentas de Go para desenvolvedores
- 3.5.1 go vet
- 3.5.2 Formatação em Go
- 3.5.3 Documentação de Go
- 3.6 Colaborando com outros desenvolvedores de Go
- 3.6.1 Criando repositórios para compartilhamento
- 3.7 Gerenciamento de dependências
- 3.7.1 Dependências de vendoring
- 3.7.2 Apresentando o gb
- 3.8 Resumo
- Arrays, fatias e mapas
- 4.1 Organização interna e fundamentos dos arrays
- 4.1.1 Organização interna
- 4.1.2 Declarando e inicializando um array
- 4.1.3 Trabalhando com arrays
- 4.1.4 Arrays multidimensionais
- 4.1.5 Passando arrays entre funções
- 4.2 Organização interna e fundamentos das fatias
- 4.2.1 Organização interna
- 4.2.2 Criando e inicializando fatias
- 4.2.3 Trabalhando com fatias
- 4.2.4 Fatias multidimensionais
- 4.2.5 Passando fatias entre funções
- 4.3 Organização interna e fundamentos dos mapas
- 4.3.1 Organização interna
- 4.3.2 Criando e inicializando mapas
- 4.3.3 Trabalhando com mapas
- 4.3.4 Passando mapas entre funções
- 4.4 Resumo
- Sistema de tipos de Go
- 5.1 Tipos definidos pelo usuário
- 5.2 Métodos
- 5.3 Natureza dos tipos
- 5.3.1 Tipos embutidos
- 5.3.2 Tipos referência
- 5.3.3 Tipos estrutura
- 5.4 Interfaces
- 5.4.1 Biblioteca-padrão
- 5.4.2 Implementação
- 5.4.3 Conjuntos de métodos
- 5.4.4 Polimorfismo
- 5.5 Inclusão de tipos
- 5.6 Identificadores exportados e não exportados
- 5.7 Resumo
- Concorrência
- 6.1 Concorrência versus paralelismo
- 6.2 Goroutines
- 6.3 Condições de concorrência
- 6.4 Travando recursos compartilhados
- 6.4.1 Funções atômicas
- 6.4.2 Mutexes
- 6.5 Canais
- 6.5.1 Canais sem buffer
- 6.5.2 Canais com buffer
- 6.6 Resumo
- Padrões de concorrência
- 7.1 Pacote runner
- 7.2 Pooling
- 7.3 Pacote work
- 7.4 Resumo
- Biblioteca-padrão
- 8.1 Documentação e código-fonte
- 8.2 Logging
- 8.2.1 O pacote log
- 8.2.2 Loggers personalizados
- 8.2.3 Conclusão
- 8.3 Codificação/decodificação
- 8.3.1 Decodificando JSON
- 8.3.2 Codificando JSON
- 8.3.3 Conclusão
- 8.4 Entrada e saída
- 8.4.1 Interfaces Writer e Reader
- 8.4.2 Trabalhando em conjunto
- 8.4.3 Curl simples
- 8.4.4 Conclusão
- 8.5 Resumo
- Testes e benchmarking
- 9.1 Testes de unidade
- 9.1.1 Testes de unidade básicos
- 9.1.2 Testes de tabela
- 9.1.3 Chamadas simuladas
- 9.1.4 Testando endpoints
- 9.2 Exemplos
- 9.3 Benchmarking
- 9.4 Resumo
Sobre os autores
William Kennedy é um desenvolvedor de software experiente e autor do blog GoingGo.Net. … Ver perfil completo ▶
Brian Ketelsen é um dos organizadores do GopherCon e coautor do framework Skynet baseado em Go.… Ver perfil completo ▶
Erik St. Martin é um dos organizadores do GopherCon e coautor do framework Skynet baseado em Go.… Ver perfil completo ▶
Livros relacionados
Opinião dos leitores
victor h d s r
Ótimo livro para que procura uma rápida e clara introdução o Golang.
Deividy R
Bom d+, inacreditável. Consegui ter um entendimento bem legal com a leitura e a parte boa: vai direto ao ponto.
Cesar G
O livro é muito bom, um ótimo ponto de entrada para quem quer aprender Go e já conhece outras linguagens de programação.






