Introdução
  • Visão Geral do Curso
  • Baixando a Apostila
  • Links: Apostila & Repositório
  • Go: História e Características
Configuração do Ambiente
  • Windows e Mac
  • Linux
Fundamentos
  • Ambiente GO: GOROOT & GOPATH
  • Atualização da execução do GO
  • Primeiro Programa em Go
  • Explorando os Comandos do Terminal
  • Constantes e Variáveis
  • Imprimindo Valores no Console
  • Tipos Básicos
  • Tipos Básicos: Os Zeros
  • Conversão entre Tipos Básicos
  • Funções Básicas
  • Operadores Aritméticos
  • Operadores de Atribuição
  • Operadores Relacionais
  • Operadores Lógicos
  • Operadores Unários
  • Operador Ternário???
  • Ponteiros em Go
Estruturas de Controle
  • If/Else
  • If/Else If
  • If com Init
  • Laço For
  • Switch #01
  • Switch #02
  • Resposta do Desafio Switch
  • Switch #03
Array/Slices/Map
  • Trabalhando com Arrays
  • Percorrendo Arrays com For (Range)
  • Conhecendo o Slice
  • Construindo Slices com Make
  • Usando Mesmo Array Interno
  • Slice: Usando Append e Copy
  • Trabalhando com Maps #01
  • Trabalhando com Maps #02
  • Maps Aninhados
Funções
  • Funções Básicas
  • Pilha de Funções
  • Retorno Nomeado
  • Armazenar Funções em Variáveis
  • Passar Função como Parâmetro
  • Funções Variáticas #01
  • Funções Variáticas #02
  • Closure
  • Recursividade
  • Recursividade (Simples)
  • Defer
  • Passando Ponteiro para Função
  • Função Init
Sistema de Tipos
  • Usando Struct
  • Struct Aninhada
  • Métodos em Structs
  • Pseudo-Herança em Structs
  • Tipo Personalizado
  • Usando Interfaces #01
  • Usando Interfaces #02
  • Composição de Interfaces
  • Tipo Interface
  • Convertendo uma Struct em JSON
Pacotes
  • Executando Múltiplos Arquivos no Windows
  • Pacotes & Visibilidade
  • Criando um Pacote Reutilizável
  • Criando & Instalando um Pacote do Github
Concorrência
  • Concorrência vs Paralelismo
  • Curiosidade: Número de CPUs
  • Conhecendo a Goroutine
  • Conhecendo o Channel (Canal)
  • Usando Goroutine e Channel
  • Cuidado com os Deadlocks
  • Channel com Buffer
  • Channel: Usando Range e Close
  • Padrão de Concorrência: Generators
  • Criando um Pacote Reutilizável
  • Padrão de Concorrência: Multiplexador
  • Estrutura de Controle: Select
  • Multiplexador com Select
Testes
  • Teste Unitário Básico
  • Criando Dataset para os Testes
  • Tipo de Arquitetura e os Testes
  • Gerando Relatório de Cobertura de Testes
Banco de Dados
  • Orientações para Instalação do MySQL
  • Criando o Schema e a Tabela
  • Executando Inserts
  • Executando Inserts em uma Transação
  • Executando Update e Delete