Skip to content

Instituto-Atlantico/aulas-golang

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 92.2%
  • Dockerfile 7.8%