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

polaris · · 876 次点击 · 开始浏览    置顶
这里记录每周值得分享的 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/issue052/cover.jpg) 题图:Go 泛型在纠结用 () 还是 []? ## 刊首语 如何快速找到 Go 优质资源?网站有 hao123 等各种导航,很多垂直领域也有类似的导航,那 Go 是不是也应该有一个类似的导航呢?答案是肯定的。而 Go 语言中文网理所当然担负起来,实现了一个 Go 的垂直导航,我叫它 haogo。目前放入的资源还不是太多,但会不断完善,也欢迎大家提交你认为应该收录的 Go 好资源。网址:<https://hao.studygolang.com>。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue052/haogo.png) ## 资讯 1、[Go 1.14.6 和 Go 1.13.14 发布](https://studygolang.com/topics/11919) 几天前也发布了 1.14.5 和 1.13.13,其中涵盖了两个安全修复:net/http 中的数据争用和 Windows 上的 X.509 验证问题。而这两个小版本更侧重普通问题的修复。 2、[GoLand 2020.2 测试版可用](https://blog.jetbrains.com/2020/07/16/goland-2020-2-reaches-beta/) 更好的支持 mod,同时对泛型的实验性支持。 3、[Hugo 0.74.0](https://gohugo.io/news/0.74.0-relnotes/) Hugo 是流行的基于 Go 的静态网站构建器,这是一个重要发行版,极大的 JavaScript 改进。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue052/hugo.png) 4、[蚂蚁王益:Go+ 可有效补全 Python 的不足](https://mp.weixin.qq.com/s/Yz1JIXccFEX3OAkmRGzd_Q) Python 的语法很灵活,融合了很多其他语言中令人觉得方便的特点。然而 Python 的优势同时也隐含了其劣势。蚂蚁研究员王益在工业系统中对 Python 的亲身体会,更加深刻地了解到了 Python 的局限,而 Go+ 是弥补方案里最靠谱的。那么 Python 有哪些不足?Go+ 又是如何能弥补的?本文分享王益对 Go+ 补全 Python 的局限上的相关看法和尝试。 ## 文章 1、[由群里讨论的关于 println 和 fmt.Println “诡异”问题的思考总结](https://mp.weixin.qq.com/s/ukBUGNYaULfF14x0_DfUyQ) 不应该依赖具体实现。发现诡异问题,试试命令行是怎么样的。 2、[我用 Go 生成的随机数为什么不随机?随机数是怎样产生的](https://mp.weixin.qq.com/s/-VUfTmSVmtXwQWpJOykf5g) Go 中两个随机数的库,你了解多少? 3、[Go 1.15 添加 Module cache 环境变量:有什么用?](https://mp.weixin.qq.com/s/WBhPDBb67nz0Rt6te5dHVw) 讲解在 Go 1.15 中添加的 Module Cache 环境变量。 4、[为什么 Go 关心 unsafe.Pointer 和 uintptr 之间的差别](https://mp.weixin.qq.com/s/ImlseLD8Ocw54iwaMruXpQ) Go 有两样东西或多或少是无类型指针的表示:uintptr 和 unsafe.Pointer (和外表相反,它们是内置类型)。从表面上看这有点奇怪,因为 unsafe.Pointer 和 uintptr 可以彼此来回转换。为什么不只有一种指针表现形式?两者之间有什么区别? 5、[为什么 Go 的错误处理很棒?还是有人很喜欢的嘛](https://mp.weixin.qq.com/s/wYkta4h6OYUxKnlIZD7T_g) Go 臭名昭著的错误处理引起了外部人士对该编程语言的广泛关注,它经常被说成是该语言最有争议的设计决策之一。 6、[Golang 热更新原理](https://xie.infoq.cn/article/c233ef969f1f86d3f77d92e19) 从 Linux 进程通讯讲起。 7、[一些连接池相关的总结](https://xargin.com/some-connection-pool/) 曹大出品,涵盖各种池。 8、[用 Go 撸一个二叉搜索树](https://colobu.com/2020/07/15/implement-bst-in-Go/) 前几天 Redis 的作者 antirez 说他朋友面试的时候考到排序问题,然后他说要是他也会考实现一个二叉搜索树,我说在中国某公司,据说面试直接就撸一个红黑树。不是说你技术渣,试问在座的各位有几个现在直接裸写出红黑树? 9、[如何在 Go 中写出高效的单元测试](https://mp.weixin.qq.com/s/a6qQ8U5PYYul59oFOVXugw) 来自团队的技术分享。 10、[分布式系统基石之一:一致性 hash 算法 Go 语言实现](https://mp.weixin.qq.com/s/Kz03Z_s26WyuOh7-7mYTTw) 原理就很重要,看看 Go 如何实现的。 11、[贝壳找房小程序从 PHP 到 Golang 的跃迁之路](https://mp.weixin.qq.com/s/phaTJPs80Xvva0rAThvW9A) 看评价说是参与这个的新手居多? 12、[Go 泛型的括号选择:中括号还是小括号](https://mp.weixin.qq.com/s/caqf0pIM4nTByh_c5HqWPw) 泛型备受关注,上次官方放出泛型预计 2021 年 8 月发布。然而,使用小括号很多人表示不可接受。这不 golang-nuts 上进行了广泛讨论。关于为什么不用尖括号<>,官方解释是 “解析器在某些情况下要求 <> 需要 unbounded lookahead”。哪位研究比较多的可以解释下 unbounded lookahead 在 什么场景下会被解析器使用? 13、[Go 指南:顶级 Go 框架、IDE 和工具列表](https://mp.weixin.qq.com/s/5q7G6BpeRohX4v2GvvZUAQ) 从留言看,大家对 iris 和 goframe 框架呼声很高。 14、[Go 程序启动过程](https://overstack.me/202007/go-program-startup-process.html) 不是很详细,但能知晓总体流程。 15、[踩坑记:Go 服务灵异 panic](https://segmentfault.com/a/1190000023283854) 从分析看,上线前应该跑 data race。 16、[牛逼!GitHub 全球开放源码在北极存 1000 年。有你的贡献吗?](https://mp.weixin.qq.com/s/PQn7Xwmdwk6EcFw68hlffQ) 将 “Bug” 留给子孙后代~ ## 开源项目 1、[afero: Go 语言实现的抽象文件系统](https://github.com/spf13/afero) 用于访问各种文件系统一致的 API。还可以让您创建完全不依赖磁盘的模拟和测试文件系统。viper 和 cobra 作者的又一开源作品。 2、[go-ordered-map](https://github.com/wk8/go-ordered-map) 总有人想要对 map 进行排序,这个库实现了一个可排序的 map。 3、[testify](https://github.com/stretchr/testify) 具有常见断言和模拟的工具箱,可与标准库很好地配合使用。 4、[go-tagexpr](https://github.com/bytedance/go-tagexpr) 有趣的 go struct 标记表达式语法,用于字段验证等。 5、[envconfig](https://github.com/kelseyhightower/envconfig) 用于管理环境变量中的配置数据的库。 6、[can-go](https://github.com/einride/can-go) 使用 Go 实现的 CAN 总线库,视频:<https://www.youtube.com/watch?v=IbggJHJUv0U>。 7、[doraemon](https://github.com/Qihoo360/doraemon) 360 开源的基于 Prometheus 的监控系统。 8、[casbin-forum](https://github.com/casbin/casbin-forum) Go 实现的论坛系统。 9、[go-dork](https://github.com/dwisiswant0/go-dork) 用 Go 语言编写的最快的 Dork 扫描仪。 10、[AdGuardHome](https://github.com/AdguardTeam/AdGuardHome) 支持全网络广告和跟踪器屏蔽的 DNS 服务器。 ## 资源&&工具 1、[GopherCon Europe 2020 的 21 场演讲](https://www.youtube.com/playlist?list=PLtoVuM73AmsKnUvoFizEmvWo0BbegkSIG) 油管视频。疫情也无法阻止 Gopher 们的分享热情。 2、[errcheck](https://github.com/kisielk/errcheck) 检查错误是 Go 的基本组成部分,此工具将帮助你检查是否已检查错误! 3、[upterm](https://github.com/jingweno/upterm) Go 实现的安全终端分享。工作原理图: ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue052/upterm-flowchart.svg) 4、[油管视频:Go 泛型](https://www.youtube.com/watch?v=GFihRsKZ_pw) William Kennedy 分享。 5、[Go Time 第 137 期](https://changelog.com/gotime/137) 聚焦 Go 与 PostgreSQL。 6、[todocheck](https://github.com/preslavmihaylov/todocheck) Go 注释中 TODO 标记的分析器。 ## 订阅 这个周刊每周日发布,同步更新在[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群:812540095

876 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传