Go语言爱好者周刊:第 20 期
作者:互联网
本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2] 。
鉴于大部分人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee French.
资讯
1、提案:cmd/go — 支持将静态资产(文件)嵌入二进制文件[3]
我只能说现有这样的工具真的很多,可能是真有需求。
2、Go 1.13.5 和 Go 1.12.14 发布[4]
小版本,主要一些 bug 修复。
3、TiDB 3.0.7 发布,分布式 NewSQL 数据库[5]
主要性能优化和问题修复。
4、gmanager v0.1.6 发布,基于 gf 的管理平台[6]
gmanager 是基于 gf 框架的管理平台,具备登录、认证、组织机构、用户、角色、菜单和日志管理。
5、gtoken v1.3.7 发布,支持 gf 最新版本 v1.10.0[7]
基于 gf 框架的 token 插件,通过服务端验证方式实现 token 认证;已完全可以支撑线上 token 认证,并支持集群模式;使用简单。
6、go-fastdfs v1.3.5 发布,支持断点续传自定义认证,路径自定义认证[8]
go-fastdfs 是一个基于 http 协议的分布式文件系统,它基于大道至简的设计理念,一切从简设计,使得它的运维及扩展变得更加简单,它具有高性能、高可靠、无中心、免维护等优点。
7、GoFrame v1.10.0 发布,Go 应用开发框架[9]
GF(Go Frame)是一款模块化、高性能、生产级 Go 应用开发框架。提供了常用的核心开发组件,如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、资源管理、数据校验、数据编码、文件监控、定时任务、数据库 ORM、TCP/UDP 组件、进程管理/通信、 并发安全容器等等。这次更新了挺多东西。
8、rqlite 4.6.0 发布,它是 SQLite,但是分布式的[10]
本质上是在后台使用 SQLite 的轻型分布式关系数据库。
文章
1、Go 创建对象时,如何优雅的传递初始化参数
本文将通过一个渐进式的demo示例来介绍Option模式,以及相关的一些思考。本文将内容切分为 10 个小模块,如果觉得前面的铺垫冗余,想直接看 Option 模式的介绍,可以从小标题七开始阅读。
2、发布订阅模式:使用 Go 实现简单的事件总线
事件驱动架构是计算机科学中一种高度可扩展的范例。它允许我们可以多方系统异步处理事件。
event-bus
3、培训大师 William 图解 Go 中的 GC 系列:第一部分 - 基础
这是三篇系列文章的第一篇博文,系列文章提供了 Go 中垃圾回收背后的机制和概念的理解。这篇博文主要介绍回收器的基础概念。
4、培训大师 William 图解 Go 中的 GC 系列:第二部分 - GC 追踪
这是三篇系列文章中的第二篇,该系列文章将会提供一个对 Go 垃圾回收器背后的机制和概念的理解。本篇主要介绍如何生成 GC 追踪并解释它们。
5、50 条争论的文章发生了啥:Go 标准库 encoding/json 真的慢吗?
这篇文章在 Go 语言中文网发布后,有网友争吵起来了,近 50 条评论,真是佩服技术人员!!这里看评论:https://studygolang.com/articles/25100 。
6、Go 标准库源码学习(一)详解短小精悍的 Once
Once:保证某个动作只执行一次。
7、线上真实场景:实战 Goroutine 泄露排查
值得学习排查过程。
8、用图说话:Go 语言的协程,系统线程以及 CPU 管理
创建系统线程以及在系统线程间切换,会对程序的内存和性能造成较大的开销。Go的目标是尽量利用CPU多核资源。设计之初就考虑了高并发性。
9、golang 在 runtime 中的一些骚东西[11]
最近在研究性能优化的时候,看到了 golang runtime 包下的一个文档 `HACKING.md`[12]觉得颇有意思,读完之后觉得对于 runtime 的理解更上一层,于是想着翻译一下。
10、Golang 为什么没有整型的 max/min 方法[13]
作为有一些经验的 Golang 开发者,你可能意识到了 Golang 并没有 max/min 方法来返回给定的两个或多个整型数值中的最大值或最小值。其他语言通常会在核心库中提供这类方法。你有没有想过为什么 Golang 没有这么做?
11、Go 语言第一深坑 - interface 与 nil 的比较[14]
这个很常见,讲解的人也很多,如果你不知道,建议再看看。
开源项目
1、GoFakeIt: 随机伪数据生成器[15]
GoFakeIt 具有 120 多种功能,可以生成用户名,电子邮件地址,电话号码,颜色等信息。
2、enmime: MIME 邮件编码和解码包[16]
enmime 是 Go 的 MIME 编码和解码库,专注于生成和解析 MIME 编码的电子邮件。
3、joker[17]
Go 语言实现的小型 Clojure 解释器。
4、cloud-game[18]
Go 实现的流行游戏云服务框架。
5、go-srp[19]
Go 版安全远程密码(SRP)协议库。
6、dbq[20]
零样本数据库操作库。
7、hubble[21]
Kubernetes 的网络,服务,安全性的监测工具。
8、encoding[22]
Go 软件包,其中包含有效的编码,解码和验证 API 的实现。
资源&&工具
1、go-advices[23]
Go 的一些最佳实践。
2、Gopherpalooza 是上个月在硅谷举行的 2019 Go 会议[24]
会议上 13 个主题演讲,在 youtube 上[25] 。
3、Go Series:语法基础、工程实践、并发编程、Web 开发[26]
涵盖了 Golang 由浅入深的学习笔记。
4、Go 刷 LeetCode 系列
Go 语言中文网公众号开始发布 Go 刷 LeetCode 系列,欢迎关注一起刷题。
5、Git commit message 规范[27]
书写良好的 commit message 能大大提高代码维护的效率。
订阅
这个周刊每周日发布,同步更新在Go 语言中文网[28]、微信公众号[29] 和 今日头条[30]。
微信搜索"Go 语言中文网"或者扫描二维码,即可订阅。
文中链接
[1]
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]
提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]
提案:cmd/go — 支持将静态资产(文件)嵌入二进制文件: https://github.com/golang/go/issues/35950
[4]
Go 1.13.5 和 Go 1.12.14 发布: https://studygolang.com/dl
[5]
TiDB 3.0.7 发布,分布式 NewSQL 数据库: https://www.oschina.net/news/111906/tidb-3-0-7-released
[6]
gmanager v0.1.6 发布,基于 gf 的管理平台: https://www.oschina.net/news/111901/gmanager-0-1-6-released
[7]
gtoken v1.3.7 发布,支持 gf 最新版本 v1.10.0: https://www.oschina.net/news/111900/gtoken-1-3-7-released
[8]
go-fastdfs v1.3.5 发布,支持断点续传自定义认证,路径自定义认证: https://www.oschina.net/news/111892/go-fastdfs-1-3-5-released
[9]
GoFrame v1.10.0 发布,Go 应用开发框架: https://www.oschina.net/news/111866/goframe-1-10-0-released
[10]
rqlite 4.6.0 发布,它是 SQLite,但是分布式的: https://github.com/rqlite/rqlite/releases/tag/v4.6.0
[11]
golang 在 runtime 中的一些骚东西: https://purewhite.io/2019/11/28/runtime-hacking-translate/
[12]
HACKING.md: https://github.com/golang/go/blob/master/src/runtime/HACKING.md
[13]
Golang为什么没有整型的max/min方法: https://studygolang.com/articles/25200
[14]
Go语言第一深坑 - interface 与 nil 的比较: https://studygolang.com/articles/10635
[15]
GoFakeIt: 随机伪数据生成器: https://github.com/brianvoe/gofakeit
[16]
enmime: MIME 邮件编码和解码包: https://github.com/jhillyerd/enmime
[17]
joker: https://github.com/candid82/joker
[18]
cloud-game: https://github.com/giongto35/cloud-game
[19]
go-srp: https://github.com/getinsomnia/go-srp
[20]
dbq: https://github.com/rocketlaunchr/dbq
[21]
hubble: https://github.com/cilium/hubble
[22]
encoding: https://github.com/segmentio/encoding
[23]
go-advices: https://github.com/cristaloleg/go-advices/blob/master/README_ZH.md
[24]
Gopherpalooza 是上个月在硅谷举行的 2019 Go 会议: http://gopherpalooza.com/
[25]
13 个主题演讲,在 youtube 上: https://www.youtube.com/playlist?list=PLeGxIOPLk9EL4BDb-8tAUY2YYv0aVgTXY#gopherpalooza2019
[26]
Go Series:语法基础、工程实践、并发编程、Web 开发: https://github.com/wx-chevalier/Go-Series
[27]
Git commit message 规范: https://juejin.im/post/5d0b3f8c6fb9a07ec07fc5d0
[28]
Go语言中文网: https://studygolang.com/go/weekly
[29]
微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91
[30]
今日头条: https://www.toutiao.com/c/user/59903081459/#mid=1586087918877709
喜欢本文的朋友,欢迎关注“Go语言中文网”:
标签:github,20,爱好者,go,发布,https,Go,com 来源: https://blog.51cto.com/u_15289640/2965995