Skip to content
On this page

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

这里记录每周值得分享的 Go 语言相关内容,周日发布。

本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue

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

题图:plenti,又一个 Go 语言实现的静态网站生成器。

刊首语

昨天是 1024,大家没有加班吧!

今天这道题,你看看输出啥?

go
package main

import "fmt"

type T struct {
	x int
}

func (t T) String() string { return "boo" }

func main() {
	t := T{123}
	fmt.Printf("%v\n", t)
	fmt.Printf("%#v\n", t)
}

A:{123} main.T{x:123} B:{123} T{x:123} C:boo boo D:boo main.T

资讯

1、为 Go 尽一份力的时候到了:Go 官方 2020 年开发者调查开启

Go 项目组正在研究人们关于 Go 的经验和想法。您的反馈将帮助他们改进现有工具,并确定新功能的优先级,确保所有 Go 开发人员获得更好的体验。一旦调查结束,他们将与 Go 社区公开分享汇总的结果。

2、validating 2.0 发布

Go 库,用于验证结构,map 和切片。带有各种各样的验证器工厂(它们生成实际的验证),包括相等性,范围,包含在一组值中,长度等。

3、gomodifytags 1.11.0 发布

这个工具你日常工作可能一直在用,只是不知道是它干的。如果要在结构字段中编辑,更新或添加标签,则使工作变得更轻松。与 Vim,Atom,Emacs 和 VS Code 集成。

4、collection v1.3.1 升级记录

一个让业务开发效率提高 10 倍的 Go 库。

文章

1、卧槽!一道关于 json 和 slice 的题难倒了 80% 的人

这是上期周刊的问题解答。

2、对比三款 Go Playground:你喜欢哪款?

官方的弱爆了。。。

3、golang 拾遗:指针和接口

拾遗主要是收集和 golang 相关的琐碎知识。

4、6 张图看懂特殊的 Goroutine:g0

在 Go 中创建的所有 Goroutine 都会被一个内部的调度器所管理。Go 调度器尝试为所有的 Goroutine 分配运行时间,并且在当前的 Goroutine 阻塞或者终止的时候,Go 调度器会通过运行 Goroutine 的方式使所有 CPU 保持忙碌状态。这个调度器实际上是作为一个特殊的 Goroutine 运行的。

5、分析字节跳动高级 Go 工程师的要求,知晓自己的努力方向

来自一个 Go 招聘的公公众号。专门分享 Go 求职招聘等。

6、何时使用 Rust 和何时使用 Golang?

在本教程中,我们将就 Golang 和 Rust 进行比较和对比,评估这两种编程语言的性能,并发性,内存管理和整体开发人员体验。我们还将概述这些元素,以帮助您一目了然地为项目选择正确的语言。

7、Go 已经开始大爆发了 ?专注于 Go 职场、招聘和求职

Go 圈的朋友应该能发现,这两年 Go 受到越来越多的关注。我们不提跟国外,只看国内。去年年底,鹅厂公布了他们使用的 Top 语言,其中 Go 排在了第三位。据内部人士透露,今年有望进入第二。大厂大量使用 Go,这是一个很好信号。

8、面试官:知道 MVCC 吗? 在 etcd 中的如何实现的

在数据库领域,面对高并发环境下数据冲突的问题,业界常用的解决方案有两种:避免冲突和允许冲突。

9、Go 语言 select 语句中实现优先级

Go 语言中的 select 语句用于监控并选择一组 case 语句执行相应的代码。

10、time.Sleep(1) 后发生了什么

time.Sleep 内部代码实现大有文章,每个 Go 版本的 timer 的实现都有所不同,本文基于 Go1.14,分别从宏观和围观介绍一遍主要调度过程。

开源项目

1、hc

一个轻量级的框架,用于在 Go 中开发 HomeKit 配件。HomeKit 是 Apple 的框架,用于管理 Apple 设备中的“智能家居”设备,您可以使用 HomeKit 附件协议(HAP)来为您选择的硬件创建 HomeKit 桥。

2、systray

一个跨平台的 Go 库,用于在通知区域中放置图标和菜单。

3、Crowdsec

开源的轻量级代理,可检测并响应不良行为。它还会自动受益于我们全球社区范围内的 IP 信誉数据库。

4、scany

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

5、gobot

使用 Go 编程语言的 IOT 框架。

6、gweb

用纯 Go 编写并编译成 WASM 的浏览器游戏库。

7、bluge

Go 实现的文本索引库。

8、bot2048

2048游戏机器人玩家。Go 语言实现。对算法感兴趣的可以看该文:https://thomas-joly.com/bot-2048-create-an-artificial-player/

资源&&工具

1、verless

一个简单、轻量级静态网站生成器。轮子有点多。这里还有一个 plenti,这个感觉比 verless 更正规?

2、Chronos

用于 Go 语言的静态竞争检测器。作者建议和 go race 结合使用。

3、 gof

GoF 23 种设计模式的 Go 实现。

4、panoptes-stream

yahoo 开源的云原生分布式流网络遥测工具。

5、cassler

SSL 证书验证工具 cassler。

6、repull

使用较新版本的镜像重新启动 Docker 容器的工具。

7、3d-gopher-maze

基于终端的简单 3D 迷宫爬行游戏。

8、dnsping

检查 DNS 服务器的数据包丢失和延迟问题。

9、goshs

Go 语言编写,替代 Python 的 SimpleHTTPServer,具有许多功能和出色的设计。

10、pixlet

为基于像素的显示器构建应用程序。

订阅

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

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

wechat

Released under the MIT License.