Skip to content
On this page

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

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

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

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

题图:Go With The Domain

刊首语

网友贡献的一道题:

go
package main

import "fmt"

type T1 struct {
	String func() string
}

func (T1) Error() string {
	return "T1.Error"
}

type T2 struct {
	Error func() string
}

func (T2) String() string {
	return "T2.String"
}

var t1 = T1{String: func() string { return "T1.String" }}
var t2 = T2{Error: func() string { return "T2.Error" }}

func main() {
	fmt.Println(t1.Error())
	fmt.Println(t1.String())

	fmt.Println(t2.Error())
	fmt.Println(t2.String())

	fmt.Println(t1)
	fmt.Println(t2)
}

以上代码输出什么?

谁在招 Gopher

整理近期的 Go 职位。有招聘需求可以到「Go招聘」发布!

1、Go远程工作越来越多了,真羡慕

2、没错,可以全职参与开源语言开发:国人开发的语言 Go+ 团队招人

3、当下最流行的全职开源,你不心动吗?

资讯

1、ION 1.9 发布

分布式实时通信(RTC)系统,基于 Go 和 Flutter。

2、Gitea 1.14.0 发布

Go 开发的 Git 自助服务。

3、基于寄存器 ABI 改造完成

Go 基于寄存器的ABI规范的改造基本完工,平均性能提升 6%。

文章

1、一道 Go 闭包题,面试官说原来自己答错了:面别人也涨知识

本文从一道题引出 Go 中的闭包。这是 Go 语言爱好者周刊第 90 期的一道题目。

2、Goroutine 开启和退出到底做了什么?

在 Go 中,协程就是一个包含程序运行时的信息的结构体,如栈,程序计数器,或者它当前的 OS 线程。调度器还必须注意 Goroutine 的开始和退出,这两个阶段需要谨慎管理。

4、注释竟然还有特殊用途?一文解惑 //go:linkname 指令

别告诉我你还不会。

5、把 Go 当脚本语言用

虽然目前 Go 还未准备好作为脚本语言 “开箱即用” 的特性,用来替代 Python 和 Bash ,但是我们只需要一点点准备工作就可以达到想要的目标。

6、极速精简 Go 版 Logstash

go-zero 生态的一个组件 go-stash。

7、用 Golang 实现 RSA 加密和签名(有示例)

本文介绍 RSA 干了什么,以及我们怎样用 Go 实现它。

8、大佬的思路很清晰:Go+的设计原来是怎么思考的

七牛云 CEO、ECUG 发起人许式伟以「Go+ 与数据科学」 为主题进行了分享,讲述了对数据科学变迁的理解,对新语言 Go+ 的设想和规划,并大胆指出数据科学正迎来爆发期,像字节跳动一样的新型公司只会越来越多。

9、深入 Go 并发原语 — Channel 底层实现

作为 Go 并发原语的第一篇文章,一定绕不开 Go 的并发哲学。从 Tony Hoare 写的 Communicating Sequential Processes 这篇文章说起,这篇经典论文算是 Go 语言并发原语的根基。

10、详解 Go 程序的启动流程,你知道 g0,m0 是什么吗?

Go 程序启动过程解析。

开源项目

1、encore

​ 一个框架,可以快速创建 API 和分布式系统。

2、go-snowflake

基于 Twitter 雪花算法的无锁 ID 生成器。

3、reproxy

Go 实现的极简反向代理。

4、dasel

使用选择符(.)查询和修改数据结构中的字段,支持 JSON, TOML, YAML, XML 和 CSV 等。

5、weaviate

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

6、inspr

用于简单、快速和安全地开发分布式应用程序的应用网格(app mesh)。

7、gotuna

渐进式 Web 开发框架。

8、fonts

Go 系统字体操作包。

资源&&工具

1、gops

查看正在运行 Go 进程的列表和诊断工具。作者欢迎大家提需求。

2、gitleaks

检测 Git 代码仓库中有没有存入敏感信息,比如密码。

3、pingme

可向多个消息平台和电子邮件发送消息或警报的 cli 工具。

4、播客第 175 期

GopherCon 提案的终极指南。

5、播客第 173 期

聊 Go 应用的发布。

6、scilla

网络信息收集工具。

7、gidevice

Golang 实现的 iOS 设备通信工具。

8、httpitkiyonlin 投稿)

一款基于 fasthttp的 http(s) benchmark 工具,实时统计显示测试结果。

订阅

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

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

wechat

Released under the MIT License.