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

polaris · · 3790 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

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

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3790 次点击  ∙  2 赞  
加入收藏 微博
2 回复  |  直到 2019-12-11 10:34:03
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传