https://github.com/eneas-almeida/go
Repositório destinado a linguagem Go.
https://github.com/eneas-almeida/go
cep clean-architecture go golang gorm http injections sql tests transactions uuid validator wire
Last synced: about 1 year ago
JSON representation
Repositório destinado a linguagem Go.
- Host: GitHub
- URL: https://github.com/eneas-almeida/go
- Owner: eneas-almeida
- License: mit
- Created: 2023-07-21T15:56:52.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-08-02T23:11:40.000Z (over 2 years ago)
- Last Synced: 2025-01-18T03:27:14.005Z (about 1 year ago)
- Topics: cep, clean-architecture, go, golang, gorm, http, injections, sql, tests, transactions, uuid, validator, wire
- Language: Go
- Homepage:
- Size: 46 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go
Repositório destinado ao Go.
## Projetos
- [Go ViaCEP](./projects/go-viacep/)
- [Go clean architecture basic](./projects/go-clean-architecture-basic/)
- [Go agorithms](./projects/go-algorithms/)
- [Go access modifiers](./projects/go-access-modifiers/)
- [Go configs dot env](./projects/go-configs-dot-env/)
- [Go database](./projects/go-database/)
- [Go injections](./projects/go-injections/)
- [Go injections with Google wire](./projects/go-injections-with-google-wire/)
## Vantagens
- Criada pelo Google, relativamente a pouco tempo (2012, primeira versão);
- Os envolvidos são pessoas criadoras do UNIX, UTF-8 e V8;
- Nasceu nativamente pensando em Multithreading e Paralelismo;
- Aproveita ao máximo os recursos de multicore;
- Ótima para detectar race condition;
- Open source;
- Expressiva, eficiênte, limpa e concisa;
- Bibliotecas de testes nativas;
- Linguagem copilada;
- Copilação rápida, o que faz parecer que é interpretada;
- Garbage collection eficiênte;
- Estaticamente tipada;
- Copilação em um único arquivo binário;
- Portável para Linux, Windows e Mac;
- Utiliza ponteiros com maestria;
- Sintaxe reduzida;
- Possui uma forma padrão de desenvolvimento do código;
- Pacotes maduros para se trabalhar com http;
- Proporciona um deploy simples;
## Download, instalação e configuração
- **Download oficial:** https://go.dev/dl/
```bash
# Remove o diretorio se existir, e extrai o arquivo diretório /usr/local
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.20.6.linux-amd64.tar.gz
# Cria a pasta onde irá ficar os pacotes
mkdir $HOME/go
# Edita o zshrc
nano ~/.zshrc
# Insere
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
# Atualiza o zshrc
source ~/.zshrc
# Verifica a versão
go version
```
## Comandos
```bash
# Exibe a versão do go
go version
# Exibe as variáveis do go
go env
# Inicializa um módulo
go mod init
# Baixa as dependências de um projeto
go mod tidy
# Salva as dependências localmente
go mod vendor
# Cria o build da aplicação de acordo com a variável GOOS do go env
go build
# Cria um build para windows
GOOS=windows go build
```
## Pacotes
```bash
# UUID
go get github.com/google/uuid
# Crypto
go get golang.org/x/crypto
# Viper: variáveis de ambientes
go get github.com/spf13/viper
# Driver do SQLite
go get github.com/jinzhu/gorm/dialects/sqlite
# Driver do Mysql
go get -u github.com/go-sql-driver/mysql
```
## Ferramentas úteis
- [Converte JSON to struct](https://mholt.github.io/json-to-go/)
## Apis externas
- [ViaCEP](https://viacep.com.br/)
## Forks
- [Go concorrência](https://github.com/venzel/concorrencia-go)
- [60 dias com Go](https://github.com/venzel/60-days-of-go)