Skip to content
On this page

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

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

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

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

题图:giu

刊首语

新年快乐!这个特殊的新年,大家安心在家,可以顺便学习学习 Go 哦。在这里祈祷疫情尽快控制住,武汉加油!!

资讯

1、Traefik 2.1.3 发布,HTTP 反向代理与负载均衡工具

小版本更新。

2、TiDB 4.0.0-beta 发布,分布式 NewSQL 数据库

期待正式版发布。

3、gout v0.0.7 版本发布,Golang 流式 http client

号称做 GitHub 最好用的 http client 库,让你体会到还没有爽玩。那什么是流式客户端?

文章

1、有趣实验: hack go interface

Go interface 代表一组方法的集合,凡是实现这组集合的对象都称之为实现了这个接口,具体的对象不必像其它编程语言比如Java那样必须显示的Implement某个或者某些接口,所以说Go的接口类型是鸭子类型(Duck type)。

2、Go 实现百万 WebSocket 连接

本文主要介绍如何使用 Go 开发高负载的 WebSocket 服务。如果你熟悉 WebSockets,但对 Go 了解不多,仍希望你对这篇文章的想法和性能优化方面感兴趣。

3、漫画:排序数组删除重复元素(leetcode 26)

漫画的形式讲解 LeetCode。

4、Go 语言代码安全审计分享

由于 Go 语言代码审计资料较少,这里就把最近学习的对Vulnerability-goapp项目的审计过程分享一下。整个审计过程结合代码安全扫描工具和人工审计,期间也发现代码安全审计工具的漏报误报问题。

5、Go 语言标准库中 atomic.Value 的前世今生

在 Go 语言标准库中,sync/atomic包将底层硬件提供的原子操作封装成了 Go 的函数。但这些操作只支持几种基本数据类型,因此为了扩大原子操作的适用范围,Go 语言在 1.4 版本的时候向sync/atomic包中添加了一个新的类型Value。此类型的值相当于一个容器,可以被用来“原子地"存储(Store)和加载(Load)任意类型的值。

6、用一个生产与消费例子学习 go 语言中 goroutine,channel,select,time

通过一个例子来说一下对它们的理解与使用。

开源项目

1、giu

基于 Dear ImGui 的 Golang 跨平台快速 GUI 框架

2、stats: 全面的 Go 统计资料库套件

没有外部依赖,经过良好测试,可以使用平均值、总和、百分位数、标准差等概念。

3、termenv: 终端应用程序的高级 ANSI 样式和颜色支持

提供方便的方法来为输出着色和样式设置,而无需处理怪异的 ANSI 转义序列和颜色转换。

4、mock: Go 的模拟框架

这是官方出品。有两种操作模式:源和反射。源模式从源文件生成模拟接口。反射模式通过构建使用反射来了解接口的程序来生成模拟接口。

5、Eris: 处理,跟踪和记录错误的更好方法?

旨在通过错误包装,堆栈跟踪和输出格式为你提供对错误处理的更多控制。

6、ink: Go 中的 2D 图形框架

一个基于 OpenGL 的专注于创意编码的实验项目。这些示例展示了它可以做什么(至少在代码中)。

7、PipeIt

文本转换,清理和提取工具。

8、neffos

一个快速且可扩展的 Websocket 框架。

9、agones

一个用于在 Kubernetes 上托管、运行和扩展专用游戏服务器的库。

10、fiber

一种 Express 风格的、基于 fasthttp 的 HTTP web 框架。

11、go-plantuml

基于 Go 源码生成 plantuml 图。

12、licenseclassifier

识别文件中的 license 类型。

13、app

一个 WebAssembly 框架,用于使用 Go,HTML 和 CSS 构建 GUI 应用。

14、c2go

将 C 代码转换为 Go 代码的工具。

15、errlog

使用静态和堆栈跟踪分析来快速确定哪个函数调用导致的错误。

16、regexp2

全功能正则表达式引擎。如果标准库的 regexp 满足不了你,可以尝试使用 regexp2。

17、gzip

一个智能、高效、开箱即用、可定制,适用于 Gin 和 net/http 的 gzip 中间件。

18、gotoprom

用于 golang 的类型安全的 Prometheus 指标构建器库。

19、squzy

一个用 Golang 编写的高性能开源监控系统。

资源&&工具

1、Go 语言算法视频课程(英文)

Algorithms with Go 是完全免费的,但需要提供一个有效的电子邮件地址才能访问。它不会向你发送垃圾邮件,并且退订非常容易。

2、百度 BFE 应用层负载均衡引擎使用手册

BFE 是基于百度统一前端技术框架开源的七层流量接入系统,Go 语言实现。

3、使用 Go 实现基于终端的俄罗斯方块

这是有关使用 Go 创建基于终端的俄罗斯方块克隆的一系列教程的第一部分。

4、gotime 第 113 期

Go at Cloudflare

5、gotime 第 114 期

如何应对云基础架构管理发展的变化?

6、Go 编程教程

此项目的目标是能够跟踪所有 Go 教程及其各自的 github 存储库位置和构建状态。这些将在发布时随着 Go 的最新版本进行更新并运行。

7、使用 Go 打造“星际迷航”为主题的搜索引擎服务(英文)

实战系列教程。GCTT 会考虑翻译为中文。

8、数据结构和算法的 Go 实现

Go 中的数据结构库和算法实现,欢迎贡献。

订阅

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

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

wechat

Released under the MIT License.