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.
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.
Para realizar o build do site, é necessário ter Go instalado. Execute:
$ tools/buildOu para realizar o build continuamente em um loop:
$ tools/build-loopPara hospedar o site localmente:
$ tools/serve
É possível acessar pela porta 8000 (http://127.0.0.1:8000/) no navegador.
Para fazer upload do site utilizando AWS:
$ export AWS_ACCESS_KEY_ID=...
$ export AWS_SECRET_ACCESS_KEY=...
$ tools/uploadO 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 dos contribuidores do GoByExample estão disponíveis em:
- Chinês por gobyexample-cn
- Tcheco por martinkunc
- Francês by keirua
- Italiano pela comunidade Go Italian
- Japonês por spinute
- Coreano por mingrammer
- Russo por badkaktus
- Espanhol pela comunidade Go Mexico
- Ucraniano por butuzov
- Português Brasileiro por lcslitx
Agradecimento ao Jeremy Ashkenas pelo Docco, que inspirou este projeto.
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.
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).
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.