这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2] 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
由于微信公众号不支持外链,文中大量链接可通过文末「阅读原文」查看。
题图:PingMe
刊首语
上周周刊的题目,正确率 62%,挺出乎意料的。不过有些人提到,感觉有陷阱,总觉得不那么简单。当然也有些人真的是做错了。可见,不少人的基础还是太弱,要加强!
今天依然一道简单的题目,希望你能自信点。
package main
import (
"fmt"
)
func main() {
s := []int{9, 8, 7}
p := &s
r := *p
r[0] = 11
fmt.Println(s[0])
}
另外,大家有好的题目,欢迎提交给我。加我微信(274768166 或到 GitHub 提交 Issue:https://github.com/polaris1119/golangweekly)。
资讯
1、Echo 4.3 发布[3]
高性能的 Web 框架。
2、Heimdall 7.0 发布[4]
Go 的增强型 HTTP 客户端。
3、v8go 0.6.0 发布[5]
在 Go 中执行 JavaScript。
谁在招 Gopher
整理近期的 Go 职位。有招聘需求可以到「Go招聘」发布!
文章
在内存从分配到回收的生命周期中,内存不再被使用的时候,标准库会自动执行 Go 的内存管理。
2、再一次看到了 Go 的节制:int128 类型要不要支持?
克制还是很重要的。
使用是一定要注意安全。
4、Go Team Leader — rsc大神新开源了一个库,增强模板功能
说不定什么时候需要使用。
想过这个问题吗?
6、Uber 使用 Go 的规模这么大?!都自己定制的 Go 编译器了
大厂很强。
延迟函数( deferred functions )在所在函数返回前,以与声明相反的顺序立即被调用。
8、面试官:说说unsafe.Pointer和uintptr的区别和联系
unsafe 很强大,但一定要注意安全。
不知道大家在实际工作中有没有遇到过老版本 Go 调度器的坑:死循环导致程序“死机”。
一个 Go 编程的使用技巧:怎么把内存的结构体写入到磁盘?又怎么读出来?
11、实现无限缓存的 channel[6]
Go语言的channel又两种类型,一种是无缓存的channel,一种是有缓存的buffer,这两种类型的channel大家都比较熟悉了。
12、Go 数组比切片好在哪?
你觉得呢?
开源项目
1、bloom[7]
Bloom Filter 的 Go 语言实现。
2、eliasdb[8]
图数据库。
3、secure[9]
HTTP 安全中间件,包含很多安全策略。
4、codename[10]
生成随机的、可发音的名字,像 docker 给容器起的默认名字那样。
5、bofied[11]
一个网络启动服务器,支持PXE服务协议。
6、milvus[12]
开源向量数据库搜索引擎。
7、singularity[13]
一个开源的容器平台。
8、mk48[14]
Go 实现的开源游戏项目。
9、nats-roundtripper[15]
使用 NATS 作为 http.RoundTripper 的实现。
资源&&工具
1、mangadesk[16]
MangaDex 的终端客户端。
2、teams-cli[17]
微软 Teams 的命令行终端 UI 工具。
3、dblab[18]
支持与 PostgreSQL 和 MySQL 交互的终端命令行工具。
4、popeye[19]
一个实时扫描 Kubernetes 集群并报告部署资源和配置的潜在问题的工具。
5、magia[20]
Go 实现的 GBA 游戏模拟器。
6、ctop[21]
像 top 那样的容器度量数据采集工具。
7、tz[22]
时区辅助工具。
8、pingme[23]
发送消息或警告到多个平台或邮箱,比如 slack、telegram 等。
订阅
这个周刊每周日发布,同步更新在Go语言中文网[24]和微信公众号[25]。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。
往期推荐
参考资料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]Echo 4.3 发布: https://github.com/labstack/echo
[4]Heimdall 7.0 发布: https://github.com/gojek/heimdall
[5]v8go 0.6.0 发布: https://github.com/rogchap/v8go
[6]实现无限缓存的 channel: https://colobu.com/2021/05/11/unbounded-channel-in-go/
[7]bloom: https://github.com/bits-and-blooms/bloom
[8]eliasdb: https://github.com/krotik/eliasdb
[9]secure: https://github.com/unrolled/secure
[10]codename: https://github.com/lucasepe/codename
[11]bofied: https://github.com/pojntfx/bofied
[12]milvus: https://github.com/milvus-io/milvus
[13]singularity: https://github.com/sylabs/singularity
[14]mk48: https://github.com/SoftbearStudios/mk48
[15]nats-roundtripper: https://github.com/ripienaar/nats-roundtripper
[16]mangadesk: https://github.com/darylhjd/mangadesk
[17]teams-cli: https://github.com/fossteams/teams-cli
[18]dblab: https://github.com/danvergara/dblab
[19]popeye: https://github.com/derailed/popeye
[20]magia: https://github.com/pokemium/magia
[21]ctop: https://github.com/bcicen/ctop
[22]tz: https://github.com/oz/tz
[23]pingme: https://github.com/kha7iq/pingme
[24]Go语言中文网: https://studygolang.com/go/weekly
[25]微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91