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

polaris · · 3085 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

这里记录每周值得分享的 Go 语言相关内容,周日发布。 本周刊开源(GitHub:[polaris1119/golangweekly](https://github.com/polaris1119/golangweekly)),欢迎投稿,推荐或自荐文章/软件/资源等,请[提交 issue](https://github.com/polaris1119/golangweekly/issues) 。 鉴于大部分人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue027/cover.jpg) 题图:giu ## 刊首语 新年快乐!这个特殊的新年,大家安心在家,可以顺便学习学习 Go 哦。在这里祈祷疫情尽快控制住,武汉加油!! ## 资讯 1、[Traefik 2.1.3 发布,HTTP 反向代理与负载均衡工具](https://github.com/containous/traefik/releases/tag/v2.1.3) 小版本更新。 2、[TiDB 4.0.0-beta 发布,分布式 NewSQL 数据库](https://www.oschina.net/news/112907/tidb-4-0-0--beta-released) 期待正式版发布。 3、[gout v0.0.7 版本发布,Golang 流式 http client](https://www.oschina.net/news/112900/gout-0-0-7-released) 号称做 GitHub 最好用的 http client 库,让你体会到还没有爽玩。那什么是流式客户端? ## 文章 1、[有趣实验: hack go interface](https://mp.weixin.qq.com/s/_Th5plNZa5LwINExKrMcCw) Go interface 代表一组方法的集合,凡是实现这组集合的对象都称之为实现了这个接口,具体的对象不必像其它编程语言比如Java那样必须显示的`Implement`某个或者某些接口,所以说Go的接口类型是鸭子类型(`Duck type`)。 2、[Go 实现百万 WebSocket 连接](https://mp.weixin.qq.com/s/nukISdSBwnaCKeQSxep8dg) 本文主要介绍如何使用 Go 开发高负载的 WebSocket 服务。如果你熟悉 WebSockets,但对 Go 了解不多,仍希望你对这篇文章的想法和性能优化方面感兴趣。 3、[漫画:排序数组删除重复元素(leetcode 26)](https://mp.weixin.qq.com/s/T254utw4efpux2Qu2IIRhg) 漫画的形式讲解 LeetCode。 4、[Go 语言代码安全审计分享](https://mp.weixin.qq.com/s/8Ju05hYCYk6bOgkvjtP11A) 由于 Go 语言代码审计资料较少,这里就把最近学习的对Vulnerability-goapp项目的审计过程分享一下。整个审计过程结合代码安全扫描工具和人工审计,期间也发现代码安全审计工具的漏报误报问题。 5、[Go 语言标准库中 atomic.Value 的前世今生](https://blog.betacat.io/post/golang-atomic-value-exploration/) 在 Go 语言标准库中,sync/atomic包将底层硬件提供的原子操作封装成了 Go 的函数。但这些操作只支持几种基本数据类型,因此为了扩大原子操作的适用范围,Go 语言在 1.4 版本的时候向sync/atomic包中添加了一个新的类型Value。此类型的值相当于一个容器,可以被用来“原子地"存储(Store)和加载(Load)任意类型的值。 6、[用一个生产与消费例子学习 go 语言中 goroutine,channel,select,time](https://studygolang.com/articles/26266) 通过一个例子来说一下对它们的理解与使用。 ## 开源项目 1、[giu](https://github.com/AllenDang/giu) 基于 [Dear ImGui](https://github.com/ocornut/imgui) 的 Golang 跨平台快速 GUI 框架 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue027/giu.png) 2、[stats: 全面的 Go 统计资料库套件](https://github.com/montanaflynn/stats) 没有外部依赖,经过良好测试,可以使用平均值、总和、百分位数、标准差等概念。 3、[termenv: 终端应用程序的高级 ANSI 样式和颜色支持](https://github.com/muesli/termenv) 提供方便的方法来为输出着色和样式设置,而无需处理怪异的 ANSI 转义序列和颜色转换。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue027/termenv.png) 4、[mock: Go 的模拟框架](https://github.com/golang/mock) 这是官方出品。有两种操作模式:源和反射。源模式从源文件生成模拟接口。反射模式通过构建使用反射来了解接口的程序来生成模拟接口。 5、[Eris: 处理,跟踪和记录错误的更好方法?](https://github.com/rotisserie/eris) 旨在通过错误包装,堆栈跟踪和输出格式为你提供对错误处理的更多控制。 6、[ink: Go 中的 2D 图形框架](https://github.com/buchanae/ink) 一个基于 OpenGL 的专注于创意编码的实验项目。这些[示例](https://github.com/buchanae/ink/tree/master/sketches)展示了它可以做什么(至少在代码中)。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue027/ink.png) 7、[PipeIt](https://github.com/AllenDang/PipeIt) 文本转换,清理和提取工具。 8、[neffos](https://github.com/kataras/neffos) 一个快速且可扩展的 Websocket 框架。 9、[agones](https://github.com/googleforgames/agones) 一个用于在 Kubernetes 上托管、运行和扩展专用游戏服务器的库。 10、[fiber](https://github.com/gofiber/fiber) 一种 Express 风格的、基于 fasthttp 的 HTTP web 框架。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue027/fiber-bench.png) 11、[go-plantuml](https://github.com/bykof/go-plantuml) 基于 Go 源码生成 plantuml 图。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue027/go-plantuml.png) 12、[licenseclassifier](https://github.com/google/licenseclassifier) 识别文件中的 license 类型。 13、[app](https://github.com/maxence-charriere/app) 一个 WebAssembly 框架,用于使用 Go,HTML 和 CSS 构建 GUI 应用。 14、[c2go](https://github.com/elliotchance/c2go) 将 C 代码转换为 Go 代码的工具。 15、[errlog](https://github.com/snwfdhmp/errlog) 使用静态和堆栈跟踪分析来快速确定哪个函数调用导致的错误。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue027/errlog.png) 16、[regexp2](https://github.com/dlclark/regexp2) 全功能正则表达式引擎。如果标准库的 regexp 满足不了你,可以尝试使用 regexp2。 17、[gzip](https://github.com/nanmu42/gzip) 一个智能、高效、开箱即用、可定制,适用于 Gin 和 net/http 的 gzip 中间件。 18、[gotoprom](https://github.com/cabify/gotoprom) 用于 golang 的类型安全的 Prometheus 指标构建器库。 19、[squzy](https://github.com/squzy/squzy) 一个用 Golang 编写的高性能开源监控系统。 ## 资源&&工具 1、[Go 语言算法视频课程](https://algorithmswithgo.com/)(英文) Algorithms with Go 是完全免费的,但需要提供一个有效的电子邮件地址才能访问。它不会向你发送垃圾邮件,并且退订非常容易。 2、[百度 BFE 应用层负载均衡引擎使用手册](https://www.bookstack.cn/read/baidu-bfe/overview.md) BFE 是基于百度统一前端技术框架开源的七层流量接入系统,Go 语言实现。 3、[使用 Go 实现基于终端的俄罗斯方块](https://rocketnine.space/post/tetris-1/) 这是有关使用 Go 创建基于终端的俄罗斯方块克隆的一系列教程的第一部分。 4、[gotime 第 113 期](https://changelog.com/gotime/113) Go at Cloudflare 5、[gotime 第 114 期](https://changelog.com/gotime/114) 如何应对云基础架构管理发展的变化? 6、[Go 编程教程](https://github.com/TutorialEdge/go) 此项目的目标是能够跟踪所有 Go 教程及其各自的 github 存储库位置和构建状态。这些将在发布时随着 Go 的最新版本进行更新并运行。 7、[使用 Go 打造“星际迷航”为主题的搜索引擎服务](https://timberry.dev/posts/learning-to-go-part0/)(英文) 实战系列教程。GCTT 会考虑翻译为中文。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue027/tngsearch.png) 8、[数据结构和算法的 Go 实现](https://github.com/priyankchheda/algorithms) Go 中的数据结构库和算法实现,欢迎贡献。 ## 订阅 这个周刊每周日发布,同步更新在[Go语言中文网](https://studygolang.com/go/weekly)、[微信公众号](https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91) 和 [今日头条](https://www.toutiao.com/c/user/59903081459/#mid=1586087918877709)。 微信搜索"Go语言中文网"或者扫描二维码,即可订阅。 ![wechat](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/wechat.png)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3085 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传