Go语言爱好者周刊:第 159 期 — 这道题目有点意思
2022-9-11 22:0:46 Author: Go语言中文网(查看原文) 阅读量:10 收藏

这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2]

鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。

由于微信公众号不支持外链,文中大量链接可提供文末「阅读原文」查看。

题图:可视化 Go Runtime 指标

刊首语

上期题目正确率 43%,一起看下。以下代码输出什么?

package main

import "fmt"

func main() {
 var s fmt.Stringer
 s = "s"
 fmt.Println(s)
}

A:s;B:编译错误;C:运行时 panic

正确答案:B。因为 字符串类型没有实现 fmt.Stringer 接口,所以编译错误。

本期题目来自 Go101。以下代码输出什么?

package main

func main() {
  m := make(map[int]int3)
  x := len(m)
  m[1] = m[1]
  y := len(m)
  println(x, y)
}

资讯

1、Go 1.19.1 发布了:看看要不要升级!!!

安全更新和一些 bug 修复。

2、结构化日志讨论[3]

官方关于结构化日志的讨论。

3、lipgloss 0.6 发布[4]

漂亮的终端布局的风格定义。

4、Echo v4.9 发布[5]

高性能的 REST 框架。

5、mpb v8.0 发布[6]

在终端为 Go 命令行应用程序显示进度条。

6、scany 1.2 发布[7]

Go 实现的用于将数据从数据库扫描到 Go 结构的库。

7、FastHTTP 1.40 发布[8]

Go 快速的 HTTP 包。为高性能而调优。 热路径中的零内存分配。 比 net/http 快 10 倍。有兴趣可以研究为什么能做到快这么多。

8、weaviate 1.15 发布[9]

云原生、模块化、实时矢量搜索引擎。

文章

1、从Go语言角度剖析关于计算机位的问题

本文主要是理解计算机内存的本质,1字节=8位,1位=一个通电or没通电的电子元件,通过不同的00101010表示不同的符号。

2、TIOBE 9 月编程语言排行榜:Go 快进入前 10 了!!

Go 第 12 名了。

3、一个线程安全的泛型支持map库[10]

Go语言原生的map类型并不支持并发读写。concurrent-map提供了一种高性能的解决方案:通过对内部map进行分片,降低锁粒度,从而达到最少的锁等待时间(锁冲突)。

4、与日俱进,在 Go 1.20 中这种高效转换的方式又变了[11]

Go1.20 字符串和字节数组的高效转换方式会变化。

5、码住!Golang并发安全与引用传递总结

因为现在服务上云的趋势,业务代码都纷纷转向golang的技术栈。在迁移或使用的过程中,由于对golang特性的生疏经常会遇到一些问题,本文总结了golang并发安全和参数引用传值时的一些知识。

6、Go 生态:Prometheus的四种指标类型,我终于搞懂了

指标是用来衡量性能、消耗、效率和许多其他软件属性随时间的变化趋势。

开源项目

1、lane[12]

泛型版优先队列、队列、栈等数据结构的实现。

2、fetch[13]

简单、好用、强大的 Go HTTP Client。

资源&&工具

1、goleak[14]

Uber 出品的 goroutine 泄露检测器。

2、go-bench-viewer[15]

Go benchmark 结果查看工具。

3、GopherCon Europe 2022 视频列表[16]

油管视频。

4、fan2go[17]

提供基于温度传感器的动态速度控制的简单守护程序。

5、sql2struct[18]

一个可以将 SQL 语句转换成 Go struct 的工具。

订阅

这个周刊每周日发布,同步更新在Go语言中文网[19]微信公众号[20]

微信搜索"Go语言中文网"或者扫描二维码,即可订阅。

wechat

参考资料

[1]

polaris1119/golangweekly: https://github.com/polaris1119/golangweekly

[2]

提交 issue: https://github.com/polaris1119/golangweekly/issues

[3]

结构化日志讨论: https://github.com/golang/go/discussions/54763

[4]

lipgloss 0.6 发布: https://github.com/charmbracelet/lipgloss

[5]

Echo v4.9 发布: https://github.com/labstack/echo/releases/tag/v4.8.0

[6]

mpb v8.0 发布: https://github.com/vbauerster/mpb

[7]

scany 1.2 发布: https://github.com/georgysavva/scany

[8]

FastHTTP 1.40 发布: https://github.com/valyala/fasthttp

[9]

weaviate 1.15 发布: https://github.com/semi-technologies/weaviate

[10]

一个线程安全的泛型支持map库: https://colobu.com/2022/09/04/a-thread-safe-and-generic-supported-map/

[11]

与日俱进,在 Go 1.20 中这种高效转换的方式又变了: https://colobu.com/2022/09/06/string-byte-convertion/

[12]

lane: https://github.com/oleiade/lane

[13]

fetch: https://github.com/go-zoox/fetch

[14]

goleak: https://github.com/uber-go/goleak

[15]

go-bench-viewer: https://nidorx.github.io/go-bench-viewer

[16]

GopherCon Europe 2022 视频列表: https://www.youtube.com/playlist?list=PLtoVuM73AmsJjj5tnZ7BodjN_zIvpULSx

[17]

fan2go: https://github.com/markusressel/fan2go

[18]

sql2struct: https://github.com/idoubi/sql2struct

[19]

Go语言中文网: https://studygolang.com/go/weekly

[20]

微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMTA4Njc0OQ==&mid=2651453412&idx=1&sn=03bba0042bcdca48a014bacfc5d15f79&chksm=80bb2916b7cca000f1afe91daaef2a123283b55b72a55ceaf4c5ab3fdcad2a69afd43d2077b5#rd
如有侵权请联系:admin#unsafe.sh