七叶笔记 » golang编程 » Go语言爱好者周刊:第 22 期

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

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

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

由于今日头条不允许外链,文中大量链接可通过文末 「了解更多」 查看。

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

题图:2019 年冬至,来自网络。冬至快乐

刊首语

自从来了北京后才知道有冬至这么一个节日(更别说南汤圆了,我家根本不过这个节日),入乡随俗?一般冬至碰上工作日,会跟着同事一起吃顿饺子,但今天周日,所以你懂的~不管怎地,大家冬至快乐!

要打造一个好的社区真不容易,需要不断的琢磨,怎么才能做得更好?如果你是一个社区爱好者,希望为 Go 社区贡献一份力量,欢迎加入「Go 语言中文网」社区,一起做一件有意义的事情,欢迎加我微信:274768166。详细信息可以参考: 12 月 15 日 Go 语言中文网深圳 Meetup 总结暨有偿自愿者招募

资讯

1、 Go 1.14 应该很棒[3]

Go 1.14 Beta 发布,文档:

2、 Go Micro 1.6 发布[4]

一个 微服务 开发框架。提供分布式系统开发所需的核心功能。最近的几个发行版改进了该项目对 Go 模块的使用。

3、 Watermill 1.0 发布[5]

一个可有效处理消息流的 Go 库。

4、 cli 2.0 发布[6]

构建 Go CLI 应用程序的快速方法。一个历史悠久的库今年重新焕发了生命。 这是 v2 手册[7] ,其中展示了所有主要功能。

5、 Go 泛型提案新进展:参数化的 interface 替换 contract[8]

科学上网查看。

文章

1、 用 70 行 Go 代码击败 C 语言

Chris Penner 最近发布的一篇文章 Beating C with 80 Lines of Haskell 引发了 Internet 领域内广泛的论战,进而引发了一场用不同语言实现 wc 的圣战。

2、 聊聊 Go 语言中的字符表示与 字符串 遍历

和其他语言不同,在 Go 语言中没有字符类型, 字符只是整数的特殊用例

3、 Go 质量保证:集成测试(1) – 用 Docker 执行测试

测试会带来失败,而失败会带来理解。

4、 Go 在 马蜂窝 即时通讯服务建设中的实践

本文我们将结合马蜂窝旅游电商 IM 服务的发展历程,重点介绍基于 Go 的 IM 重构,希望可以给有相似问题的朋友一些借鉴。

5、 你应该知道的 Go 调度器知识:Go 核心原理 — 协程调度时机

  • 会阻塞的系统调用,比如文件 io,网络 io;
  • time 系列定时操作;
  • go func 的时候, func 执行完的时候;
  • 管道读写阻塞的情况;
  • 垃圾回收之后。
  • 主动调用 runtime .Gosched()

6、 Go 内存泄漏 ?不是那么简单!

最近遇到一个 Go 内存不释放的问题,记录一下测试和调研的情况。我到不把它归为 Go 内存泄漏的问题,因为它和一般的内存泄漏的方式不同。

7、 深入 Go 内存分配超级棒的文章:Go 内存 分配器 可视化指南

我们将通过这篇文章来一层层的剥离这些细节。如果你想学习所有关于 Go 内存分配器的知识,那么这篇文章正适合你。

8、 Go modules:最小版本选择

在本文中,我将尽最大努力解释 MVS 语义,展示一个实际的 Go 语言示例,并实际使用 MVS 算法。

9、 golang 服务开发平滑升级之优雅重启

本文章主要探讨 golang 服务器开发中在平滑升级过程中对优雅重启的使用与研究。

10、 Go 开发关键技术指南 | 为什么你要选择 Go?(内含超全知识大图)

从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的问题,最后回到 Go 如何解决这些问题,为大家提供 Go 开发的关键技术指南。

11、 Go 语言浅析二叉树[9]

给大家带来的分享是关于关于二叉树相关的知识点,并用 go 语言实现一个二叉树和对二叉树进行遍历。

12、 goroutine 究竟占用多少内存?[10]

单个 goroutine 究竟占用多少内存?本文将针对这些问题进行解释。

13、 Golang 实现并发聊天室[11]

本文只对服务器的功能模块进行了详细说明,实际开发的时候我是服务器客户端同时来写的,如果你能完全看明白服务器的代码,那么客户端的代码就很容易了,所以这里对于客户端不做介绍。

开源项目

1、 asm[12]

一个 Go 实现的 x86-64 汇编器

2、 iter[13]

C++ STL iterators 和 algorithms 的 Go 实现。

3、 mtf[14]

微服务测试框架。

4、 go-locale[15]

跨平台 locale 探测库。

5、 LBADD[16]

用 Go 从头开始写分布式 SQL 数据库。

6、 AresDB: Uber 的 Go 和 GPU 支持的实时分析引擎[17]

Uber 使用 Go 和 CUDA 构建了一个非常重要的项目,该项目使用 GPU 来实现并行的实时计算和数据处理。

7、 Tracerr: 支持堆栈跟踪和源片段的 Go Errors 库[18]

一个有趣的实验,可让 Go 错误输出提供更多信息。

8、 gim[19]

Go 语言写的 IM(一个即时通讯) 服务器。

资源&&工具

1、 IBM 免费书:Istio Explained[20] (英文)

Service Mesh 入门。

2、 slide: Go playgroud 历史及 v3 版本介绍[21] (英文)

Go 程序员代码沟通很好的一个工具。

3、 实用 Go:编写可维护 Go 程序的实用建议[22] (英文)

Dave Cheney 出品。在 QCon China 上的两次会议的输出结果中,Dave 仔细研究了从命名到并发的一系列建议,并生成了一份可靠的 Go(ld)编程手册。

4、 飞雪无情 Go Gin 框架系列教程[23]

目前更新到第 5 篇。

订阅

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

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

参考资料

[1]

polaris1119/golangweekly:

[2]

提交 issue:

[3]

Go 1.14 应该很棒:

[4]

Go Micro 1.6 发布:

[5]

Watermill 1.0 发布:

[6]

cli 2.0 发布:

[7]

这是 v2 手册:

[8]

Go 泛型提案新进展:参数化的 interface 替换 contract:

[9]

Go 语言浅析二叉树:

[10]

goroutine究竟占用多少内存?:

[11]

Golang 实现并发聊天室:

[12]

asm:

[13]

iter:

[14]

mtf:

[15]

go-locale:

[16]

LBADD:

[17]

AresDB:Uber 的 Go 和 GPU 支持的实时分析引擎:

[18]

Tracerr: 支持堆栈跟踪和源片段的 Go Errors 库:

[19]

gim:

[20]

IBM 免费书:Istio Explained:

[21]

slide: Go playgroud 历史及 v3 版本介绍: #1

[22]

实用 Go:编写可维护 Go 程序的实用建议:

[23]

飞雪无情 Go Gin 框架系列教程:

[24]

Go语言中文网:

[25]

微信公众号:

[26]

今日头条: #mid=1586087918877709

相关文章