Go语言爱好者周刊:第 71 期 — 这道题可能做对的不多

Go语言精选

共 4707字,需浏览 10分钟

 ·

2020-12-01 16:43

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

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

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

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

题图:一个宇宙飞船模拟游戏 https://github.com/BenNicholls/spaceshippers

刊首语

看到一道题,挺有意思。以下代码能否通过编译?

package main

import (
 "fmt"
)

type worker interface {
 work()
}

type person struct {
 name string
 worker
}

func main() {
 var w worker = person{}
 fmt.Println(w)
}

资讯

1、Go SYSTEMS CONF SF 会议[3]

2020 年 12 月 03 日举行。Go Systems Conf SF 是一个免费的在线 Go 会议,将于下周举行,关注构建和可扩展 Go 系统。来自 Monzo、VMware 和 DigitalOcean 等公司的优秀演讲者阵容。该会议中 PingCAP 的 CTO 黄东旭也是演讲者。

2、vscode-go 0.19.0 发布[4]

GitHub-Actions 自动发布的说明。

3、olric 0.3.0 发布[5]

分布式缓存和内存键/值数据存储。它既可以用作嵌入式 Go 库,也可以用作独立于语言的服务。

4、GoLand 2020.3 RC 发布[6]

离正式版不远了。

5、Hugo 0.79.0 发布[7]

小版本,但有用。

6、go-zero 1.0.29 发布[8]

goctl 增加了一些功能。

文章

1、CNCF 刚宣布 etcd 正式毕业:赶紧实战下 etcd 的服务发现

在云原生的时代,服务发现已经是必不可少的功能,我借着最近迁移 gRPC 服务的机会尝试了一下如何用 etcd 实现服务发现,期间遇到诸多问题,本文逐一记之。

2、一文搞懂 Go 语言中的切片排序

切片是Go语言中引入的用于在大多数场合替代数组的语法元素。切片是长度可变的同类型元素序列,它不支持存储不同类型的元素,当然如果你非用sl := []interface{}{"hello", 11,  3.14}来抬杠^_^,那就另当别论。

3、重度使用 Go 的“后遗症“,你有吗?

很多人可能会有。

4、实战:150 行 Go 实现高性能 socks5 代理

光说不练假把式,不如上手试试,这篇来写个有点卵用的东西。

5、基于 Golang 语言的微服务熔断器

从单体服务拆分到微服务过程中,原来模块间交互逐渐抽离成远程调用,可能 http,rpc,tcp 等等,那么这些模块在调用中一定存在某种依赖关系。

6、Blackrota, 一个 Go 开发的高度混淆的后门[9]

最近,我们通过 Anglerfish 蜜罐捕获到一个利用 Docker Remote API 未授权访问漏洞来传播的 Go 语言编写的恶意后门程序,鉴于它上线的 C2 为 blackrota.ga ,我们把它命名为 Blackrota。

开源项目

1、clock[10]

Clock 是 Go 中用来模拟时间的一个小库。

2、box-cli-maker[11]

为你的 CLI 应用制作高度定制的盒子(方框)。

3、machinery[12]

一个基于分布式消息传递的异步任务队列/作业队列。

4、aws-lambda-go-api-proxy[13]

可以轻松地将使用 Gin 等框架编写的 API 移植到 AWS Lambda 和 Amazon API Gateway。

5、netaddr[14]

Go 网络地址包,据说比 net.IP 更好,不过目前还不建议用于生产环境。

6、grocksdb[15]

rocksdb 的 Go binding。

7、gotalk[16]

异步对等通信协议和库。

8、stripe-go[17]

转到 Stripe API 库。

9、cogman[18]

高效的后台处理,后端支持 RabbitMQ 和 Redis。

10、go-archaius[19]

分布式系统中使用的动态配置框架。

11、simplecert[20]

用于自动获取 Let's Encrypt SSL 证书的 Golang 库。

12、fab.io[21]

Fab.io 是用 Go 语言编写的轻量级游戏后端框架。

13、participle[22]

Go 的解析库。

资源&&工具

1、ethr[23]

一个用于 TCP、UDP 和 HTTP 的网络性能测量工具。微软出品。

2、smithy[24]

如果你喜欢 gitea 之类的东西,可以在 git 存储库中使用一个简单的前端。

3、maddy[25]

Maddy Mail Server 实现了运行电子邮件服务器所需的所有功能。

4、油管视频[26]

为什么 GitHub 客户端命令行组从 Ruby 切换到 Go?这是 Go Time 第 153 期[27]

5、ham[28]

用 Go 检测垃圾短信。

6、cdb[29]

常量数据库 golang 实现。

7、zq[30]

结构化日志的搜索和分析工具。

8、cron[31]

CLI 工具(hcron)和 Go 库(cron),用于将 CRON 表达式转换为人类可读的描述。

9、glsnip[32]

跨机器复制和粘贴。

10、webify[33]

将 Shell 命令转换为 Web 服务。

11、gophertunnel[34]

Go 语言编写的 Minecraft 软件的瑞士军刀。

12、gospider[35]

快速的 Web 爬虫。

订阅

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

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

wechat

上一期Go语言爱好者周刊:第 70 期 — 一道问答题
参考资料

[1]

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

[2]

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

[3]

Go SYSTEMS CONF SF 会议: https://systemsconf.io/

[4]

vscode-go 0.19.0 发布: https://github.com/golang/vscode-go/releases/tag/v0.19.0

[5]

olric 0.3.0 发布: https://github.com/buraksezer/olric

[6]

GoLand 2020.3 RC 发布: https://blog.jetbrains.com/go/2020/11/27/goland-2020-3-rc-now-available/

[7]

Hugo 0.79.0 发布: https://gohugo.io/news/0.79.0-relnotes/

[8]

go-zero 1.0.29 发布: https://github.com/tal-tech/go-zero

[9]

Blackrota, 一个 Go 开发的高度混淆的后门: https://blog.netlab.360.com/blackrota-an-obfuscated-backdoor-written-in-go/

[10]

clock: https://github.com/benbjohnson/clock

[11]

box-cli-maker: https://github.com/Delta456/box-cli-maker

[12]

machinery: https://github.com/RichardKnop/machinery

[13]

aws-lambda-go-api-proxy: https://github.com/awslabs/aws-lambda-go-api-proxy

[14]

netaddr: https://github.com/inetaf/netaddr

[15]

grocksdb: https://github.com/linxGnu/grocksdb

[16]

gotalk: https://github.com/rsms/gotalk

[17]

stripe-go: https://github.com/stripe/stripe-go

[18]

cogman: https://github.com/Joker666/cogman

[19]

go-archaius: https://github.com/go-chassis/go-archaius

[20]

simplecert: https://github.com/foomo/simplecert

[21]

fab.io: https://github.com/kooinam/fab.io

[22]

participle: https://github.com/alecthomas/participle

[23]

ethr: https://github.com/microsoft/ethr

[24]

smithy: https://github.com/honza/smithy

[25]

maddy: https://github.com/foxcpp/maddy

[26]

油管视频: https://www.youtube.com/watch?v=fuYwyQllMpE

[27]

Go Time 第 153 期: https://changelog.com/gotime/153

[28]

ham: https://github.com/PaluMacil/ham

[29]

cdb: https://github.com/alldroll/cdb

[30]

zq: https://github.com/brimsec/zq

[31]

cron: https://github.com/lnquy/cron

[32]

glsnip: https://github.com/bradwood/glsnip

[33]

webify: https://github.com/beefsack/webify

[34]

gophertunnel: https://github.com/Sandertv/gophertunnel

[35]

gospider: https://github.com/jaeles-project/gospider

[36]

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

[37]

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


浏览 67
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报