Coleção de exemplos de código em Go para casos de uso comuns.
Este repositório contém vários exemplos de código em Go demonstrando casos de uso comuns, desde o básico "Hello World" até operações mais avançadas como manipulação de arquivos, concorrência, HTTP e manipulação de JSON.
- Go instalado (versão 1.18+ recomendada)
-
Clone este repositório:
git clone https://github.com/tiagonpsilva/go_hello_world.git cd go_hello_world -
Execute um exemplo específico:
go run basic/hello.go
-
Ou você pode compilar e executar:
go build -o hello basic/hello.go ./hello
-
Para executar os testes:
cd testing go test -v go test -bench=. # Executa benchmarks go test -cover # Verifica cobertura de testes
-
basic/: Conceitos básicos da linguagemhello.go: Exemplo clássico Hello Worldvariables.go: Declaração e tipos de variáveiscontrol-flow.go: Estruturas de controle (if, for, switch)functions.go: Funções e retornos múltiplos
-
data-structures/: Estruturas de dados comunsarrays.go: Arrays e slicesmaps.go: Mapas (dicionários)structs.go: Estruturas (structs)interfaces.go: Interfaces e polimorfismo
-
concurrency/: Concorrência e paralelismogoroutines.go: Goroutines básicaschannels.go: Comunicação via channelswaitgroups.go: Sincronização com WaitGroupsmutex.go: Exclusão mútua com Mutex
-
error-handling/: Tratamento de erroserrors.go: Exemplos de criação e manipulação de erros
-
file-handling/: Manipulação de arquivosread-file.go: Leitura de arquivoswrite-file.go: Escrita em arquivosjson-handling.go: Codificação e decodificação JSON
-
web/: Programação websimple-server.go: Servidor HTTP simplesrest-client.go: Cliente REST
-
logging/: Exemplos de logginglogger.go: Como usar logs em Go (pacote log padrão)
-
testing/: Exemplos de testes unitárioscalc.goecalc_test.go: Exemplo básico de testes unitáriosservice.goeservice_test.go: Exemplo de mocks em testes
Todos os exemplos foram testados e verificados quanto à sua execução. Os exemplos seguem boas práticas de Go e incluem:
- Código comentado para facilitar o entendimento
- Exemplos de técnicas de logging para melhor observabilidade
- Tratamento adequado de erros seguindo idiomas do Go
- Testes unitários para validação de componentes
- Uso de mocks para testes isolados
Contribuições são bem-vindas! Sinta-se à vontade para abrir um pull request com novos exemplos ou melhorias.
- tiagonpsilva