Aulas de programação em Golang

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

Sobre o curso

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.

Antes de começar...

Instale a IDE Visual Studio Code - VSCode e o Docker. Mas sinta-se a vontade para utilizar as ferrametas que você estiver mais acostumado.

Instale o VSCode

Para instalar e configurar siga os passos que estão descritos na documentação oficial do VSCode clicando aqui.

image

Instale o Docker

Para instalar e configurar siga os passos que estão descritos na documentação oficial do Docker clicando aqui.

image

Instale o plugin para o Docker

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.

Setup do ambiente de desenvolvimento

Você terá duas opções para fazer a instalação do ambiente de desenvolvimento.

  1. Instalando todo o ambiente do GoLang em sua máquina;
  2. 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)

Build

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 .

Run

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

Estrutura do curso

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

Link da video aula

  • Ponteiros
  • Struct
  • Interface
  • Defer
  • Panic
  • Recover

Aula 3: Funções

Link da video aula

  • Retorno Nomeado
  • Variádicas
  • Anônimas
  • Recursivas
  • Closures
  • func init() / func main()

Aula 4: Go (composição) x OO (herança)

Link da video aula

  • 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)

Link da video aula 5 + 6

  • Routines
  • Waitgroup
  • Channels
  • Channels com Buffer
  • Select

Aula 6: Padrões de Concorrência

Link da video aula 5 + 6

  • Worker Pools
  • Generator
  • Multiplexador

Aula 7: Criar um serviço / API em Go

Link da video aula 7

  • Acesse o repositório golang-echo-apigithub para ver um exemplo de implementação de uma API feita em Go.

Principais links