Giter Site home page Giter Site logo

crgimenes / grupo-estudos-golang Goto Github PK

View Code? Open in Web Editor NEW
1.1K 106.0 151.0 6.66 MB

Material para estudo de Golang, tutoriais, videos e exemplos para quem quer aprender Go

Home Page: https://crg.eti.br/tags/grupo-estudos-golang/

License: Creative Commons Zero v1.0 Universal

Go 95.21% HTML 1.59% Shell 0.30% Makefile 0.62% C 1.40% C++ 0.71% Dockerfile 0.02% Lua 0.15%
golang go tutoriais

grupo-estudos-golang's Issues

Usar sistema de labels nas issues

Pensando em atrair mais pessoas para contribuir com o repositório acho legal começarmos usar o sistema de labels para issues, assim conseguimos organizar as melhorias e contribuições.

Dado que o conteúdo desse repositório é em pt-br nada mais justo de manter as labels em pt-br 😄

Exemplos usando play.golang.org direto na pagina

Inicialmente eu não separei o material em diretórios porque o numero de arquivos era pequeno e eu queria uma interação mais fluida e direta nos meus workshops, mas graças as contribuições o numero de arquivos esta crescendo e alguns exemplos ficariam melhor em múltiplos arquivos.

A ideia é criar um diretório para cada exemplo assim como hoje temos os arquivos exemplo.md e exemplo.go teríamos o diretório exemplo/ e dentro deles os arquivos

ficando:
exemplo/exemplo.md
exemplo/exemplo.go

RabbitMQ e Kafka

Será que rola uma demo consumindo uma fila seja em RabbitMQ ou Kafka usando GO?

Links no rodapé

Os links no rodapé para levar de uma pagina para outra parecem interessantes em um primeiro momento mas complica um pouco na hora de adicionar material novo ou mudar a ordem dos tutoriais.
A pergunta é vale a pena manter esses links?

Criar diretório de exemplos e revisar eles

Devemos revisar todos os exemplos e atualizar para o go.mod, além disso devemos ajustar cabeçalho do hugo conforme o último encontro dia 15/10/2020 substituindo + para -. Importante cada pull requeste aberto vincular com essa issue.

TODO:

  • Criar diretório de exemplos
  • array
  • ascii7
  • assets
  • autoupdate
  • beanstalk
  • botao_e_LED
  • build_tags
  • channel
  • context
  • cpp
  • crawler
  • crc
  • data-race
  • db
  • defer
  • doomfire
  • env
  • error
  • exec
  • for
  • funcoes
  • go_com_c
  • goaleatorio
  • goalfabeto
  • godoc
  • godolar
  • goenglish
  • goroutines
  • goroutines_waitgroup
  • goto
  • http
  • http_get
  • http_middleware
  • http_templates
  • interface
  • interface_closer
  • ioutil
  • json
  • lua
  • map
  • myfs
  • net
  • ola_mundo
  • package
  • plugin
  • ponteiros
  • protobuf
  • pwm
  • quine
  • ras
  • rascunhos
  • readline
  • reflection
  • regexp
  • reverse_proxy
  • select
  • serial
  • server
  • sessions
  • shadow
  • signals
  • slice
  • sliceXarray
  • smtp
  • struct
  • switch
  • syncMap
  • tcp
  • testing
  • time
  • unixDomainSocket
  • variaveis
  • wikipedia
  • xml
  • zeroconf
  • zip

Exemplos com package math

Quero colocar alguns exemplos usando o pacote math mas não sei qual a melhor ordem na lista de exemplos. Por enquanto eu inclui apenas dois exemplos de geração de senoides (senoide.go e senoide2.go)

Também preciso de ideias de outros exemplos interessantes.

reunificando contas do grupo

Pessoal,

Antigamente alguns recursos do grupo de estudos ficavam em contas minhas. Por exemplo, o canal do grupo no YouTube era o meu canal que ainda ficava na conta da minha empresa, o repositório, a pagina com artigos, etc. Para não misturar muito o conteúdo, eu acabei criando contas separadas e organizações separadas.

E dá trabalho ficar mantendo outras contas, páginas, etc. Por isso a algum tempo estou considerando reunificar esses recursos (paginas, repositórios, canal do YouTube, etc.) com os meus. 

Dessa forma eu teria apenas uma conta para gerenciar e não teria mais conflitos de, por exemplo, onde publicar um artigo de que eu realmente queria publicar no meu site, mas por ser Go casaria com o grupo de estudos. 

Todo o conteúdo continuara Creative Commons como é desde o início.  

Em outras palavras, foi um erro dividir os recursos e eu gostaria de reunificar, mas como isso é uma comunidade, eu gostaria de saber se alguém tem algo contra isso antes de proceder com a reunificação.

Interfaces

No ultimo evento o pessoal pediu para explicar interfaces, coisa que eu tinha deixado de fora assim como structs para evitar complexidade em um material que teoricamente devi ser básico para instalar o ambiente e iniciar em go para quem nunca viu nada... mas parece que crescer é inevitável, então é necessário bolar uma forma simples e didática de explicar interfaces e structs.

Corrigir sequência de links no rodapé

Organizar a sequencia de links no rodapé de acordo com o índice

ToDo

  • Exemplo Configurando deveria ter um link para Workspace e não para Ola mundo;
  • Exemplo Ola Mundo deveria ter um link para Workspace e não para Configurando`;
  • Exemplo Goroutines Waitgroup deveria retornar para Goroutines e não para Error;
  • Exemplo Select deveria retornar para WaitGroup e não para Goroutines;
  • Exemplo Http deveria ter o link para RegExp e não para Tratando Sinais;
  • Adicionar links dentro do exemplo de RegExp;
  • No exemplo de Tratando sinais, alterar link para retornar para exemplo de RegExp;

Talvez adotar um padrão para os links como: "tudo minúscula" ou "sempre começar com maiúscula"

Essa issue só faz sentido ser trabalhada de acordo com o definido em #26

Renomear repositório

Quero renomear o repositório, principalmente remover os traços
Go-Hands-On já não reflete tão bem a forma que material esta tomando.

Qual sua opinião? Sugestões de nomes?

Trocar nomes de variáveis para não parecerem palavras reservadas

Eu costumo escrever as variáveis em ingles e as vezes elas parecem palavras reservadas para quem não conhece a linguagem, por exemplo "result" não é uma palavra reservada.
Preciso percorrer os códigos e renomear as variáveis para normas nomes mais didáticos.

Converte em uma estrutura Hugo

Acho muito legal a ideia do repositório só peca por falta de melhor indexação no Google (atingir/ajudar mais pessoas).
Qual a opinião de você em converter (reestruturar) o conteúdo em um site Hugo?

Alguns exemplos precisam de uma explicação mais elaborada

O material foi escrito inicialmente para ser usado em workshops e por esse motivo alguns dos exemplos não funcionam bem se não tiver alguém explicando.

Precisamos elaborar melhor os textos para que eles funcionem para o leitor que não tem alguém a mão para explicar.

Entretanto quando for incluir mais explicações tente preservar a dinâmica de experimentar e testar rapidamente. Evite textos grandes e complicados, vá direto ao ponto.

Testes

Quando iniciei a escrita do material a ideia era um workshop de duas horas, e justamente por esse motivo muita coisa foi inicialmente deixada de fora inclusive testes. Agora com o material crescendo e novos conteúdo sendo adicionado por outras pessoas é importante termos testes até para reforçar essa boa pratica.

A ideia é termos um arquivo de teste para cada exemplo ficando:

exemplo/exemplo.md
exemplo/exemplo.go
exemplo/exemplo_test.go

Note que é necessário separar o material em diretórios como descrito na issue #21

dividir em diretórios

Estamos começando a adicionar conteudo mais avançado como acesso a banco de dados, filas, etc.

Talvez seja interessante dividir o conteudo em diretórios para não ficar tudo na raiz e agrupar de forma mais logica.

Exemplo:
/code para o core da linguagem
/db para bancos de dados
/queue para filas

Então ficaria /db/postgresql, /db/sqlite, /db/mysql, e assim por diante.

Na raiz de cada diretorio colocamos um README.md mais detalhado como já fazemos com os outros exemplos. Mas mesmo assim no README.md principal colocamos o caminho completo para cada entrada nos subdiretorios para o usário não ter que ficar navegando em subitens e termos um indice completo logo na primeira pagina.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.