Go语言爱好者周刊:第 52 期
这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于大部分人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:Go 泛型在纠结用 () 还是 []?
刊首语
如何快速找到 Go 优质资源?网站有 hao123 等各种导航,很多垂直领域也有类似的导航,那 Go 是不是也应该有一个类似的导航呢?答案是肯定的。而 Go 语言中文网理所当然担负起来,实现了一个 Go 的垂直导航,我叫它 haogo。目前放入的资源还不是太多,但会不断完善,也欢迎大家提交你认为应该收录的 Go 好资源。网址:https://hao.studygolang.com。
资讯
几天前也发布了 1.14.5 和 1.13.13,其中涵盖了两个安全修复:net/http 中的数据争用和 Windows 上的 X.509 验证问题。而这两个小版本更侧重普通问题的修复。
更好的支持 mod,同时对泛型的实验性支持。
Hugo 是流行的基于 Go 的静态网站构建器,这是一个重要发行版,极大的 JavaScript 改进。
Python 的语法很灵活,融合了很多其他语言中令人觉得方便的特点。然而 Python 的优势同时也隐含了其劣势。蚂蚁研究员王益在工业系统中对 Python 的亲身体会,更加深刻地了解到了 Python 的局限,而 Go+ 是弥补方案里最靠谱的。那么 Python 有哪些不足?Go+ 又是如何能弥补的?本文分享王益对 Go+ 补全 Python 的局限上的相关看法和尝试。
文章
1、由群里讨论的关于 println 和 fmt.Println “诡异”问题的思考总结
不应该依赖具体实现。发现诡异问题,试试命令行是怎么样的。
2、我用 Go 生成的随机数为什么不随机?随机数是怎样产生的
Go 中两个随机数的库,你了解多少?
3、Go 1.15 添加 Module cache 环境变量:有什么用?
讲解在 Go 1.15 中添加的 Module Cache 环境变量。
4、为什么 Go 关心 unsafe.Pointer 和 uintptr 之间的差别
Go 有两样东西或多或少是无类型指针的表示:uintptr 和 unsafe.Pointer (和外表相反,它们是内置类型)。从表面上看这有点奇怪,因为 unsafe.Pointer 和 uintptr 可以彼此来回转换。为什么不只有一种指针表现形式?两者之间有什么区别?
Go 臭名昭著的错误处理引起了外部人士对该编程语言的广泛关注,它经常被说成是该语言最有争议的设计决策之一。
从 Linux 进程通讯讲起。
曹大出品,涵盖各种池。
前几天 Redis 的作者 antirez 说他朋友面试的时候考到排序问题,然后他说要是他也会考实现一个二叉搜索树,我说在中国某公司,据说面试直接就撸一个红黑树。不是说你技术渣,试问在座的各位有几个现在直接裸写出红黑树?
来自团队的技术分享。
10、分布式系统基石之一:一致性 hash 算法 Go 语言实现
原理就很重要,看看 Go 如何实现的。
11、贝壳找房小程序从 PHP 到 Golang 的跃迁之路
看评价说是参与这个的新手居多?
泛型备受关注,上次官方放出泛型预计 2021 年 8 月发布。然而,使用小括号很多人表示不可接受。这不 golang-nuts 上进行了广泛讨论。关于为什么不用尖括号<>,官方解释是 “解析器在某些情况下要求 <> 需要 unbounded lookahead”。哪位研究比较多的可以解释下 unbounded lookahead 在 什么场景下会被解析器使用?
从留言看,大家对 iris 和 goframe 框架呼声很高。
14、Go 程序启动过程
不是很详细,但能知晓总体流程。
从分析看,上线前应该跑 data race。
16、牛逼!GitHub 全球开放源码在北极存 1000 年。有你的贡献吗?
将 “Bug” 留给子孙后代~
开源项目
用于访问各种文件系统一致的 API。还可以让您创建完全不依赖磁盘的模拟和测试文件系统。viper 和 cobra 作者的又一开源作品。
总有人想要对 map 进行排序,这个库实现了一个可排序的 map。
3、testify
具有常见断言和模拟的工具箱,可与标准库很好地配合使用。
有趣的 go struct 标记表达式语法,用于字段验证等。
用于管理环境变量中的配置数据的库。
6、can-go
使用 Go 实现的 CAN 总线库,视频:https://www.youtube.com/watch?v=IbggJHJUv0U。
7、doraemon
360 开源的基于 Prometheus 的监控系统。
Go 实现的论坛系统。
9、go-dork
用 Go 语言编写的最快的 Dork 扫描仪。
10、AdGuardHome
支持全网络广告和跟踪器屏蔽的 DNS 服务器。
资源&&工具
1、GopherCon Europe 2020 的 21 场演讲
油管视频。疫情也无法阻止 Gopher 们的分享热情。
2、errcheck
检查错误是 Go 的基本组成部分,此工具将帮助你检查是否已检查错误!
3、upterm
Go 实现的安全终端分享。工作原理图:
William Kennedy 分享。
聚焦 Go 与 PostgreSQL。
Go 注释中 TODO 标记的分析器。
订阅
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。