Skip to content

Latest commit

 

History

History
106 lines (72 loc) · 4.75 KB

README.md

File metadata and controls

106 lines (72 loc) · 4.75 KB

Go Em Exemplos

Este repositório contém conteúdos e ferramentas de build para o site Go Em Exemplos, um site que ensina Go com exemplos comentados.

Vista Geral

O site Go Em Exemplos é construído extraindo o código e os comentários dos arquivos no diretório examples e, utilizando como base os templates, cria uma versão estática no diretório public. Os programas utilizados para este processo de construção podem ser encontrados no diretório tools, juntamente com as dependências especificadas no arquivo go.mod.

O diretório public pode ser servido por qualquer sistema de conteúdo estático. O site de produção do Gobyexample.com, por exemplo, utiliza S3 e CloudFront. A versão em Português Brasileiro é servida pelo Github Pages.

Building

Para realizar o build do site, é necessário ter Go instalado. Execute:

$ tools/build

Ou para realizar o build continuamente em um loop:

$ tools/build-loop

Para hospedar o site localmente:

$ tools/serve

É possível acessar pela porta 8000 (http://127.0.0.1:8000/) no navegador.

Publicação

Para fazer upload do site utilizando AWS:

$ export AWS_ACCESS_KEY_ID=...
$ export AWS_SECRET_ACCESS_KEY=...
$ tools/upload

Licenças

O copyright pertence ao Mark McGranaghan e seu uso está licenciado sob a Creative Commons Attribution 3.0 Unported License.

O copyright do mascote Gopher pertence ao Renée French e está licenciado sob a Creative Commons Attribution 3.0 Unported License.

Traduções

Traduções dos contribuidores do GoByExample estão disponíveis em:

Thanks

Agradecimento ao Jeremy Ashkenas pelo Docco, que inspirou este projeto.

FAQ

Encontrei um problema com os exemplos; o que eu faço?

Ficamos felizes em corrigir problemas e aceitar contribuições! Por favor, submeta um issue ou envie uma Pull Request. Leia o arquivo CONTRIBUINDO.md para mais detalhes.

Qual versão de Go é necessária para executar os exemplos?

Graças à retrocompatibilidade da linguagem Go, é esperado que a grande maioria dos exemplos funcinoem nas versões mais recentes de Go, bem como nas versões menos atualizadas.

Considerando isto, alguns exemplos demonstram recursos recém implementados; portanto, é recomendado executar com as versões oficiais mais recentes. (Veja o histórico de releases para mais detalhes).

Quando executo o exemplo em minha máquina, a ordem do output é diferente. Algo está errado?

Alguns dos exemplos demonstram execução de código concorrente, o qual tem uma ordem de execução não determinística. Tudo depende de como a Execução (runtime) do Go organiza as goroutines. Isto pode depender do Sistema operacional, arquitetura do CPU e até de versão de Go.

De maneira similar, exemplos que iteram sobre maps podem produzir itens em ordens diferentes da que se está obtendo na sua máquina. Isto acontece porque a ordem de iteração nos maps de Go não são específicas e não tem garantia de serem iguais às iterações anteriores ou posteriores.

Isto não significa que há algo de errado com o exemplo. Tipicamente, o código neste exemplos não são sensíveis à ordem do output; se o código é sensível à essa ordem, provavelmente trata-se de um bug, então sinta-se livre para reportar.