Go语言爱好者周刊:第 15 期
这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于大部分人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:Games With Go
刊首语
技术学累了,来点鸡汤补补!
你能伤害的,都是在乎你的人;你能欺骗的,都是信任你的人。所以,别打着真心实意的幌子,却把善良的人当傻子;对你好的,一辈子都别忘;欺你善的,一辈子都别交。记得善待每一颗纯洁的心,也不辜负每一份慈悲的情!
资讯
主要修复 MacOS 的一个问题和 net/http 包的修复。
2、Go1.14 应该很棒!
这个周期有很多 runtime 的工作。主要有:
- 异步抢占 (https://github.com/golang/go/issues/24543)
- 更快的 defers (https://studygolang.com/topics/10356)
- 可扩展计时器 (https://github.com/golang/go/issues/6239, https://github.com/golang/go/issues/27707)
- 新的页分配器 (https://github.com/golang/proposal/blob/master/design/35112-scaling-the-page-allocator.md)
3、GopherCon 2020 将进入迪士尼世界!
GopherCon 将于 2020 年在佛罗里达州奥兰多的沃尔特·迪斯尼世界海豚度假村举行。我们只希望地鼠和老鼠相处融洽。
4、GORP 3.0 发布: 一个 'ORM-ish' Go 库
相比 GORM 和 XORM,这个库似乎没那么流行。在过去的一年中,这个曾经很受欢迎的项目的维护和发布速度有所放缓,但是现在有一个新的基于模块的版本,支持 Go 1.13。 (GORP 代表 Go Relational Persistence)
5、Flaggy 1.3.0 发布: Go 惯用的命令行解析库
在任何位置都支持子命令,位置值和标志(flag)。 没有外部依赖。 类似的类库中,Kingpin 是另一个受欢迎的选择。
刚刚迁移到模块。支持模块是大势所趋!
问答
求素数的一个程序。
学会查阅文档很重要。
3、golang 中怎么一次把 []int 转为 []int32
除了遍历的方式,你觉得还有其他方式吗?
其实是 json 解析的问题。
5、golang Open 函数打开的文件不主动关闭,在程序关闭时会发生什么?
进程退出时操作系统会回收给进程的所有资源。
文章
TonyBai 的值得关注系列,这次来的有点晚。
本文总结自 Profiling and Optimizing Go,对应的 PPT,有梯子的可以直接看视频。
你可能会需要。
介绍一个新的陷阱,这个陷阱叫做未完成的工作。当进程在非主协程的协程结束前终止时,这种陷阱就会发生。根据 Gorotine 的特性,强制关闭它将造成一个严重的问题。
也许对你有用的经验!
本文为 Go 程序员介绍了几种解决跨域的方法。
程序部署环境的容器化已经是大势所趋,微服务为容器化提供了广阔的应用舞台,k8s 已经把 Docker 纳入为它的底层支撑容器引擎,一统江湖,成为了容器技术事实上的标准。
将这些“自以为是”的东西写下来,供读者参考。
本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。
Git 是开发者的好帮手,今天跟大家分享的是用 git bisect 来找到你代码中的 bad commit 。
简洁化设计永远是我所追求的东西。我们可以设计一个复杂的系统用很多的队列,后台运行worker,复杂的部署等等,但取而代之我们决定利用Elasticbeanstalk强大的自动伸缩功能以及Go所提供开箱即用的并发特性。
本文大致顺序:包管理的历史;新的包管理方式 module;最后加上一个问题排查,彻底解决如何放置 Go 代码的问题。
阿里人写的文章,你懂的。
开源项目
一个 Go 实现的开源招聘 web 站点。这是国外人搞的。基于它,你可以构建一个国人的招聘站点。
2、Kilo
一个为 k8s 设计的、基于 wireguard 构建的多云 overlay 网络插件。
3、imgcrypt
为容器提供 API 扩展以支持加密的容器映像。
基于一个目录的 git 托管服务。
一款基于文本的“贪吃蛇”游戏,随心所欲制作。10 年前拥有诺基亚手机或玩过 NIBBLES.BAS 的任何人都会熟悉它。
构建流处理平台的基础设施代码库。
7、hemera
一个零依赖的 statsd 的Go语言实现。
Go语言编写的 TUI json 编辑器和查看器。
9、ktunnel
将本地资源暴露到 k8s 集群的命令行工具。
10、goldmark: Go 编写的 markdown 解析器
易于扩展,符合标准(CommonMark),结构合理。
11、go-restful
构建 Restful Web Service 的 Go 包。
12、gitql
git 查询语言,有点意思!
资源&&工具
1、 Linux性能调优 by Brendan Gregg on USENIX LISA 2019(英文)
很给力的 Linux 资料,值得收藏查阅。
2、学习使用 Go 编写游戏(几十个免费视频)(英文)
3、Ebook: 静态程序分析(英文)
有功力的可以好好研究研究。
4、【第 64 期 Go 夜读】深入浅出 Golang Runtime
本次分享将会对 go runtime 的调度,内存分配,gc 做一些细节上的讲解,同时也需要参与者对 runtime 有一些初步了解。文档完整版、文档精简版
Micro 中文示例、教程、资料,源码解读!
订阅
这个周刊每周日发布,同步更新在Go语言中文网、微信公众号 和 今日头条。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。