这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:Go With The Domain
网友贡献的一道题:
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)
}
以上代码输出什么?
整理近期的 Go 职位。有招聘需求可以到「Go招聘」发布!
2、没错,可以全职参与开源语言开发:国人开发的语言 Go+ 团队招人
分布式实时通信(RTC)系统,基于 Go 和 Flutter。
Go 开发的 Git 自助服务。
Go 基于寄存器的ABI规范的改造基本完工,平均性能提升 6%。
1、一道 Go 闭包题,面试官说原来自己答错了:面别人也涨知识
本文从一道题引出 Go 中的闭包。这是 Go 语言爱好者周刊第 90 期的一道题目。
在 Go 中,协程就是一个包含程序运行时的信息的结构体,如栈,程序计数器,或者它当前的 OS 线程。调度器还必须注意 Goroutine 的开始和退出,这两个阶段需要谨慎管理。
4、注释竟然还有特殊用途?一文解惑 //go:linkname 指令
别告诉我你还不会。
虽然目前 Go 还未准备好作为脚本语言 “开箱即用” 的特性,用来替代 Python 和 Bash ,但是我们只需要一点点准备工作就可以达到想要的目标。
go-zero 生态的一个组件 go-stash。
本文介绍 RSA 干了什么,以及我们怎样用 Go 实现它。
七牛云 CEO、ECUG 发起人许式伟以「Go+ 与数据科学」 为主题进行了分享,讲述了对数据科学变迁的理解,对新语言 Go+ 的设想和规划,并大胆指出数据科学正迎来爆发期,像字节跳动一样的新型公司只会越来越多。
作为 Go 并发原语的第一篇文章,一定绕不开 Go 的并发哲学。从 Tony Hoare 写的 Communicating Sequential Processes 这篇文章说起,这篇经典论文算是 Go 语言并发原语的根基。
10、详解 Go 程序的启动流程,你知道 g0,m0 是什么吗?
Go 程序启动过程解析。
1、encore
一个框架,可以快速创建 API 和分布式系统。
基于 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 工具。
GopherCon 提案的终极指南。
聊 Go 应用的发布。
6、scilla
网络信息收集工具。
7、gidevice
Golang 实现的 iOS 设备通信工具。
一款基于 fasthttp的 http(s) benchmark 工具,实时统计显示测试结果。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。