Corra, Gopher, corra! - sobre o que falaremos na GolangConf

Prometemos de 5 a 6 razões para mudar para o Go, e aconteceu! Na conferência GolangConf, que é inteiramente dedicada ao Go, em 7 de outubro, haverá 5 relatórios marcados "Mudando para o Go" para aqueles que estão apenas começando ou usando esse idioma em seus projetos.

Mas isso é apenas o começo. Desde a primeira vez, conseguimos montar um programa muito forte e diversificado que atende às necessidades de três categorias de participantes: desenvolvedores profissionais de Go; aqueles que estão apenas mudando para Go; engenheiros de infraestrutura e usuários de ferramentas escritas no Go.



O programa da conferência inclui 21 relatórios , uma sessão de relatórios de blitz e mitaps. A qualquer momento, os convidados da conferência poderão escolher de 3 a 4 tópicos diferentes e encontrar algo interessante para si. Até acho que o problema da escolha e a incapacidade de romper os fluxos serão mais relevantes (é bom que tudo esteja no vídeo posteriormente). Ao mesmo tempo, os tópicos relevantes para uma variedade de especialistas serão discutidos em diferentes salas.

Dedicaremos muita atenção às práticas recomendadas para trabalhar com o Go e qualquer código em geral. Discutiremos questões de desempenho e várias coisas graves com esquilos experientes. Para os engenheiros de infraestrutura, também haverá alguns relatórios interessantes. O bloqueio de maneiras não padronizadas de usar o Go não deixará ninguém indiferente. Além disso, haverá até dois relatórios sobre o desenvolvimento do front-end no Go, ambos de oradores estrangeiros.

Podemos dizer que o frontend é uma direção experimental. A produção front-end nem sempre é escrita no Go, mas o WebAssembly é experimentado em pequenos projetos pessoais. Os palestrantes que convidamos poderão mais do que apenas descrever como começar a usar o WebAssembly. Esses são relatórios detalhados, baseados na experiência pessoal, que mostram que a vida pode ser feita no WebAssembly e como usá-lo em seus projetos.

Alto-falantes GolangConf


O comitê do programa abordou a seleção de tópicos e palestrantes com muito rigor. A maioria dos nossos palestrantes é conhecida na comunidade Go, mas, ao mesmo tempo, há novos rostos. Quando de tempos em tempos nas conferências as mesmas pessoas falam, é um pouco chato. Quero ver um novo visual, novos desafios, novos palestrantes. Conseguimos atrair sangue fresco, e eles também têm relatórios muito interessantes com base na experiência prática. Por exemplo, aguardo com expectativa o relatório de Ksenia Yakil.

A seleção de palestrantes estrangeiros foi quase mais difícil, porque havia muitas aplicações deles. Mas sabemos que pode ser difícil para o nosso público ouvir muitos relatórios em inglês. 8 a 9 relatórios por dia já são uma grande quantidade de novas informações e, quando você precisa gastar um esforço extra devido ao idioma para entendê-las, fica muito difícil. Portanto, temos apenas três relatórios em inglês, mas eles são os mais.

De fato, a comunidade Go global é muito amigável e pronta para compartilhar experiências. Recebemos uma resposta muito boa quando abrimos a Call for Papers no PaperCall.io e anunciamos uma conferência na comunidade internacional Go no Slack e no Twitter. É verdade que não conseguimos atrair superestrelas da comunidade mundial, o calendário de eventos está marcado para o próximo ano. Mas temos planos de longo alcance para o próximo GolangConf.

Este ano, teremos 21 relatórios de turma. Aqui vou falar sobre vários deles e, para obter informações e programação completas, acesse o site da conferência.

Análise de similaridade de código Go aplicada


Iskander Sharipov (VKontakte) trabalhou no passado em um compilador Go e em um ajuste de terceiros para ele - analisadores estáticos e utilitários para refatoração. Ele agora planeja portar muitas das ferramentas criadas para o Go to ecossistema PHP. Você provavelmente pode perguntar sobre essa colossal experiência de Iskander à margem, e o relatório dele será principalmente de interesse para aqueles que pensam nas questões de processamento do código Go:

  • Como encontrar funções e métodos duplicados na sua base de código.
  • Evitando reinventar a funcionalidade da biblioteca padrão Go.
  • Como simplificar a análise do código Go no nível sintático.

A chave para responder a essas perguntas é a normalização dos programas Go, e é sobre isso que será discutido no relatório. Mas não em palavras, mas na prática - considere uma biblioteca para normalizar o código Go e várias de suas aplicações práticas.

Comece com o WebAssembly


O colaborador da Go Johan Brandhorst virá a Moscou para nos apresentar o WebAssembly e mostrar como começar o WebAssembly e o Go. O WebAssembly é suportado em navegadores há quase dois anos e foi incluído no Go como um experimento desde a versão 1.11. Talvez ele possa substituir o JavaScript no navegador e se tornar a mesma linguagem, o código no qual pode funcionar em qualquer lugar.

Após essa conversa, os novatos aprenderão como usar o Go with WebAssembly, o que essas tecnologias podem fazer agora e o que será possível no futuro.

Escalando conexões WebSocket Go


Existem algumas ótimas bibliotecas WebSocket no ecossistema Go. Parece - pegue e faça seu projeto, tendo como base uma solução pronta. No entanto, vários problemas urgentes terão que ser resolvidos independentemente, por exemplo:

  • como dimensionar as conexões do usuário;
  • o que fazer com os usuários que não podem se conectar via WebSocket;
  • como gerenciar a vida útil de uma conexão permanente;
  • o que fazer com a perda de mensagens com desconexões de curto prazo do usuário.

E finalmente - você terá que escrever seu próprio protocolo sobre o WebSocket e os clientes que o implementam em todas as plataformas de clientes modernas. Você está pronto para isso?

Esses problemas já estão sendo tratados pela biblioteca de código-fonte Centrifuge, que adiciona muitos recursos úteis no topo do Gorilla WebSocket para a criação de aplicativos em tempo real. O autor deste projeto, Alexander Emelin, falará na GolangConf. Alexander ensinará técnicas e práticas que permitem que você trabalhe efetivamente com um grande número de conexões e dirá como essas abordagens funcionam na produção do Messenger Avito.

Erros cometidos pela concorrência


Sabemos (quem ainda não sabe, já aprende neste relatório) que o Go fornece ferramentas poderosas e flexíveis para escrever programas competitivos, mas não determina regras estritas para seu uso. Artigos e relatórios geralmente oferecem recomendações conflitantes sobre como transferir trabalho para goroutines, como concluí-lo, como lidar com erros ...

Um esquilo com experiência, organizador de reuniões e conferências, principais workshops e podcasts Alexey Palazhchenko ( Percona ) ajudará a entender essas questões. Alexey dará um exemplo real da API, que melhorará gradualmente no decorrer do relatório e no qual exploraremos possíveis problemas e problemas.

Vá fazer jogos!


Provavelmente, muitos de nós estávamos interessados ​​em programação, porque sonhamos em escrever jogos. Então, Alexey Akulovich está envolvido no back-end de projetos complexos do VKontakte, mas não deixou o desejo de se envolver no GameDev, mas o combina com sucesso com o desenvolvimento do Go. Qualquer pessoa que queira relaxar enquanto escreve um brinquedo sem entrar em Unity / Unreal e em outras alegrias achará este relatório útil.

Alexey nos mostrará estruturas de desktop 2D / 3D / web, as possibilidades de desenvolvimento artesanal e opções para expandir a funcionalidade sem recompilar o binário principal. Falaremos sobre a situação em 2019, para que versões e tendências modernas sejam anexadas.

Vá para o front-end


E se você sonha há muito tempo em escrever código de interface exclusivamente no GO, consulte o relatório de Aarushi Kansal (Tier) . Tradicionalmente, a visualização e a implementação legais de criativos, na junção com a arte, são prerrogativas dos desenvolvedores de JavaScript, mas Aarushi lhe dirá como criar aplicativos e gráficos que funcionam em um navegador no Go. Após este relatório, você acreditará que pode revelar completamente seu potencial no desenvolvimento de front-end sem abrir mão do seu idioma favorito.

Como escrever um sistema operacional no Go


Andrei Smirnov é autor de muitos projetos de código-fonte aberto e de uma master class intitulada "Desenvolvimento de sistemas altamente carregados confiáveis". Sua palestra na GolangConf é principalmente para quem usa o Kubernetes. Andrei falará sobre o processo de desenvolvimento do sistema operacional Talos e o que foi alcançado com o uso do Go. Por exemplo, a montagem do sistema operacional e o loop de feedback através do CI não levam mais que 5 minutos.

Veremos como os conceitos simples e compreensíveis da programação competitiva no Go permitem organizar o lançamento das fases de inicialização do SO em paralelo e ao mesmo tempo na seqüência correta. Discutiremos quando verificar o sistema que você pode obter com simples testes de unidade e como são os testes de integração para o sistema operacional. Andrei diz que Go se encontrou em uma posição de monopólio nesse nicho, e descobriremos por que e por que é conveniente para nós.

Faça testes de integração


A propósito, sobre testes de integração. Apesar dos relatos de seus benefícios e até de um grande número de memes, eles ainda não recebem a devida atenção. Ou é apenas nos esquilos, e nós apenas temos testes de unidade inerentes aos genes? Seja como for, o Badoo decidiu escrever testes de integração no Go, e eles o fizeram muito bem. Ksenia Yakil lhe dirá como. Como implementar a estrutura Go para testes de integração, quais dificuldades cairão no caminho e quais resultados poderão ser alcançados. Você verá que escrever testes de integração no Go é real e não é tão doloroso.

Como e por que escrever código legível


Independentemente do idioma em que você escreve, acontece que o código antigo é mais fácil de reescrever do que refatorar. O mais triste é quando é o seu próprio código, escrito com amor "apenas" há alguns anos atrás.

Grigory Petrov (Evrone) adora a neurofisiologia e se aprofunda nas razões. Sua palestra na GolangConf é um guia prático para lidar com a complexidade do código: de onde vem, por que não pode ser removido e como lidar com isso. Gregory falará sobre decomposição, instalando “beacons” de várias maneiras, técnicas para escrever identificadores úteis, criando traps usando tipos. Antes de “escrever funções mais curtas e os nomes dos identificadores serem mais compreensíveis”, não desceremos :)

E na parte final do relatório, discutiremos a abordagem "gradual" para escrever código legível, que não se limita às linguagens familiares de "digitação dinâmica".

Por que Golang é tão estranho


E aqui, à noite, quando já discutiremos muitas questões do desenvolvimento do Go, finalmente convenceremos aqueles que duvidam de mudar para o Go, Philip Kulin abordará este tópico: "Por que Golang é tão estranho" e promete colocar tudo nas prateleiras e dizer como tudo estava acontecendo de fato, e onde os genéricos desapareceram.

Mitapy e zona especialista


Você deve ter notado que não há um único membro do comitê do programa entre os palestrantes, embora seja composto por ativistas da comunidade, que você sabe com certeza se estava em reuniões e conferências do Go. Fizemos outra coisa: selecionamos tópicos, ajudamos os oradores, preparamos atividades adicionais.

Os membros do comitê do programa durante a conferência podem ser encontrados e questionados em uma área especializada especial. Freqüentemente, os recém-chegados ao Go têm perguntas que, por algum motivo, não podem ser resolvidas, pelas quais, por algum motivo desconhecido, ficam paralisadas, e mesmo o StackOverflow não ajuda. Teremos um estande separado na conferência, onde você poderá fazer essas perguntas aos membros do comitê do programa e aos ativistas da comunidade Go. Venha com suas perguntas, e juntos tentaremos resolvê-las!

O GolangConf faz parte da família de conferências Ontiko, o que significa que uma sala separada será alocada para mitaps - pequenas reuniões com tópicos estreitos de um grupo de pessoas afins. Pode ser uma aula de mestre ou oficina, mas o principal em qualquer caso será a comunicação entre especialistas, a discussão de dores e a busca conjunta de uma solução. Cada participante pode tentar organizar sua mitap ou atuar como membro do comitê do programa e votar nas propostas de outros participantes.

E, é claro, o trabalho em rede como parte integrante de qualquer conferência em nosso caso será especialmente útil, pois na conferência todos os participantes estarão de alguma forma interessados ​​em um tópico - Golang. À noite, após o programa principal, é claro que teremos uma festa posterior e a oportunidade de socializar em um ambiente mais informal.

GolangConf exatamente em uma semana em 7 de outubro na Infospace, estamos ansiosos para ver a comunidade Go. Inscreva-se agora!

Source: https://habr.com/ru/post/pt469357/


All Articles