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

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/issue036/cover.png) 题图:k8s 1.18 Release Logo ## 刊首语 在 golang-dev 邮件列表中,Russ Cox 发布了一条有价值的消息: > Go 开发并非与世界大事隔绝;Go 上的工作始终排在诸如个人和家庭健康与安全之类的基本问题之后。这些天,几乎我们所有人的工作量都减少了。我预计工作量将在未来几个月内进一步下降。 > > 。。。 > > 虽然我们自己的工作量减少了,但我们保留了相同的时间表,这样我们必须缩小发布期望的功能。一些新功能或计划中的功能将无法实现。没关系-下次再补上。为了我们自己的工作和他人的工作,我们都需要接受这一点。 > > 最重要的是,让我们彼此保持友善和慈善。您不知道什么外部压力正在影响着电子邮件,review 或 GitHub comment 等另一端的人员。 以上只是部分,有兴趣的可以[阅读全文](https://groups.google.com/forum/#!msg/golang-dev/UxvN1W2B-zg/Vx1H8icfAwAJ)。希望疫情早点过去! ## 资讯 1、[Kubernetes 1.18正式发布](https://kubernetes.io/blog/2020/03/25/kubernetes-1-18-release-announcement/) 这是 2020 年首次版本发布。此版本包含 38 项功能增强,其中 15 项为稳定版功能、11 项 beta 功能以及 12 项 alpha 版功能。 2、[Go Blog 发文: 疫情之下的 Go 社区](https://mp.weixin.qq.com/s/DwWHC9vyrYx5jgKqSbYH9w) Golang官方在3月25日发文,讨论了疫情对开发者生活的影响,官方为抗击疫情所做的工作,以及对疫情之下的Go开源工作的安排。 3、[xorm 发布 1.0 版本](https://gitea.com/xorm/xorm/src/tag/v1.0.0) 终于 1.0 版本了。这是我很喜欢的 ORM。 4、[Logrus 1.5 发布: 功能丰富的结构化记录器](https://github.com/sirupsen/logrus) 支持 JSON 格式,钩子(例如用于将某些日志条目发送到外部服务),以及支持与标准库的记录器兼容的 API。 5、[Duit: 使用 Go 和 Mithril.js 构建的简单资金跟踪器](https://github.com/RadhiFadlillah/duit) 一个完整,简单的资金跟踪网络应用程序。 ## 文章 1、[分析标准库和优秀项目的接口:Go中接口应该这么定义](https://mp.weixin.qq.com/s/hj9sJov2XBBtq-HIPSWiHQ) Go 是静态类型的编程语言,自 2009 年发布以来,已经十多岁了。现在,Go 广泛应用于云原生系统、微服务、web 开发、运维等场景,并且在 webassembly、嵌入式等也有进一步的探索。 2、[用 Go 构建不可变的数据结构](https://mp.weixin.qq.com/s/bCzAmt8LnOJgd46LNHZtTg) 共享状态是比较容易理解和使用的,但是可能产生隐晦以至于很难追踪的 bugs。尤其是在我们的数据结构只有部分是通过引用传递的。 3、[Go 常量学习-可视化指南](https://mp.weixin.qq.com/s/L6ysPUCyYhAwL6PsKXykhQ) Go 的类型常量和非类型常量是两个必须要了解的关键概念 4、[对 Go GC 所谓的突破提出质疑?看现代垃圾收集策略](https://mp.weixin.qq.com/s/zFxlbUE1FhwjtBPgeJ8o-Q) 我最近看过很多文章,它们以令我困扰的方式推广 Go 语言最新的垃圾收集器。 5、[不到100行代码做并发控制:防缓存击穿的 singleflight 使用及原理](https://mp.weixin.qq.com/s/Fp9ueMRo-y8gTyxifJ84CQ) `singleflight` 包主要是用来做并发控制,整个包的核心代码不到100行,充分利用到了`map`和`WaitGroup`的特性。 6、[流?I/O操作?阻塞?epoll? Go面试被问到 epoll,头大!](https://mp.weixin.qq.com/s/yxQgsuPm87MVc7BxYFRVhg) 本篇文章就是可以让你快速了解什么是epoll以及它的作用。 7、[Golang 三种方式实现超时退出](https://juejin.im/post/5e774a73e51d4526c70fd0a4) 熔断的方法。 8、[Go 进程的 HeapReleased 上升,但是 RSS 不下降造成内存泄漏?](https://pengrl.com/p/20033) 事情是这样的,线上一个服务,启动后RSS随任务数增加而持续上升,但是过了业务高峰期后,任务数已经下降,RSS却没有下降,而是维持在高位水平。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue036/heep-release.jpg) 9、[源码解读 Golang 的 sync.Map 实现原理](https://juejin.im/post/5e784321518825493c7b7d8d) 通过这种读写分离的设计,解决了并发情况的写入安全,又使读取速度在大部分情况可以接近内建 map,非常适合读多写少的情况。 10、[Go项目简单接入travis ci](https://juejin.im/post/5e7592c0518825494a3fadd9) 本文主要讲述 Go 项目的使用,主要分为执行单元测试和 build 打包发步到 github release。 11、[Go 语言垃圾收集器的原理](https://mp.weixin.qq.com/s/KuWAO5Mh8pESS1eeZnIxPA) 详细介绍 Go 语言运行时系统中垃圾收集器的设计与实现原理,我们不仅会讨论常见的垃圾收集机制、从 Go 语言的 v1.0 版本开始分析其演进过程,还会深入源代码分析垃圾收集器的工作原理;接下来,我们进入 Go 语言内存管理的另一个重要组成部分 — 垃圾收集。 ## 开源项目 1、[OpenBiohazard2](https://github.com/samuelyuan/OpenBiohazard2) 使用 Go 和 OpenGL 重新实现生化危机2 (Resident Evil 2) 游戏引擎。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue036/openbiohazard2.png) 2、[bigslice](https://github.com/grailbio/bigslice) Go 编程语言实现的无服务器集群计算系统。类似 Apache Spark 和 FlumeJava。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue036/bigslice.png) 3、[gold](https://github.com/aunum/gold) Go 语言强化学习库。 4、[kafka-pixy](https://github.com/mailgun/kafka-pixy) Go 实现的 Kafka 的 gRPC/REST 代理。 5、[sock5](https://github.com/txthinking/socks5) Go 实现的全功能 Socks5 协议库。 6、[hof](https://github.com/hofstadter-io/hof) 使用 cuelang 语法的领域特定语言代码生成工具。 7、[mokku](https://github.com/kinbiko/mokku) 作者对该库有一篇文章讲解:5 天构建 Go mock 框架 <https://kinbiko.com/go/mokku/>。 8、[hostctl](https://github.com/guumaster/hostctl) Go 开发的 hosts 文件管理工具。 9、[RxGo](https://github.com/ReactiveX/RxGo) [ReactiveX](http://reactivex.io/),使用 Observable 流进行编程的 API。如果要编写面向事件/可观察流,管道的异步程序,可以尝试它。 10、[typex: 检查Go类型的结构,接口和传递依赖项](https://github.com/dtgorski/typex) 在命令行上打印出 Go 包的树形结构及其类型结构和接口。 ## 资源&&工具 1、[ion](https://github.com/pion/ion) Go 与 Flutter 构建的分布式实时 RTC。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue036/ion.png) 2、[在线 Go 开发环境](https://repl.it/languages/go) 在线 Go 编译器,在线 Go ID E和在线 Go 运行。这个网站还支持各种语言。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue036/repl.png) 3、[Gopher2600: Atari VCS模拟器](https://github.com/JetSetIlly/Gopher2600) 功能相对完整的模拟器,包括控制器支持和游戏记录。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue036/gopher2600.png) ## 订阅 这个周刊每周日发布,同步更新在[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
  • 图片支持拖拽、截图粘贴等方式上传