Golang: primeiros passos

Compartilhe

Compartilhar no facebook
Compartilhar no google
Compartilhar no twitter
Compartilhar no linkedin

Atualmente tenho brincado um pouco com essa linguagem legal e divertida entenda o porquê.

Até hoje não programei uma linha em C/C++, porém, por gostar muito de tecnologia, venho ouvindo ao longo desse tempo falarem um pouco sobre Golang, mas o que é isso???

Comecei a pesquisar e querer aprender mais sobre a linguagem e nessa trajetória encontrei algumas dificuldades na qual acho que todos iniciantes encontram, sendo assim resolvi escrever esse post para demonstrar como foi meu caminho para montar um projeto que atendesse as minhas necessidades.

Primeiro, não sabia nada sobre Golang então resolvi pesquisar, assistir video aulas e ler diversos artigos.

Comecei com um curso no Alura, não muito extenso, mas que apresentava as sintaxes básicas e alguns métodos de linguagem, lá você ira desenvolver uma pequena aplicação que monitora sites para saber se os mesmos estão realmente online.

Depois, pesquisando um pouco mais, encontrei um site incrível: o GolangBot, com ótimas explicações sobre diversos assuntos, fazendo você utilizar todos os recursos de linguagem e praticar cada um, de forma isolada.

Alguns dos artigos mais interessantes encontrados no GolangBot: Goroutines,ChannelsPanic and Recover.

Vale também fazer o Tour of Golang com pequenas lições onde você vai aprendendo mais sobre a linguagem.

Agora vamos as pequenas dicas que vão lhe ajudar muito de começo.

Dicas:

— Go Path: Há muitos sites e posts explicando sobre o GoPath mas ainda assim, é algo chato de se entender e configurar, então vamos lá:

Na própria DOC, do Golang explica como definir corretamente as variáveis, mas com a troca de versões e por não entender em que pasta criar seus projetos, a confusão começa.

Na minha máquina sempre crio uma pasta chamada go no meu workspace, assim no arquivo .bashrc do Linux, insira essas variáveis:

export GOROOT=/usr/local/go — local onde esta minha pasta go
export GOPATH=$HOME/go — caminho default dos meus projetos go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin — .exe do go

Seguindo um dos padrões de Go, crio meu projeto na pasta github.com, e então, no meu usuário ficando assim:

/go/src/github.com/jrfarias/meu-projeto

Aqui que mora a pegadinha, para executar meu projeto que está dentro dessa pasta, devo alterar o GOPATH para esse caminho exato, fazendo:

export GOPATH= /home/go/src/github.com/jrfarias/meu-projeto

— Gerenciamento de pacotes: como pretendia utilizar algumas bibliotecas, comecei a procurar algum gerenciador de pacotes em go. A princípio, encontrei o Glide, porém eles indicam o gerenciador padrão do Go, então fui para o Dep, por ser bem simples de usar e com uma ótima documentação de apoio.

— Go Patternsesse repositório no github contém links para o próprio readme, direcionando tópicos e patterns especifícos.

— Web Appesse gitbook, possui todos os passos para criar uma aplicação web em golang.

— Go Skeletonum microservice de exemplo em go

O que realmente gostei em GO ?

Open source first — Sim, a própria linguagem prega que todo código/projeto desenvolvido em Go, seja feito dentro do caminho.

go/src/github.com/jrfarias/meu-projeto

Documentação — Toda a documentação feita em Golang é igual para todas as bibliotecas. Por exemplo: DOC , assim facilita muito a leitura porque toda a documentação segue o mesmo padrão e isso ajuda muito.

Concorrência — um dos principais motivos da criação do Golang foi a concorrência entre threads, tendo no golang conhecidas GoRoutines.

Comunidade — uma coisa interessante da comunidade go é o fato dela ser global com apenas um slack com canais e pessoas de vários locais do mundo, dispostas a ajudar em qualquer dúvida da linguagem até os próprios criadores da linguagem estão por lá. Em são paulo temos um meetup interressante também.

Algumas lib’s que utilizei em GO:

Mux — A powerful URL router and dispatcher for golang.

GIN — HTTP web framework written in Go

GORM — The fantastic ORM library for Golang

Junior Farias

Junior Farias

Desenvolvedor Frontend no iFood

Deixe um comentário

%d blogueiros gostam disto: