A linguagem de programação Go é um projeto de código aberto para tornar os programadores mais produtivos.
Go é expressivo, conciso, limpo e eficiente. Seus mecanismos de concorrência facilitam a escrita de programas que aproveitam ao máximo as máquinas multicore e em rede, enquanto seu novo tipo de sistema permite a construção de programa flexível e modular. Go compila rapidamente para código de máquina, mas tem a conveniência da coleta de lixo e o poder de reflexão em tempo de execução. É uma linguagem rápida, com tipagem estática e compilada que se parece com uma linguagem interpretada com tipagem dinâmica.
Índice
Neste curso, nós vamos aprender mais sobre a Linguagem Go. Ao longo do curso, serão apresentadas aulas que ensinam desde as características básicas da linguagem, bem como as variáveis e constantes, estruturas de repetições, funções, dentre outras.
Instale a IDE Visual Studio Code - VSCode e o Docker. Mas sinta-se a vontade para utilizar as ferrametas que você estiver mais acostumado.
Para instalar e configurar siga os passos que estão descritos na documentação oficial do VSCode clicando aqui.
Para instalar e configurar siga os passos que estão descritos na documentação oficial do Docker clicando aqui.
Para facilitar o gerenciamento dos containers que vamos criar, você pode instalar um plugin no VSCode para utilizar algumas funções do Docker na própria IDE.
- Clique aqui para instalar o plugin para o Docker.
- Clique aqui para instalar o plugin para o remote-containers.
Você terá duas opções para fazer a instalação do ambiente de desenvolvimento.
- Instalando todo o ambiente do GoLang em sua máquina;
- Utilizando a imagem Docker de GoLang.
Para instalar todo o ambiente GoLang siga os passos que estão descritos na documentação oficial clicando aqui. Mas se você preferir utilizar o container Docker, siga o passo-a-passo a seguir.
(usando docker)
Windows (PowerShell):
$ docker build -t go-dev --build-arg GO_VERSION=1.16.5 .
Linux ou MacOS:
$ docker build -t go-dev --build-arg GO_VERSION=1.16.5 .
Windows (PowerShell):
$ docker run -v $pwd\:/src -w /src --label com.docker.compose.project=go-dev -itd --name $(Split-Path -Path $pwd -Leaf) go-dev
Linux ou MacOS:
$ docker run -v `pwd`:/src -w /src --label com.docker.compose.project=go-dev -itd --name ${PWD##*/} go-dev
Aula 1: Introdução e fundamentos da linguagem
Link da video aula
- Apresentações
- Configuração do ambiente (VSCode + Docker)
- Hello World
- Tipos, Variaveis e Constantes
- Array, Map e Slice
- Estrutura de controle (if / else, switch), estrutura de repetição (for, range)
Aula 2: Ponteiros e estruturas
- Ponteiros
- Struct
- Interface
- Defer
- Panic
- Recover
Aula 3: Funções
- Retorno Nomeado
- Variádicas
- Anônimas
- Recursivas
- Closures
func init()
/func main()
Aula 4: Go (composição) x OO (herança)
- Criação de pacotes
- Instalação de dependências de terceiros (go get, go install, go mod, go vendor)
Aula 5: Concorrência (Goroutines e Channels)
- Routines
- Waitgroup
- Channels
- Channels com Buffer
- Select
Aula 6: Padrões de Concorrência
- Worker Pools
- Generator
- Multiplexador
Aula 7: Criar um serviço / API em Go
- Acesse o repositório golang-echo-apigithub para ver um exemplo de implementação de uma API feita em Go.