Mudanças entre as edições de "Garoa Gophers"
Linha 42: | Linha 42: | ||
=== 5º encontro: Como aprender Go ou qualquer outra linguagem === |
=== 5º encontro: Como aprender Go ou qualquer outra linguagem === |
||
− | Vamos |
+ | Vamos experimentar a [https://speakerdeck.com/ramalho/como-aprender-qualquer-linguagem-de-programacao-em-4-slides metodologia do prog. Gerald Sussman] do MIT, junto com [https://blog.golang.org/examples Testable Examples] para estudar Go, fazendo a ponte entre o [https://tour.golang.org/welcome/1 Tutorial] de alto nível, as idéias de [https://golang.org/doc/effective_go.html Effective Go] e as minúcias da [https://golang.org/ref/spec Language Specification]. |
=== Xº encontro: Runefinder na rede === |
=== Xº encontro: Runefinder na rede === |
Edição das 19h26min de 28 de setembro de 2015
Garoa Gophers é o grupo de estudos da linguagem de programação Go no Garoa Hacker Clube.
Formato
Encontros semanais às 3as-feiras, 19:30, na sede do Garoa Hacker Clube, a partir de 4/ago/2015.
Temas
A serem decididos pelos participantes...
1º encontro: Hello World
- Experimentar as diferentes formas de rodar um programa, gerando um binário da forma convencional ou usando
gorun
como se fosse uma linguagem de scripting. Vamos experimentar também outras ferramentas de linha de comando, tipogofmt
etc.- Fizemos experimentos e melhorias nos exemplos de download de imagens: https://github.com/garoago/flags
- Aprendemos que é necessário setar
$GOBIN
para compilar individualmente cada programa quando existem vários programas compackage main
no mesmo diretório (isso não é recomendado em código "profissional", mas para experimentos rápidos é útil poder ter vários programas no mesmo package)
- Discutir as referências existentes para estudar, e definir um plano para os próximos encontros.
- Resolvemos fazer encontros semanais enquanto estamos começando, e depois rediscutir a periodicidade se for o caso.
2º encontro: A Tour of Go
Assistir e discutir o vídeo de Russ Cox, A Tour of Go (34 min.)Estudar os tipos básicos da linguagem, com foco em como cada tipo é alocado em memória e associado a variáveis: como valores, ou como referências. Ver essa discussão. Qual a melhor explicação correta e clara para essas questões?Implementar checagem de erro robusta em uma nova versão do programa de download de imagens.
Não fizemos nada do que planejamos, mas fizemos algo mais legal: começamos a desenvolver o runefinder na base do rodízio (cada um 10 minutos no teclado, como se fosse um coding dojo).
3º encontro: Continuação do runefinder
Repositório de código: runefinder2
- Andrews Medina mostrou como usar o
gocheck
- criamos alguns tipos próprios, com métodos:
RuneSlice
eRuneSet
- implementamos a busca com várias palavras
4º encontro: Estudo de caso - Tsuru
Andrews Medina vai falar sobre o projeto Tsuru, um PaaS Open Source, extensível, escrito em Go, criado pelo time do Andrews na Globo.com e usado em grandes operações além da própria Globo.com.
5º encontro: Como aprender Go ou qualquer outra linguagem
Vamos experimentar a metodologia do prog. Gerald Sussman do MIT, junto com Testable Examples para estudar Go, fazendo a ponte entre o Tutorial de alto nível, as idéias de Effective Go e as minúcias da Language Specification.
Xº encontro: Runefinder na rede
- salver índice invertido como uma slice de mapas (nosso tipo
RuneSet
), para simplificar o código da funçãofindRunes
que é usada mais vezes que abuildIndex
- salvar índice invertido e mapa de nomes em um arquivo gob para evitar ler o UnicodeData.txt toda vez (se bem que está bem rapidinho da forma atual)
- refatorar para uma biblioteca e então...
- implementar interface telnet
- implementar interface Web
Pré-requisitos
- Saber programar em alguma linguagem.
- Ter vontade de aprender Go com autonomia e o apoio de um grupo.
- Se quiser colocar a mão na massa, trazer notebook com o compilador Go instalado e seu editor favorito configurado. Veja Golang/Ambiente de trabalho.
Como participar
Basta aparecer na sede do Garoa. Não precisa se inscrever.
Referências
- Organização coletiva no Github para colocar exemplos: https://github.com/garoago
- Material de estudos e exemplos: https://github.com/gobridge