我第一次在Gophercon
#开源 #go #speaking #diversity

在今年年初,我设定了一个目标,可以在GO编程语言会议上发言。这样做的原因有几个。多年来,Go一直是我最喜欢的工具之一,我渴望借口参加GO活动。发表演讲是完美的。另外,我有
当我们在项目中进行开源开发时,可以与社区分享多个出色的主题,我可以更自由地分享我们的知识以及我们的代码。此外,我想在技术会议上拥有更多多样化的演讲者。

随着GO发布的1.20,它启发了我尝试使用the new feature to gather coverage data进行使用Go Tooling构建的二进制文件。我重构了我们的应用程序测试管道,并认为这将是与社区分享的一个很好的话题。我很幸运能在伦敦的GopherCon UK接受演讲,所以终于是时候参加我的第一次参加会议了。

The Brewery 啤酒厂主持了该活动。令人惊讶的是,对于伦敦,整个会议期间的天气非常好。

会议在伦敦城市的轻松活动场地The Brewery举行。会议厅里的消息是,活动赞助商的数量比上一年减少了,因此,组织活动的挑战是一项挑战。幸运的是,组织者能够将东西静止不动。

除了经济衰退之外,时代对于地鼠来说很有趣。在旅行世界中正在发生许多美好的事情。正如卡梅隆·巴拉汉(Cameron Balahan)在他的演讲“ Go Nation Nation”中指出的那样,Go is more popular than ever。近年来,越来越多的程序员正在将其添加到他们的工具包中,从而推动了语言开发人员添加新的和更好的功能。此外,GO不仅是一种编程语言,而且是一种编程语言。这是一个整体生态系统,并支持多种工具。与我七年前相比,新移民从开发开始工作要容易得多。 Balahan表示,改善新开发人员的入职仍然是GO团队的首要任务之一。他提到他们正在研究库,文档和错误消息,以帮助新移民和所有GO开发人员提高生产力。

ppestiumages4)yal-wunide symmaser semploss to go and yop)zom)zom)hom)hom hm hm hm hm rloms)zungion)zungion))

自动测试和测试覆盖范围

我演讲的话题是我在演讲中描述的"Boosting Test Coverage for Microservices.",这是我们小型团队如何成为重要的自动化测试。自动化测试通常是时间耗尽时跳过的部分,但我试图说服观众,这可能不是最好的方法 - 丢失的测试可能会咬住您。

On the stage. 在舞台上。 Tapan Avasthi

此外,我讨论了演示文稿中的测试覆盖范围以及如何测量单位测试的测试覆盖范围,甚至现在 - 使用GO新工具进行应用程序测试,即您使用编译应用程序进行的测试,而是使用二进制测试进行测试单位测试工具。

观众收到了很好的谈话,我收到了许多有趣的问题。在测试方面,人们在遇到类似问题的苦难。很难确定在CI管道中要模拟的功能。另外,我们讨论了使用旧版代码库进行自动测试时的问题。 GO的新覆盖范围功能对大多数人来说都是未知的,有些人渴望在我的会议结束后立即尝试。

Gophers 所有参与者都获得了可爱的地鼠吉祥物。

不幸的是,当您是会议的发言人时,您不能完全专注于会议计划,因为需要为演讲做准备。但是,我很幸运也参加了其他一些会议。我主要是三个主题。

记录和跟踪

为应用程序生成更好的日志和痕迹似乎是一个热门话题 - 难怪为什么。具有高负载的服务可以生成无数的数据,并且要使开发人员使用日志有效地解决问题,他们必须能够过滤和搜索它们。分别调试每个请求的能力至关重要。

Google的乔纳森·阿姆斯特丹(Jonathan Amsterdam)在the slog package上进行了鼓舞人心的演讲,这是标准图书馆的最新成员关于日志记录。 GO的默认记录功能始终缺乏功能。丢失的对数水平一直是我日常开发人员生活中最大的疼痛点。更重要的是,将结构化数据发送到分析工具的能力对于生产系统至关重要。到目前为止,团队不得不使用不同种类的第三方库来实现。

现在,SLOG软件包可以解决这些缺点,并能够处理和合并现有结构化记录工具的数据。演讲揭示了团队如何与开发人员社区一起完善对新软件包的要求。另外,听到团队使用哪种记忆管理窍门,这是令人着迷的,因为对记录的性能要求很高。

另一个令人兴奋的演讲也迅速解决了解决问题的能力,但并非日志,而是在追踪上。跟踪比日志提供了对程序数据流的更详细的视图,并且在检测性能瓶颈时尤其有用。康斯坦丁·奥斯特罗夫斯基(Konstantin Ostrovsky)描述了他们的团队如何使用OpenTelemetry为进来的请求增加可追溯性。使用这种方法,他们不需要代码库中的其他日志(不包括错误)。

Konstantin konstantin ostrovsky呈现opentelemetry用法。

OpentElemetry Tracing在代码中使用the concept of spans。可以利用跨度存储请求数据参数并调用关系。然后,不同的分析工具可以为单个请求可视化此数据。根据Konstantin的说法,这些可视化有助于开发人员比搜索和过滤普通日志更快地解决问题。但是,在演讲问答中,他提醒我们,出于绩效原因,应该很少使用跨度。

服务编织者

Service Weaver是一个开源项目,另一个Google开发人员Robert Grandl参加了会议。该工具允许一个人以单个二进制形式开发系统,但是基础框架将组件分配到部署时间中的微服务中。因此,当您不必担心在本地计算机上设置完整的微服务体系结构时,开发会更容易。此外,当您可以在更高级别上工作时,部署可能会更加简单。

我参加了a workshop,允许参与者尝试Service Weaver动手。目标是使用Web UI和后端服务构建一个成熟的Web应用程序,UI可以从中请求数据。其他部分描述了测试编织组件,从一项服务路由到另一种服务,甚至调用外部第三方服务。

车间非常适合我;我可以学到的不仅仅是听演讲。此外,这个话题使我感兴趣,我将在接下来的几天里更多地研究它,以更好地了解哪种项目将从这种开发模型中受益最大。研讨会组织者承诺,Google不会停止投资该产品。他们正在寻找合作者,以获取更多反馈以进一步开发产品。

UI开发与

另一个引起我兴趣的话题是与GO进行UI开发的讨论小组。安德鲁·威廉姆斯(Andrew Williams)主持了这项讨论,并提出了一个名为Fyne的项目,该项目允许Gophers使用图形用户界面编写用于多个平台的应用程序。 UI开发不是我最喜欢的时间。因此,我总是很想找到更好,更有趣的方法来实施强制性用户可关注的部分。毫无疑问,使用GO会单击有趣的框。因此,我在我的待办事项列表中添加了另一个技术实验。

除了这三个主题外,处理JWT安全性的一个会话也令人难忘。 Patrycja Wegrzynowicz在为此目的构建的小样本应用程序的帮助下,将观众砍死。它证明了我们在JWT实施中可能会有哪种漏洞。

Patrycja patrycja用JWTS入侵观众。

演讲内容丰富,现场黑客攻击很有趣,由于动手实践的例子,观众很好地理解了这些问题。该会议证明,在处理JWTS上没有著名的战斗测试文件。我们也有许多具有不同品质的不同库,并且很容易通过代币的生成和验证犯错误。难怪观众要求帕特里卡(Patrycja)的一本关于该主题的书。我们需要更好的主题资源。

在佛罗伦萨见

总的来说,该活动组织良好,气氛很好,很有趣。与同胞,尤其是the Women Who Go成员会面,是一种独特的享受。让我们很快在芬兰设立我们的章节。 (如果您是芬兰的女性,她写代码,请伸出援手!)我还必须在伦敦度过一些空闲时间,并与为他们的团队加油的英国支持者分享世界杯决赛的气氛。

Public viewing 世界杯决赛的公共观看活动。

再见下一个事件;我希望我们11月在Florence见面!同时,请查看Gophercon UK 2023会议发布后的视频 - 我将为我错过的现场直播的视频做同样的事情!