An open API service indexing awesome lists of open source software.

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.

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)



Profile
Made with 💙 by Enéas Almeida