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

polaris · · 2348 次点击 · 开始浏览    置顶
这里记录每周值得分享的 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/issue062/tamago.jpg) 题图:TamaGo,一个 TinyGo ARM 替代品 ## 刊首语 Go101 作者发布了一道有意思的题目,这道题主要考察细节点,Go101 这本书也是以抠细节著称。看看这道题,以下程序输出什么?(单选) ```go package main const s = "Go101.org" // len(s) == 9 // 1 << 9 == 512 // 512 / 128 == 4 var a byte = 1 << len(s) / 128 var b byte = 1 << len(s[:]) / 128 func main() { println(a, b) } ``` A、0 0;B、0 4;C:4 0;D:4 4 这里涉及到两个知识点,在 Go 语言规范中都有明确的说明,但确实很细节。你答对了吗?原因知晓吗? ## 资讯 1、[Go 对静态资源的内嵌支持的提案被接受,在 Go1.16 实现](https://github.com/golang/go/issues/41191#issuecomment-697710797) 提案在这里:<https://github.com/golang/proposal/blob/master/design/draft-embed.md>。 2、[pkg.go.dev 计划重新设计](https://github.com/golang/go/issues/41585) 之前写[文章分析过](https://mp.weixin.qq.com/s/btX53JVCgfOfxDy2ynQa_A),现有的设计确实。。。期待重新设计能够更好。 3、[TinyGo 对 ESP32 和 ESP8266 的初始支持](https://aykevl.nl/2020/09/tinygo-esp32) 你可能已经听说过,上周我们在 0.15 版本的 TinyGo 中添加了 ESP32 和 ESP8266 支持。如果你熟悉微控制器,这将是令人振奋的消息,因为这些 ESP 设备既便宜又受欢迎。但是,这只是一个初始端口,在你可以利用 WiFi 和蓝牙等所有功能之前,还有很多工作要做。 4、[Caddy 2.2.0 发布](https://github.com/caddyserver/caddy/releases/tag/v2.2.0) 支持 [ZeroSSL](https://zerossl.com/features/acme/) 和 HTTP/2 server push。 5、[twirp 7.1 发布](https://github.com/twitchtv/twirp) 具有 Protobuf 服务定义的简单 RPC 框架。 6、[Go 1.16 go module 机制默认开启](https://go-review.googlesource.com/c/go/+/255052) 官方还是很谨慎。没有使用 module 真的说不过去了。 7、[k6 v0.28.0 发布](https://github.com/loadimpact/k6/releases/tag/v0.28.0) k6 是一种现代的开源性能和负载测试工具,用 Go 编写并且可以用 JavaScript 编写脚本。 ## 文章 1、[Go:跨团队协作时如何共享对象](https://mp.weixin.qq.com/s/dj4264rCAS1GAKBxyfL3KQ) 对象怎么可以共享呢? 2、[Go Playground 还能这么玩?](https://mp.weixin.qq.com/s/4EgWOSLJp5hZL1Q9L37YHg) 多人协同编辑。 3、[unsafe 真就 unsafe 吗?](https://mp.weixin.qq.com/s/RKHNKY_EVF2vR0zLQVU5_A) 知道自己在干什么还是可以使用的。 4、[你必须了解的 Go 历史:帮助理解 Go 的设计思想和每个版本的优势或弱点](https://mp.weixin.qq.com/s/Tzqn5kzdfzcQPUD5NtN2mg) 回顾 Go 版本的发展历史。 5、[2 分钟定制一个高大上的 GitHub 首页](https://mp.weixin.qq.com/s/B1Xmbo5fSp7FhxhCJzvG5w) GitHub 这个功能出来有一段时间了,GitHub 粉应该定制下。 6、[手撕 hashicorp/raft 算法【万字长文】](https://mp.weixin.qq.com/s/OmUbYHZhpvqsflyr6Y6QbQ) 本文是第 104 期手撕 hashicrop/raft 算法的文字版,建议搭配着视频(本文文末)一起阅读。 7、[原来 9 张图就可以弄懂 Go 内存管理](https://mp.weixin.qq.com/s/CsHcVpZ_9rhO3aJy1-gBaA) 从高层看内存管理的文章,而不拘于很多细节。 8、[Go 程序性能分析](https://segmentfault.com/a/1190000024541490) 性能分析是排查内存泄露等问题的常见手段,可以让我们了解和捕获到程序堆内存和 Profile 信息,方便定位问题。Go 原生提供了丰富的分析工具,下面是通过几个内存泄露的案例对 Go 程序做性能分析,并介绍相关工具原理和细节。 ## 开源项目 1、[tamago](https://github.com/f-secure-foundry/tamago) 适用于 ARM SoC 的 Bare Metal Go。该框架可在裸机 ARM System-on-Chip(SoC)设置(包括到目前为止的 Raspberry Pi 2 和 Zero)上启用 Go 应用的编译和执行。可能是更成熟的 [TinyGo](https://tinygo.org/) 的唯一 ARM 替代品,因为 TamaGo 修改了标准 Go 发行版,而 TinyGo 是基于 LLVM 的独特编译器。 2、[go-diagrams](https://github.com/blushft/go-diagrams) 使用 Go 创建漂亮的系统图。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue062/go-diagrams.jpg) 3、[mouthful](https://github.com/vkuznecovas/mouthful) Disqus 评论系统的自助托管 Go 替代方案。为你的网站添加评论。 4、[twtxt](https://github.com/jointwt/twtxt) Go 实现的去中心化类 Twitter的微博客平台。 5、[prisma-client-go](https://github.com/prisma/prisma-client-go) Prisma Client Go 是一个自动生成且完全类型安全的数据库客户端。 6、[overseer](https://github.com/jpillora/overseer) 用于创建可监控、支持优雅重启和自升级的 Go 应用的 module。 7、[gin-metrics](https://github.com/penglongli/gin-metrics) 为 prometheus 准备的度量指标,针对 Gin 框架。 8、[gomponents](https://github.com/maragudk/gomponents) Go 中的声明性视图组件,可以渲染为 HTML。这里有一篇介绍的文章:<https://www.maragu.dk/blog/gomponents-declarative-view-components-in-go/>。 ## 资源&&工具 1、[goconst](https://github.com/jgautheron/goconst) 在 Go 中查找可以被常量替换的重复字符串。 2、https://github.com/Yash-Handa/logo-ls 现代 ls 命令与 VS Code 一样的文件"图标"和 Git 集成。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue062/logo-ls.png) 3、[siegfried](https://github.com/richardlehane/siegfried) 基于签名的文件格式识别。 4、[Dbmate](https://github.com/amacneil/dbmate) 轻量级,与框架无关的数据库迁移工具。用 Go 语言编写,但可以与以任何语言编写的使用数据库的应用程序一起使用。支持 MySQL,Postgres,SQLite 和 ClickHouse。 5、[msfs2020-go](https://github.com/lian/msfs2020-go) 使用 golang 连接到 Microsoft Flight Simulator 2020。 6、[程序员的数学](https://yurichev.com/writings/Math-for-programmers.pdf)(英文) 免费电子书,专为程序员准备。 7、[pixelvideo](https://github.com/markustenghamn/pixelvideo) 如何使用 2D 游戏库制作视频的简单示例。 ## 订阅 这个周刊每周日发布,同步更新在[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群:1006366459

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