Go语言爱好者周刊:第 40 期
这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于大部分人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图: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
资讯
Go 官方团队发布的 2019 年 Go 开发者调查分析报告。
Go 1.15 尚未发布,这些是进行中的发行说明。Go 1.15 预计将于 2020 年 8 月发布。
注重隐私,具有 dnssec 支持的快速递归 dns 服务器。
文章
这个框架据说被 awesome 除名。
码农桃花出品的深度系列。
升级完了,却依赖了两种 protobuf 包。
当你在使用 Go 编写服务实现时,希望你的测试覆盖率随着时间的推移而增长。随着测试范围的扩大,测试运行时间也会变长。你希望用服务集成及集成测试来测试服务的重要部分。你发现在某些情况下,集成测试和各种公共服务的耦合对 CI 和开发产生限制。
ETCD 作为开源、分布式、高可用、强一致性的 key-value 存储系统,提供了配置共享和服务发现等众多功能。目前已广泛应用在 Kubernetes、ROOK、CoreDNS、M3 以及 openstack 等领域。本文作者基于公司内部的场景需求,对 etcd 进行了介绍,并对选主机制进行了实践。
流量洪峰下要做好高服务质量的架构是一件具备挑战的事情,本文是 B 站技术总监毛剑老师在「云加社区沙龙online」的分享整理,详细阐述了从 Google SRE 的系统方法论以及实际业务的应对过程中出发,一些体系化的可用性设计。对我们了解系统的全貌、上下游的联防有更进一步的帮助。
本文借助使用 sqlx 实现批量插入数据的例子,介绍了 sqlx 中可能被你忽视了的 sqlx.In和 DB.NamedExec 方法。
我一般调试都是直接打 log 的,不过 gdb 调试还是很有用处,尤其是当碰到一些底层错误的需要单步跟踪的时候,比如,想研究一下 Go 的 runtime 是如何实现的的时候。
9、Go 协作与抢占
欧神的新作。
10、Go 每日一库之专为开发人员打造的调试日志库:what
what 包含一组简单易用的日志记录函数,适用于跟踪代码中的各种类型的活动。what 可以打印当前函数名称,快速 Printf:格式化日期,并转储(dump)数据结构。
之前 go mod 用的比较少,而且一直听社区有各种抱怨,所以也兴趣寥寥。新公司的项目直接使用了 go mod,本来觉得无非是个简单的工具,不需要学习,结果在一个简单的依赖上却浪费了很多时间。
12、迷你指南——结合 MySQL 构建一个基于 Go 的 REST API 微服务
在本篇迷你指导中,我会结合 MySQL 数据库创建一个简单的 REST-API。完整项目的代码会在文章的最后给出。
13、Go 框架解析-Gin
目前最火的 Go Web 框架解析。
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 完整的桌面环境。
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 引擎。
资源&&工具
主要讲解语言的新特性。免费的。
包含算法等的 Go 语言实现。
高性能 Go 语言库和工具快查表。
大单体与微服务的辩论。
gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。
基于 Go 语言 Gin 框架和 Vue 搭建的开源后台管理系统。
订阅
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。