龙空技术网

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

Go语言中文网 351

前言:

目前你们对“二进制重排”大体比较重视,你们都想要学习一些“二进制重排”的相关内容。那么小编同时在网上收集了一些对于“二进制重排””的相关资讯,希望兄弟们能喜欢,我们一起来学习一下吧!

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

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

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

题图:今天家里领导生日,借周刊祝她生日快乐!

刊首语

自从官方发布泛型修订草案后,各种关于泛型的信息很多:比如基于泛型的 Hashmap 实现,基于泛型的测试驱动开发,基于泛型的错误处理等等。今天还发现另外一个项目,基于 Go 泛型草案的专门研究项目:。

所以,无论你喜不喜欢泛型,泛型到来是迟早的事情。

资讯

1、grpc-go 1.30 发布[3]

gRPC 的 Go 语言实现。基于 HTTP/2 的RPC。

2、go-imap 1.0.5 发布[4]

imap 的客户端和服务端库。

3、Gitea 1.12.0 和 1.12.1 发布[5]

我们很自豪地介绍 Gitea 1.12.0 版本,以及随后的 1.12.1 版本并提供一些修补程序。

4、2020年开发者生态报告:很多人计划迁移到 Go

JetBrains 发布了 2020 开发者生态报告,该报告基于 34,000 多个开发人员的反馈。其中, 参与调查的开发人员中,20% 的人来自中国、美国和印度则分别占比19% 和 17%。报告内容除了此前曾包含的 15 种语言和数十种技术之外,今年还添加了一些新的部分:R 语言、微服务、测试、大数据,甚至是开发者的生活方式。

5、Beego V2 Roadmap[6]

2.0.x 版本 (暂定截止2020年底)。

文章

1、万字长文解读 pkg.go.dev 的设计和实现

文章较长,建议收藏,抽完整时间阅读。

2、如何科学选择一门编程语言?理性选择,我依然选 Go

如果你看到这篇文章,很有可能,在你的职业生涯中,你至少有一次在思考应该选择哪种语言。或者你甚至在编程生涯开始之前就已经考虑了。很高兴你能看到这篇文章。

3、Go 语言源码阅读有感 nocopy 机制

读Go源码时,发现一个高频注释语句 “XXX must not be copied after first use”。例如 sync 包下的Pool、Cond、WaitGroup、Mutex、Map 和 atomoic.Vaule、strings.Builder 等,都有该句注释。

4、为什么容器内存占用居高不下,频频 OOM(续)[7]

在上周的文章《为什么容器内存占用居高不下,频频 OOM》 中,我根据现状进行了分析和说明,收到了很多读者的建议和疑惑,因此有了这一篇文章,包含更进一步的说明和排查。

5、苹果宣布 Mac 放弃 x86 转向 ARM:看看你要补充学习知识吗?

作为一名程序员,我们不应该只是“哇哦”感叹一声就完事了。关于这一点:苹果公司宣布 Mac 电脑将转向公司自主定制的处理器,也就是放弃 x86 架构,转向 ARM 架构,你应该特别关注下。

6、Go 字符串中的潜在问题

在 Go 中,几乎所有的字符串操作都是不复制的,仅仅是从原字符串取一个子集(例如去除字符串首尾的空白字符),因此你可以更自由地操作字符串。这个机制可以非常直接地解决你的问题,并且非常高效。

7、Go 每日一库之 cli

cli 是一个用于构建命令行程序的库。我们之前也介绍过一个用于构建命令行程序的库 cobra。在功能上来说两者差不多, cobra 的优势是提供了一个脚手架,方便开发。cli 非常简洁,所有的初始化操作就是创建一个 cli.App 结构的对象。通过为对象的字段赋值来添加相应的功能。

8、为什么你写的代码总是有 Bug?用它来保证 Go 代码质量

这篇文章是集成测试系列两个部分中的第二部分。本文中的示例可以从 代码仓库 获取。

9、面试题:如何更新 Go Module 项目的依赖 — 解决问题的方法很重要

这篇文章来自知识星球球友的问题。

10、GORM源码解读[8]

GORM 源码解读, 基于 v1.9.11[9] 版本。

11、受 express.js 启发,用 20 行代码写出更清晰易用的 Go 中间件 API

在使用 Go 编写复杂的服务时,您将遇到一个典型的主题是中间件。这个话题在网上被讨论了一次又一次。

开源项目

1、goplus[10]

七牛开源的与 Go 语言完全兼容的面向数据科学的语言(前身:qlang)。近期推广力度很大。在 GitHub 趋势榜上升也很快。

2、goc: 系统测试覆盖率收集利器[11](CarlJi[12] 投稿)

在 goc 以前,业界在做覆盖率收集时,都是采用一种很 tricky 的方式来做,有种种不优雅的地方。而 goc 能够让被测程序在运行时就可以收集系统测试覆盖率,当属比较优雅。且此种方式,也为 go 语言的精准测试方向,展现了无限可能。

3、go-wechaty[13]

Go 实现的微信聊天机器人。

4、fgprof[14]

兼容 Go 原生 profiler 的 profiler,支持非 cpu 时间(比如 IO 时间)采样。

5、binclude[15]

将静态文件包含到 Go 二进制文件中的另一种方法。

6、survey[16]

用于构建交互式提示的库。

7、tcardgen[17]

Twitter 卡片图像生成器。

8、go-envconfig[18]

一个通过结构体类型标记绑定方式读取环境变量的配置库。

9、cato[19]

Go 项目的自动配置文档库。

10、gaia[20]

Gaia 是一个开源自动化平台,可以轻松有趣地以任何编程语言构建强大的管道。

11、tgraph[21]

Tgraph 是一个 Go 包,用于在终端中绘制基本图形。它受到 的启发,这是一个 Python 库。

资源&&工具

1、油管视频: 测试驱动 Go2 新泛型[22]

泛型都测试驱动了。

2、免费电子书: How To Code in Go eBook[23](英文)

这本知识共享许可的 600 页书籍非常适合初学者。

3、gosec[24]

Go 代码安全扫描工具。

4、sharingan[25]

didi 出品的流量录制回放工具。

5、format[26]

用于格式化 common lisp 代码的 Go 库。

6、gopkgs[27]

一个自定义 Go 包的 import path 的命令行工具。

7、SourceCodeVisualizer[28]

Go 源码可视化。除了 Go 语言,还支持 C/C++、Python 和 Perl。对于看的代码的层次结构有一定帮助。

8、drago[29]

wireguard 网络配置工具。

9、goarrange[30]

按照 godoc 的方式自动重排声明。

10、memplot[31]

在单个二进制文件内非常快速地生成进程的内存使用情况的映像图。

订阅

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

参考资料

[1]

polaris1119/golangweekly:

[2]

提交 issue:

[3]

grpc-go 1.30 发布:

[4]

go-imap 1.0.5 发布:

[5]

Gitea 1.12.0 和 1.12.1 发布:

[6]

Beego V2 Roadmap:

[7]

为什么容器内存占用居高不下,频频 OOM(续):

[8]

GORM源码解读:

[9]

v1.9.11:

[10]

goplus:

[11]

goc: 系统测试覆盖率收集利器:

[12]

CarlJi:

[13]

go-wechaty:

[14]

fgprof:

[15]

binclude:

[16]

survey:

[17]

tcardgen:

[18]

go-envconfig:

[19]

cato:

[20]

gaia:

[21]

tgraph:

[22]

油管视频: 测试驱动 Go2 新泛型:

[23]

免费电子书: How To Code in Go eBook:

[24]

gosec:

[25]

sharingan:

[26]

format:

[27]

gopkgs:

[28]

SourceCodeVisualizer:

[29]

drago:

[30]

goarrange:

[31]

memplot:

[32]

Go语言中文网:

[33]

微信公众号:

标签: #二进制重排