Pular para o conteúdo principal

Conteúdo programático

Módulo 01 – Introdução e fundamentos da linguagem

  • História e propósito do Go
  • Características da linguagem (simplicidade, performance, concorrência)
  • Instalação, workspace, go mod
  • Estrutura básica de um programa
  • Tipos primitivos, funções, variáveis, constantes

📌 Laboratório

  • Hello world, manipulação de variáveis e tipos, primeiro programa com go run
A diaper brown gopher

Módulo 02 – Estruturas de controle e tipos compostos

  • if, for, switch, defer
  • Arrays, slices, maps
  • Structs e tags de struct
  • Ponteiros (conceito e aplicação)

📌 Laboratório

  • Implementar um CRUD (Create, Read, Update e Delete) em memória usando slices e maps
Three gophers in a meeting, where one is explaining graphics on a slate while the others watch sitting on a round table

Módulo 03 – Funções, métodos e interfaces

  • Funções com múltiplos retornos
  • Funções anônimas e closures
  • Métodos em structs
  • Interfaces e duck typing
  • Boas práticas e princípios de design idiomático em Go

📌 Laboratório

  • Refatorar o CRUD usando interfaces para repositórios
A gopher designing a flow diagram

Módulo 04 – Tratamento de erros

  • Filosofia do Go: erros explícitos
  • Padrão error, errors.New, fmt.Errorf
  • Wrapping e unwrapping com errors.Is, errors.As
  • Pacote log e log/slog

📌 Laboratório

  • Criar funções com tratamento de erros e logging estruturado
A clumsy gopher, wearing a brown sweatshirt and dark green pants, carrying some roles and having a coffee

Módulo 05 – Concorrência com goroutines e channels

  • Goroutines: o que são e como usar
  • Channels (unbuffered, buffered)
  • select, sync.WaitGroup, sync.Mutex
  • Padrões de concorrência em Go

📌 Laboratório

  • Criar um worker pool para processamento concorrente de tarefas
A super strong gopher with a tattoo gourthines written on the chest

Módulo 06 – Pacotes, módulos e organização do código

  • Estrutura de pacotes idiomática
  • Convenções de projeto (cmd, internal, pkg)
  • go mod e versionamento
  • Gerenciamento de dependências com go get, replace

📌 Laboratório

  • Organizar o projeto CRUD em múltiplos pacotes com go mod
A brown gopher with glasses and white shirt, organizing boxes in a warehouse

Módulo 07 – Testes e qualidade de código

  • Testes com testing
  • Testes de unidade e integração
  • Testes com mocks (testify, gomock)
  • Benchmarks e profiling
  • Ferramentas: go vet, golint, staticcheck

📌 Laboratório

  • Criar testes unitários e de integração para o CRUD com cobertura de erro
A gopher with a box of small pieces and a paper where it fits them with the name Schema.go written at the top

Módulo 08 – Web APIs com net/http e Gin

  • Servidor HTTP com net/http
  • Middlewares e handlers
  • Framework Gin: roteamento, binding, validação
  • JSON, status codes e headers

📌 Laboratório

  • Implementar uma API RESTful com Gin + validação
A gopher by programming on a computer, supported by a box full of books

Módulo 09 – Persistência com banco de dados

  • Drivers e database/sql
  • ORM com gorm
  • Migrations com golang-migrate
  • Repositórios e testes de integração com DB

📌 Laboratório

  • Persistir o CRUD em banco real (PostgreSQL por exemplo)
A Gopher teaching SQL class in a board, with the elephant, symbol of the PostgreSQL next door

Módulo 10 – Deploy, observabilidade e boas práticas

  • Build com go build, cross-compilation
  • Docker com Go
  • Logging estruturado (slog, zap)
  • Tracing com OpenTelemetry
  • Linter, cobertura, documentação automática com godoc

📌 Laboratório

  • Containerizar o serviço e expor métricas/trace/logs
A blue gopher with detective hat by analyzing a note with a magnifying glass