快跑,地鼠,快跑! -我们将在GolangConf上谈论什么

我们答应了 5-6个改用Go的理由,事情发生了! 在完全致力于Go的GolangConf会议上,10月7日,将有5个标记为“切换到Go”的报告供那些刚打算或开始在其项目中使用该语言的人使用。

但这仅仅是开始。 从第一时间起,我们就设法建立了一个非常强大而多样化的计划,以满足三类参与者的需求:专业的Go开发人员; 那些刚开始使用Go的人; 基础架构工程师和使用Go语言编写的工具的用户。



会议计划包括21份报告,一连串闪电报告和mitaps。 在任何时候,会议的来宾都可以从3-4个不同的主题中进行选择,并找到自己感兴趣的东西。 我什至认为,流程之间的选择和是否能够撕裂会更相关(最好以后将所有内容都放在视频中)。 同时,将在不同的会议室中讨论与各种专家相关的主题。

我们将全神贯注于使用Go和所有一般代码的最佳实践 。 我们将与经验丰富的专家讨论性能问题和各种核心问题。 对于基础架构工程师,还将有一些有趣的报告。 使用Go的非标准方式的限制不会让任何人都变得冷漠。 此外,将有多达两份关于Go前端开发的报告,均来自国外。

可以说前端是一个实验方向。 前端产品并不经常在Go上编写,WebAssembly通常在个人小型项目中进行尝试。 我们邀请的演讲者不仅可以概述如何开始使用WebAssembly。 这些是基于个人经验的深入报告,它们将表明可以在WebAssembly上完成生活,以及如何在项目中使用它。

GolangConf演讲者


程序委员会非常严格地选择主题和演讲者。 我们的大多数演讲者在围棋社区中广为人知,但同时也有新面孔。 当人们不时在会议上讲话时,这有点无聊。 我希望看到新的面貌,新的挑战和新的演讲者。 我们设法吸引了新鲜血液,并且根据实际经验,他们也有非常有趣的报道。 例如,我期待着Ksenia Yakil的报告

外国演讲者的选择几乎更加困难,因为他们有很多应用。 但是我们知道,听众可能很难收听许多英语报道。 每天8-9份报告已经是大量的新信息,当您由于要理解它的语言而需要花更多的精力时,这变得非常困难。 因此,我们只有三个英语报告,但它们是最多的。

实际上,全球围棋社区非常友好,随时可以分享经验。 当我们在PaperCall.io上打开“论文征集”并在Slack和Twitter上的国际Go-community上宣布会议时,我们得到了很好的回应。 没错,我们并没有吸引国际社会的巨星,他们的活动日历定于明年。 但是接下来我们为下一个GolangConf制定了意义深远的计划。

今年我们将有21个课堂报告。 在这里,我将讨论其中的几个,有关完整的信息和日程安排,请访问会议网站

应用Go代码相似性分析


Iskander Sharipov (VKontakte)过去曾为他从事过Go编译器和第三方调试工作-静态分析器和用于重构的实用程序。 他现在计划将为Go语言创建的许多工具移植到PHP生态系统。 您可能会在场外询问Iskander的这种巨大经验,对于那些考虑处理Go代码问题的人来说,他的报告将主要是有趣的:

  • 如何在代码库中找到重复的函数和方法。
  • 避免重新发明Go标准库的功能。
  • 如何在语法层面简化对Go代码的分析。

回答这些问题的关键是Go程序的规范化,关于这一点将在报告中进行讨论。 但不是用言语而是实践—考虑一个用于规范Go代码及其一些实际应用的库。

开始使用WebAssembly


Go Johan Brandhorst的贡献者将来莫斯科向我们介绍WebAssembly,并展示如何开始使用WebAssembly和Go。 WebAssembly已经在浏览器中支持了将近两年,并且从1.11版开始就作为实验包含在Go中。 也许他甚至可以在浏览器中替换JavaScript并成为该语言,并且该语言可以在任何地方使用。

演讲结束后新手Gopher将学习如何将Go与WebAssembly结合使用,这些技术现在可以做什么以及将来将成为可能。

扩展Go WebSocket连接


Go生态系统中有一些很棒的WebSocket库。 似乎-以现成的解决方案为基础,采用并执行您的项目。 但是,几个紧急问题将必须独立解决,例如:

  • 如何扩展用户连接;
  • 与那些无法通过WebSocket连接的用户怎么办;
  • 如何管理永久连接的寿命;
  • 与用户短期断开连接而丢失消息该怎么办。

最后-您将必须在WebSocket以及在所有现代客户端平台上实现该协议的客户端之上编写自己的协议。 你准备好了吗?

Centrifuge开源库已经解决了这些问题,该库在Gorilla WebSocket的基础上添加了许多有用的功能,用于构建实时应用程序。 该项目的作者Alexander Emelin将在GolangConf上发表演讲。 亚历山大(Alexander) 将教授使您能够有效处理大量连接的技术和实践,并讲述这些方法如何在Messenger Avito的生产中发挥作用。

竞走比赛的错误


我们知道(仍然不知道,已经学会了这份报告),Go提供了强大而灵活的工具来编写竞争性程序,但是并没有为使用它们规定严格的规则。 关于如何将工作转移到goroutine,如何完成它们,如何处理错误的文章和报告经常给出相互矛盾的建议。

具有经验的地鼠,会议和组织者,领先的讲习班和播客Alexey Palazhchenko佩尔科纳 )将有助于理解这些问题。 Alexey将提供API的真实示例,该API将在报告过程中逐步完善,并在此基础上探讨可能出现的问题。

去做游戏吧!


也许我们很多人都对编程感兴趣,因为我们梦想着写游戏。 因此, Alexey Akulovich参与了复杂的VKontakte项目的后端,但他并没有放弃参与GameDev的愿望,而是成功地将其与Go上的开发相结合。 任何想在写玩具时放松身心而又不用进入Unity / Unreal和其他乐趣的人都会发现此报告很有用。

Alexey 将向我们展示 2D和3D桌面/网络框架,手工开发的可能性以及在不重新编译主要二进制文件的情况下扩展功能的选项。 我们将讨论2019年的情况,以便附加现代版本和趋势。

去前端


如果您一直梦想着只在GO上编写接口代码,请参阅Aarushi Kansal (Tier)的报告 传统上,很酷的可视化和创意的实现,以及与艺术的结合,创意是JavaScript开发人员的特权,但是Aarushi 将告诉您如何创建可在Go浏览器中使用的应用程序和图形。 撰写完此报告后,您将相信您可以充分展现自己在前端开发中的潜力,而无需放弃自己喜欢的语言。

如何在Go上编写操作系统


Andrei Smirnov是许多开源项目的作者,并且是一个名为“可靠的高负荷系统的开发”的大师班。 他在GolangConf上的演讲主要面向使用Kubernetes的人。 Andrei将讨论Talos操作系统的开发过程以及通过使用Go所取得的成就。 例如,操作系统的组装和通过CI的反馈回路花费的时间不超过5分钟。

我们将看到Go中竞争性编程的简单易懂的概念如何使您能够并行组织OS初始化阶段的启动,并同时以正确的顺序进行组织。 我们将讨论何时检查可以通过简单的单元测试获得的系统以及该操作系统的集成测试是什么样的。 安德烈(Andrei)说,在这个利基市场中,戈(Go)处于垄断地位,我们将找出为什么和为什么对我们方便。

进行集成测试


顺便说一下,关于集成测试。 尽管报道了它们的好处,甚至有大量的模因,但它们仍然没有得到适当的关注。 还是仅在地鼠中如此,而我们只是对基因进行了固有的单元测试? 不管怎样,Badoo着手在Go上编写集成测试,他们做得很好。 Ksenia Yakil将告诉您如何。 如何实现用于集成测试的Go框架,将遇到哪些困难以及可以实现什么结果。 您将看到在Go上编写集成测试是真实的,并且没有那么痛苦。

如何以及为什么编写可读代码


不管您使用哪种语言编写,都会发生这样的情况,旧代码比重构更容易重写。 最可悲的是,当它是您自己的代码时,几年前才用爱编写。

格里高利· 彼得罗夫 (Evrone)热爱神经生理学,并且深究其原因。 他在GolangConf上的演讲是处理代码复杂性的实用指南:它从何而来,为什么不能删除它以及如何处理它。 Gregory将讨论分解,以各种方式安装“信标”,用于编写有用标识符的技术,使用类型创建陷阱的方法。 在“编写函数更短,并且标识符名称更容易理解”之前,我们将不予关注:)

在报告的最后部分,我们将讨论编写可读代码的“渐进式”方法,该方法不仅限于熟悉的“动态类型化”语言。

为什么Golang这么奇怪


在晚上,当我们已经讨论过Go的许多开发问题,并最终说服那些怀疑转向Go的人时, Philip Kulin 将提出这个话题:“为什么Golang如此奇怪”,并承诺将所有东西放在架子上并告诉一切实际上,泛型在哪里消失。

Mitapy和专家专区


您可能已经注意到,发言人中没有一个程序委员会成员,尽管它由社区活动家组成,您肯定知道他们是否参加过Go-meetings和会议。 我们做了其他事情:选定主题,帮助演讲者准备了更多活动。

会议期间的程序委员会成员可以在特别的专家区域找到和质疑。 通常,Go的新手会遇到由于某种原因无法解决的问题,由于某种未知的原因,他们会陷入困境,甚至StackOverflow也无济于事。 我们将在会议上设立一个单独的展台,您可以在这里向计划委员会的成员和Go-community的活动家提出此类问题。 提出您的问题,我们将共同努力解决它们!

GolangConf是Ontiko会议系列的一部分,这意味着将为mitaps分配一个单独的房间,即由一群志趣相投的人组成的小型窄主题会议。 这可能是大师班或讲习班,但无论如何,其中的主要内容是专家之间的沟通,痛苦的讨论以及共同寻求解决方案。 每个参与者都可以尝试组织他们的mitap或充当计划委员会的成员,并对其他参与者的建议进行投票。

当然,在我们的案例中,将网络作为任何会议的组成部分将特别有用,因为在会议上,所有参与者都将对某个主题Golang感兴趣。 当然,在主程序结束后的晚上,我们将举行聚会,并有机会在更非正式的氛围中进行社交。

GolangConf恰好是10月7日在Infospace举办的一周,我们期待看到Go社区。 立即加入!

Source: https://habr.com/ru/post/zh-CN469357/


All Articles