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

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

这里记录每周值得分享的 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/issue038/pcbook.png) 题图:gRPC 相关教程 ## 刊首语 本周推荐了几本 Go 语言图书,发现 Go 相关的图书还是不少的,而且推荐的那几本都只是人民邮电出版社的,可见 Go 受众还是越来越多。5 折优惠截止 4 月 14 日,想购买的还有机会。[去购买](https://mp.weixin.qq.com/s/YTAzACjSOUvI9bUcQdihdQ)。 ## 资讯 1、[Go1.14.2 和 Go1.13.10 发布](https://studygolang.com/topics/11244) 北京时间 2020-04-08 日,Go Team 发布了 Go1.14.2 和 Go1.13.10,这是小版本更新,主要修复了和 cgo, Go 命令,运行时,os/exec 和 testing 包相关的一些 Bug。 2、[Syncthing 1.4.2 发布,连续文件同步工具](https://github.com/syncthing/syncthing/releases) Syncthing 是一个 Go 语言实现的免费开源的工具,它能在你的各个网络计算机间同步文件/文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 1.4.2 现已发布。这是一个很小的版本更新,修复了一些本不应该在 1.4.1 中出现的崩溃,并将更改还原到升级代码上。 3、[还在用 2019.3 就 Out 了:GoLand 2020.1 版本正式发布](https://mp.weixin.qq.com/s/O8nbaciZBK_96_Ptu8lP-A) 北京时间 2020 年 4 月 10 日凌晨,Jetbrains 宣布正式发布 GoLand 2020.1 版本。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue038/GoLand_2020.1.png) 4、[Cuelang v0.1.0 发布](https://github.com/cuelang/cue) 您知道 Cue 是 Go 的弟弟吗?Cue 中有许多 Go 源码,并且由 Go 团队的成员构建。这是一个验证和定义基于文本的动态配置。 5、[gopls v0.4.0 发布](https://github.com/golang/go/issues/33030#issuecomment-611219680) 我比较关注它什么时候能解决资源大规模占用的问题。 ## 文章 1、[Docker 参考架构:设计可扩展、可移植的 Docker 容器网络](https://mp.weixin.qq.com/s/tHx8JHG8hKN3QhbMxuUOMw) Docker 容器将软件封装到一个完整的文件系统当中,这个文件系统包括软件运行所需的一切:代码、运行时、系统工具、系统库,所有能安装在服务器上的东西。 2、[到底要不要用 ORM?ORM vs. 非 ORM 对比](https://mp.weixin.qq.com/s/lyAuC6fUaer1rFC_GdK1-Q) 一些关于 ORM 优缺点的想法。 3、[项目使用了 ORM,具体执行的是什么 SQL 语句总是很迷?xorm1.0 解决了](https://mp.weixin.qq.com/s/xpnbpnXUVg2ToIfLJLeBRQ) 自定义上下文 SQL Log 需求有哪些? 4、[Go 中的 SetFinalizer 有什么用?怎么实现的?](https://mp.weixin.qq.com/s/pK_0Rnnh7gE6nBPhiahakw) Go runtime 提供了一种允许开发者将一个函数与一个变量绑定的方法 runtime.SetFinalizer,被绑定的变量从它无法被访问时就被垃圾回收器视为待回收状态。这个特性引起了高度的争论,但本文并不打算参与其中,而是去阐述这个方法的具体实现。 5、[使用 Golang 理解 MySQL 的两阶段提交](https://mp.weixin.qq.com/s/KeZId8WScnS-rlc0kedEzw) 文章源于一个问题:如果我们现在有两个mysql实例,在我们要尽量简单地完成分布式事务,怎么处理?还在 B 站提供了视频版。 6、[聊聊数据库的未来](https://mp.weixin.qq.com/s/Ahhaa9cAm248Sh4IHrcy-w) 写在 PingCAP 成立五周年前夕。 7、[图解kubernetes命令执行核心实现](https://mp.weixin.qq.com/s/0C48IypvwADQa7lBi8Sthw) K8s 中的命令执行由 apiserver、kubelet、cri、docker 等组件共同完成, 其中最复杂的就是协议切换以及各种流拷贝相关,让我们一起来看下关键实现,虽然代码比较多,但是不会开发应该也能看懂。 8、[Go 实现 Raft 第四篇:持久化和调优](https://mp.weixin.qq.com/s/azdjVpeTHkr4knajmdPtgw) 对 Raft 中通过添加持久性和一些优化来完成 Raft 的基本实现。 9、[Go 每日一库之 gentleman](https://mp.weixin.qq.com/s/0B64B6y9TiU6rhy5ywXpVA) gentleman 是一个功能齐全、插件驱动的 HTTP 客户端。gentleman以扩展性为原则,可以基于内置的或第三方插件创建具有丰富特性的、可复用的 HTTP 客户端。相比标准库net/http,gentleman更灵活、易用。 10、[Prometheus + Granafa 构建高大上的MySQL监控平台](https://mp.weixin.qq.com/s/PV42yQoI0rTxDHInx6dN0g) Prometheus 是 Go 语言实现的。 11、[Golang 中生成密码](https://studygolang.com/articles/27917) 你想到的是什么方式? ## 开源项目 1、[mem](https://github.com/go4org/mem) 低损耗的 string 或 []byte 类型操作库。bradfitz 出品。 2、[Nuclei](https://github.com/projectdiscovery/nuclei) Nuclei 是基于模板的可配置目标扫描的快速工具,具有大量可扩展性和易用性。 3、[oneinfra](https://github.com/oneinfra/oneinfra) 用于构建 Kubernetes 即服务的平台。 4、[gokey](https://github.com/f-secure-foundry/GoKey) 纯 Go 实现的智能卡应用。 5、[iso9660](https://github.com/KarpelesLab/iso9660) 用于读取和创建 ISO9660 镜像的 Go 库。 6、[niltalk](https://github.com/knadh/niltalk) Go 语言实现的聊天室程序。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue038/niltalk.png) 7、[rio](https://github.com/susamn/rio) 基于优先级队列的轻量级作业调度程序,具有超时,重试,上下文取消和简单语义的作业调度器。为 Go 网络应用构建。 8、[gostradamus](https://github.com/bykof/gostradamus) 更好用的日期时间库。 9、[TalariaDB](https://github.com/grab/talaria) TalariaDB 是 Presto 的分布式,高可用性和低延迟时间序列数据库。Go 语言实现的时间序列数据库还真是多。 10、 ## 资源&&工具 1、[设计插件式的地道的 Go 应用](https://www.youtube.com/watch?v=qerWv9JTlo8) 来自 Youtube 视频。 2、[播客:企业中的 Go](https://changelog.com/gotime/124) gotime 第 124 期。 3、[apizza](https://github.com/harrybrwn/apizza) 通过命令行订披萨。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue038/apizza.png) 4、[gossh](https://github.com/krilor/gossh) 受 Ansible 启发但没有 Yaml 的配置管理工具。 5、[使用 Go 进行游戏开发](https://www.youtube.com/watch?v=XBQ6jMGGk_Y) Youtube 视频。 6、[podcast-cli](https://github.com/goulinkh/podcast-cli) CLI 播客播放器。作者在学习了 Go 语言基础之后创建了这个项目。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue038/podcast-cli.gif) 7、[goph](https://github.com/melbahja/goph) 本地 golang ssh 客户端,可通过 ssh 连接执行命令。 8、[gRPC 相关资源](https://gitlab.com/techschool/pcbook) ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue038/pcbook.png) 9、[x-go](https://github.com/go-board/x-go) Go 标准库的拓展,提供各种便利的工具。 10、[goda](https://github.com/loov/goda) Go 依赖性分析工具。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue038/goda.svg) 11、[go-interview](https://github.com/shomali11/go-interview) Go 技术面试问题集。 ## 订阅 这个周刊每周日发布,同步更新在[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)。 微信搜索"Go语言中文网"或者扫描二维码,即可订阅。 ![wechat](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/wechat.png)

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

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

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