这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2] 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
由于微信公众号不支持外链,文章大量链接可通过文末「阅读原文」查看。
题图:A student’s handbook
刊首语
4 月 23 日是世界读书日,当天分享了一份书单,没看的可以看看,虽然优惠没了。站长的书单
谁在招 Gopher
整理近期的 Go 职位。有招聘需求可以到「Go招聘」发布!
1、我靠!Gopher推荐成功居然给0.5个BTC
2、广告公司真香,不加班美女还多,文末有彩蛋哦
3、不加班还不够香?那见明星呢
4、Go 在 AI 领域也火了?这招聘不错,薪资不低
资讯
1、Fiber 2.8.0 发布[3]
一个受 Express 启发的 Web 框架。
2、Raft 1.3.0 发布[4]
Raft 协议的 Go 实现。
3、Go 1.17 新特性[5]
支持将一个切片转换为一个数组指针。
4、Excelize 2.4.0 发布,新增 152 项公式函数支持[6]
这是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。
文章
1、我又来推荐免费 Go 新书了:一本用 Go 讲架构的书
英文版的。
2、Go 中使用别名,简单且高效
Go 1.9 版本引入了别名,开发者可以为一个已存在的类型赋其他的名字。这个特性旨在促进大型代码库的重构,这对大型的项目至关重要。
3、代码会死循环吗?Go 异步抢占
抢占是调度器的重要部分,基于抢占调度器可以在各个协程中分配运行的时间。实际上,如果没有抢占机制,一个长时间占用 CPU 的协程会阻塞其他的协程被调度。1.14 版本引入了一项新的异步抢占的技术,赋予了调度器更大的能力和控制力。
4、用 Go 搭建一个自己的照片管理神器
Go + Vue 实现,很棒。
5、图文讲解:Go 中的循环是如何转为汇编的?
循环在编程中是一个重要的概念,且易于上手。但是,循环必须被翻译成计算机能理解的底层指令。它的编译方式也会在一定程度上影响到标准库中的其他组件。让我们开始分析循环吧。
6、Go 语言如何实现垃圾回收中的 Stop the World (STW)
本篇文章讨论实现原理基于 Go 1.13。
7、true != true?面试官,你坑人!!!
本文总结一些初学者很容易犯错的知识点。
8、嗯,你觉得 Go 在什么时候会抢占 P?
解密该过程。
9、深度阅读之《Mastering Go》
本书讲得内容非常全面,语言也很顺畅,生词非常少,并且内容没有太大难度,看起来比较过瘾,算是全面复习一下 Go 语言。如果你想开始练习阅读英文书,这本将是一个非常好的开始。
10、Go 语言源码贡献官方指导文档
先参与 Go 语言本身的,可以看看。
开源项目
1、Vugu[7]
类似 Vue,但基于 Go、HTML 和 CSS 实现。
2、tunny[8]
Goroutine 池。
3、xsel[9]
兼容 XPath 1.0 的库。
4、gronx[10]
轻量、快速、零依赖的 Cron 表达式解析器。
5、sprig[11]
提供很多 Go 模板函数。
6、lark[12]
飞书非官方 Go SDK。
7、thdwb[13]
纯 Go 实现的浏览器和浏览器引擎。
8、reproxy[14]
简单的边缘代理服务器。
9、kenny[15]
使用 webrtc 实现的命令行语音通讯。
10、kong-gateway-go-plugin[16]
使用 Go 开发一个 kong 的插件。
11、go-storage[17]
面向 Go 应用的统一存储层。
资源&&工具
1、sx[18]
快速,现代,易于使用的网络扫描仪。
2、vcluster[19]
在 k8s 集群中创建虚拟 k8s 集群。
3、油管视频[20]
一小时学习 Go。
4、goldmark-pdf[21]
Goldmark markdown 解析器的 pdf 渲染工具。
5、network-node-manager[22]
Kubernetes node 网络管理器。
6、go-generics-example[23]
Go 1.17 泛型语法样例集。
7、arch-go[24]
Go 项目架构检查。
8、git-xargs[25]
同时操作多个 git 仓库的工具。
9、播客第 176 期[26]
与《Network Programming with Go》的作者聊聊 TCP&UDP。
10、油管视频:使用 Fyne 实现国际象棋游戏[27]
这么牛逼的吗?
订阅
这个周刊每周日发布,同步更新在Go语言中文网[28]和微信公众号[29]。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。
参考资料
[1]polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]Fiber 2.8.0 发布: https://github.com/gofiber/fiber
[4]Raft 1.3.0 发布: https://github.com/hashicorp/raft
[5]Go 1.17 新特性: https://github.com/golang/go/issues/395
[6]Excelize 2.4.0 发布,新增 152 项公式函数支持: https://xuri.me/excelize/zh-hans/releases/v2.4.0.html
[7]Vugu: https://www.vugu.org/
[8]tunny: https://github.com/Jeffail/tunny
[9]xsel: https://github.com/ChrisTrenkamp/xsel
[10]gronx: https://github.com/adhocore/gronx
[11]sprig: https://github.com/Masterminds/sprig
[12]lark: https://github.com/go-lark/lark
[13]thdwb: https://github.com/danfragoso/thdwb
[14]reproxy: https://github.com/umputun/reproxy
[15]kenny: https://github.com/smf8/kenny
[16]kong-gateway-go-plugin: https://konghq.com/blog/kong-gateway-go-plugin
[17]go-storage: https://github.com/aos-dev/go-storage
[18]sx: https://github.com/v-byte-cpu/sx
[19]vcluster: https://github.com/loft-sh/vcluster
[20]油管视频: https://www.youtube.com/watch?v=N0fIANJkwic
[21]goldmark-pdf: https://github.com/stephenafamo/goldmark-pdf
[22]network-node-manager: https://github.com/kakao/network-node-manager
[23]go-generics-example: https://github.com/mattn/go-generics-example
[24]arch-go: https://github.com/fdaines/arch-go
[25]git-xargs: https://github.com/gruntwork-io/git-xargs
[26]播客第 176 期: https://changelog.com/gotime/176
[27]油管视频:使用 Fyne 实现国际象棋游戏: https://www.youtube.com/watch?v=zlPDWBLhn6c
[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