Dev (Back & Front)ARTIGO

5 coisas que você provavelmente não conhece em Go

Provavelmente você já deve ter ouvido falar sobre Go. Golang (ou apenas Go); é uma linguagem de programação criada por funcionários do Google e foi lançada em código livre em novembro de 2009.

Provavelmente você já deve ter ouvido falar sobre Go. Golang (ou apenas Go); é uma linguagem de programação criada por funcionários do Google e foi lançada em código livre em novembro de 2009. Ela é uma linguagem compilada e com característica de programação concorrente. O projeto inicial da linguagem foi feito em setembro de 2007 por Robert GriesemerRob Pike e Ken Thompson.

A história conta que o trio que possuía mais de 30 anos de experiência com C, se encontrava descontente com as linguagens existentes e buscaram criar uma linguagem de programação que saciasse seus desejos. Acabou sendo considerada por muitos como a linguagem sucessora do C.

A verdade é que este artigo é uma pequena desculpa para apresentar e te instigar a brincar ou considerar o uso de Go. A linguagem é extremamente amigável, de fácil aprendizado e leitura. Apresenta também tempos curtos de compilação que são úteis para grandes projetos. Se você não conhece e tem interesse em aprender sobre a linguagem, recomendo visitar o site oficial, lá tem toda documentação, artigos sobre a linguagem, guide para instalação e outros…

Para este artigo, considere a versão atual da linguagem como 1.3.1, pois com o tempo muitas características e propriedades podem ter sido removidas ou melhoradas.

Aqui vão 5 coisas simples, mas que pouca gente sabe sobre o Go.

1. Toda documentação é acessível pela linha de comando

Isso é possível graças ao GoDoc, um projeto criado pelos desenvolvedores e mantenedores da linguagem, onde tem toda a documentação de Go e dos pacotes mais populares.

Você consegue acessá-lo pelo terminal, instalando a aplicação ou até mesmo acessar por HTTP para gerar o plain text de todos os dados ou realizar um query sobre ele.

Exemplo de busca usando HTTP:

$ curl -H 'Accept: text/plain' http://godoc.org/?q=sql

2. Nested structs

Nested structs são estrutura(s) escritas dentro de outra estrutura. Para um melhor entendimento, veja o funcionamento em JSON:

{"data": 
   {"children": [   
	 {
	    "data": {     
      	    "title": "The Go homepage",     
          "url":   "http://golang.org/"   }},
...
]}}

Agora em Go, usamos structs. Característica herdada do C:

type Item struct {     
	Title string     
	URL   string 
}  

type Response struct {     
	Data struct {         
		Children []struct {             
			Data Item         
		}     
	} 
}

3. go get suporta custom domains

Sim! Nas versões anteriores você podia rodar um go remote help para verificar isso. Com a versão atual já é algo natural. Se quiser confirmar, rode:

$ go get camlistore.org/pkg/netutil

4. Enviar e receber em uma mesma channel

Em Go, você consegue enviar uma estrutura channel de um contexto para outro sem precisar mudar ou aplicar o escopo da estrutura como global.

código

5. Mock do sistema de arquivos

Seu pacote usa e trabalha com sistema de arquivos, porém você não quer que seus testes usem o disco. É possível ”mockar” esses arquivos criando uma interface. Se preferir, também é possível realizar testes usando fixtures.

Se perdeu no significado de Mock? Objetos Mock são objetos que simulam o comportamento de objetos reais de forma controlada. São normalmente criados para testar o comportamento de outros objetos.

código1

6. O verdadeiro nome do mascote

mascote

 

Este artigo foi baseado em “10 things you (probably) don’t know about Go

Entusiasta do software livre. Contribuidor de projetos open source, sempre que pode divide o tempo para escrever artigos sobre tecnologias novas e contribuir em projetos de amigos. Curte perder horas em jogando ou andando de longboard em algum lugar bacana. Acompanhe no Twitter @raphamundi

Ver perfil