DevForge

Go (Golang)

Linguagem compilada, concorrente e eficiente da Google, ideal para microsserviços, CLI tools e sistemas de alta performance.

⚡ Instalação automatizada

Linux / WSL
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/go/install.sh | bash -s 1.23
Windows PowerShell (Admin)
Set-ExecutionPolicy Bypass -Scope Process; iex "& { $(irm https://rafaelferreira2312.github.io/devforge/scripts/go/install.ps1) } 1.23"
macOS (Homebrew)
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/go/install.sh | bash -s 1.23

Os scripts configuram GOPATH, GOROOT e adicionam Go ao PATH automaticamente.

Requisitos mínimos

  • CPU: 2+ núcleos (x86_64 ou ARM64)
  • RAM: 1 GB (recomendado 2 GB para projetos maiores)
  • Armazenamento: 2 GB SSD
  • SO: Ubuntu 20.04+, Debian 11+, RHEL 8+, Windows 10/11, macOS 11+

Hardware recomendado (Dev)

  • Notebook: Dell XPS, MacBook Pro M1/M2, Lenovo ThinkPad
  • CPU: i5 / Ryzen 5 ou superior
  • RAM: 8 GB (16 GB para compilações pesadas)
  • SSD NVMe 256 GB+

🛠️ Stack recomendada

Ferramentas essenciais

  • Gerenciador de módulos: go modules (built-in)
  • Framework web: Gin / Echo / Fiber
  • ORM: GORM / Ent
  • Testes: testing (built-in) / testify
  • Ferramentas: golangci-lint, delve (debugger)

Extensões VSCode

  • Go (Google)
  • Go Test Explorer
  • Go Outliner
  • Prettier - Code formatter
  • REST Client

Docker (opcional)

docker run -it --rm golang:1.23-alpine go version

🔧 Troubleshooting (diagnósticos reais)

❌ Erro: "go: command not found"

Causa: Go não instalado ou não está no PATH.
Solução: Verifique com which go ou reinstale usando o script DevForge.

⚠️ Erro: "go.mod file not found"

Causa: Você não está em um módulo Go.
Solução: Execute go mod init nomedomodulo para criar o go.mod.

🐘 Erro: "build constraints exclude all Go files"

Causa: Arquivos Go com build tags que não correspondem ao SO/arquitetura atual.
Solução: Verifique as tags // +build no início dos arquivos.

⚠️ GOPATH não configurado corretamente

Causa: Go modules tornam o GOPATH obsoleto, mas ainda pode causar confusão.
Solução: Use export GO111MODULE=on para forçar o uso de módulos.

Diagnóstico automático:

go version && go env GOPATH && go env GOROOT && echo "PATH: $PATH" | tr ':' '\n' | grep -i go && which go

Este comando verifica: versão do Go, GOPATH, GOROOT, PATH e localização do binário go.

⚙️ Comandos Go úteis

go mod init example.com/meumodulo – inicia um novo módulo
go get github.com/gin-gonic/gin – adiciona dependência
go build – compila o programa atual
go run main.go – compila e executa
go test ./... – executa todos os testes
go mod tidy – limpa dependências não usadas
go fmt ./... – formata todo o código

🔧 Ferramentas Go populares

go install golang.org/x/tools/gopls@latest – LSP para VSCode
go install github.com/go-delve/delve/cmd/dlv@latest – debugger
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest – linter
go install github.com/cosmtrek/air@latest – live reload

⚠️ IMPORTANTE - Como executar os scripts corretamente

Os scripts abaixo funcionam em Windows, Linux e macOS. Siga as instruções específicas do seu sistema:

WINDOWS (PowerShell)
# ERRO COMUM: "arquivo não assinado" ou "execução de scripts desabilitada" # SOLUÇÃO 1: Executar com bypass (recomendado) powershell -ExecutionPolicy Bypass -File "C:\caminho\script.ps1" # SOLUÇÃO 2: Baixar e executar direto (pode ter erro de codificação) powershell -ExecutionPolicy Bypass -Command "iex (irm https://.../script.ps1)" # SOLUÇÃO 3: Habilitar execução permanentemente (como Administrador) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Se houver erros de acentuação (caracteres estranhos): O script ainda funciona, apenas a saída visual pode ficar distorcida
LINUX / WSL (Bash)
# ERRO COMUM: "permission denied" ou "comando não encontrado" # SOLUÇÃO 1: Dar permissão de execução (obrigatório) chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Executar via curl (baixar e executar direto) curl -fsSL https://.../script.sh | bash # SOLUÇÃO 4: Se der erro de permissão, use sudo (cuidado!) sudo chmod +x script.sh && sudo ./script.sh # Se houver erros de permissão: Execute 'ls -la script.sh' para verificar permissões atuais
macOS (Terminal / Zsh)
# ERRO COMUM: "permission denied" ou "operation not permitted" # SOLUÇÃO 1: Dar permissão de execução chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Se der erro de "quarentena" (arquivo baixado da internet) xattr -d com.apple.quarantine script.sh # SOLUÇÃO 4: Executar via curl curl -fsSL https://.../script.sh | bash # Se erro persistir: Vá em Preferências do Sistema → Segurança e Privacidade → Permitir execução

Dicas importantes:
Windows: Se aparecerem caracteres estranhos (ex: "�" ou "ção"), ignore - o script funciona normalmente. Para evitar, baixe o script localmente e execute.
Linux/macOS: Sempre use chmod +x antes de executar scripts baixados.
WSL (Windows): Siga as instruções do Linux, mas certifique-se de que o script está dentro do sistema de arquivos do Linux (não no /mnt/c/).

📜 Scripts prontos

Scripts verificados no Ubuntu 22.04/24.04, Debian 12, macOS 13+ e Windows 10/11.

❓ Perguntas frequentes

O que é GOPATH e ainda preciso usá-lo?

Desde Go 1.11, os módulos (go.mod) são o padrão. O GOPATH não é mais obrigatório, mas ainda é usado como cache de módulos. O script do DevForge configura o GOPATH automaticamente.

Como gerenciar múltiplas versões do Go?

Use o gvm (Go Version Manager) ou o go get golang.org/dl/go1.23.0 para instalar versões específicas.

Qual versão do Go devo usar em produção?

Sempre use a versão estável mais recente (1.23+). O time do Go mantém compatibilidade retroativa, então a atualização é segura.

Como compilar para múltiplos SO/arquiteturas?

Use variáveis de ambiente: GOOS=linux GOARCH=amd64 go build para Linux, GOOS=windows GOARCH=amd64 go build para Windows.