Skip to content
On this page

Go语言爱好者周刊:第 40 期

这里记录每周值得分享的 Go 语言相关内容,周日发布。

本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue

鉴于大部分人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。

GoRemoteFest

题图:Go Remote Fest 远程线上 Go 会议。

刊首语

全球疫情严重,大家大多居家,减少聚集,各种线下技术会议都取消了。然而疫情并没有阻止大家对 Go 交流的热情。这不,有一个网站叫做:GoRemoteFest,坚定地进行远程 Go 会议交流。会议时间定在 2020 年 4 月 26 日(GMT +2 时间),会议从早 10 点到下午 14 点(北京时间 2020 年 4 月 26 日 16 点到 20点)。(也就是今天哦)

该活动的主要目的是使人们了解 Go 编程语言,一起环游世界,并从 Go 世界的主要演讲者那里收集最佳实践,技巧和窍门。这是第一次举办,也是第一次为了能够给你带来更好的体验,你将可以在家中通过 Youtube 享受它。

会议一个 8 个演讲者,DAVE CHENEY 很活跃,他是演讲者之一,而且第一个将,关于 Map 的细节。其他还有介绍 1.15 的新特性等。主题列表如下:

  • Maps in detail
  • Building the COVID19 API
  • The Quest for the Fastest Deployment Time
  • Tales From Event Sourcing Pastures
  • What's coming in Go 1.15
  • Let's build event-driven application in 15 minutes
  • When to choose a mo*@!#th?
  • Defer

资讯

1、官方博文:2019 年 Go 开发者调查结果

Go 官方团队发布的 2019 年 Go 开发者调查分析报告。

2、Go 1.15 Release Note 草稿建立

Go 1.15 尚未发布,这些是进行中的发行说明。Go 1.15 预计将于 2020 年 8 月发布。

3、sdns v0.3.1 发布

注重隐私,具有 dnssec 支持的快速递归 dns 服务器。

文章

1、Go 框架解析 -iris

这个框架据说被 awesome 除名。

2、深度解密 Go 语言之 sync.Pool

码农桃花出品的深度系列。

3、记一次奇妙的 go-protobuf 包升级之旅

升级完了,却依赖了两种 protobuf 包。

4、Go 中的高级测试模式:集成测试如何做?

当你在使用 Go 编写服务实现时,希望你的测试覆盖率随着时间的推移而增长。随着测试范围的扩大,测试运行时间也会变长。你希望用服务集成及集成测试来测试服务的重要部分。你发现在某些情况下,集成测试和各种公共服务的耦合对 CI 和开发产生限制。

5、Etcd集群的介绍和选主应用

ETCD 作为开源、分布式、高可用、强一致性的 key-value 存储系统,提供了配置共享和服务发现等众多功能。目前已广泛应用在 Kubernetes、ROOK、CoreDNS、M3 以及 openstack 等领域。本文作者基于公司内部的场景需求,对 etcd 进行了介绍,并对选主机制进行了实践。

6、bilibili 技术总监毛剑:B 站高可用架构实践

流量洪峰下要做好高服务质量的架构是一件具备挑战的事情,本文是 B 站技术总监毛剑老师在「云加社区沙龙online」的分享整理,详细阐述了从 Google SRE 的系统方法论以及实际业务的应对过程中出发,一些体系化的可用性设计。对我们了解系统的全貌、上下游的联防有更进一步的帮助。

7、Go 每日一库:使用 sqlx 批量插入数据

本文借助使用 sqlx 实现批量插入数据的例子,介绍了 sqlx 中可能被你忽视了的 sqlx.In和 DB.NamedExec 方法。

8、Go 使用 gdb 调试

我一般调试都是直接打 log 的,不过 gdb 调试还是很有用处,尤其是当碰到一些底层错误的需要单步跟踪的时候,比如,想研究一下 Go 的 runtime 是如何实现的的时候。

9、Go 协作与抢占

欧神的新作。

10、Go 每日一库之专为开发人员打造的调试日志库:what

what 包含一组简单易用的日志记录函数,适用于跟踪代码中的各种类型的活动。what 可以打印当前函数名称,快速 Printf:格式化日期,并转储(dump)数据结构。

11、go mod 的智障版本选择

之前 go mod 用的比较少,而且一直听社区有各种抱怨,所以也兴趣寥寥。新公司的项目直接使用了 go mod,本来觉得无非是个简单的工具,不需要学习,结果在一个简单的依赖上却浪费了很多时间。

12、迷你指南——结合 MySQL 构建一个基于 Go 的 REST API 微服务

在本篇迷你指导中,我会结合 MySQL 数据库创建一个简单的 REST-API。完整项目的代码会在文章的最后给出。

13、Go 框架解析-Gin

目前最火的 Go Web 框架解析。

14、学会用 Go 解析复杂 JSON 的思路

JSON 的解析是一个绕不开的话题。

15、go protobuf v1 败给了gogo protobuf,那 v2 呢?

从性能角度考虑,如果要使用 go protobuf api,首选 gogo protobuf。如果从功能角度考虑,显然 go protobuf v2 在成熟稳定了以后,会成为 Go 语言功能上最为强大的 protobuf API。

开源项目

1、fynedesk

使用 Fyne 的 Linux/Unix 完整桌面环境。之前分享过 Go 的跨平台 GUI 库 Fyne,这是基于它构建的整个 Linux/Unix 完整的桌面环境。

Fyne Desktop

2、lockgate

Lockgate 是一个跨平台的锁定库,可使用 Kubernetes 和 OS 文件锁定来支持分布式锁定。

3、pomerium

以 Google BeyondCorp 为蓝本的身份识别访问代理,可以安全地访问内部应用程序。

4、log

结构化的 Go 语言日志库。受 Logrus 启发。(好吧,自己的轮子又大又圆。哈哈哈~)

5、mediary

为 http.Client 增加拦截器功能。可以增加类似:跟踪,请求转储,统计信息收集等功能。

6、iso9660

用于读取和创建 ISO9660 镜像的 Go 库。

7、pxy

从 Websocket 到外部 RTMP 端点的代理直播流。

8、qrcp:

通过扫描二维码即可通过 wifi 将文件从计算机传输到移动设备。

9、cloud

IOT 云平台开源项目。

10、prot

protobuf 文件管理器。

11、sabre

可定制、可嵌入的 LISP 引擎。

资源&&工具

1、Go 语言快递视频教程

主要讲解语言的新特性。免费的。

2、技术面试问题集(Go版本)

包含算法等的 Go 语言实现。

3、awesome-go-perf

高性能 Go 语言库和工具快查表。

4、GoTime 第 126 期

大单体与微服务的辩论。

5、Go gRPC 系列教程

gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。

6、gin-vue-admin

基于 Go 语言 Gin 框架和 Vue 搭建的开源后台管理系统。

订阅

这个周刊每周日发布,同步更新在Go语言中文网微信公众号

微信搜索"Go语言中文网"或者扫描二维码,即可订阅。

wechat

Released under the MIT License.