Go语言爱好者周刊:第 41 期
这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于大部分人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:来自 A Journey With Go
刊首语
SQLBoiler 是用于生成针对你的数据库 schema 的 Go ORM 的工具。它是“数据库优先” ORM,而不是“代码优先”(如 gorm/gorp 等是代码优先的)。这意味着你必须首先创建数据库 schema。请使用 goose,sql-migrate 之类的工具或其他一些迁移工具来管理数据库生命周期的这一部分。
不管你喜不喜欢 ORM,相关的工具的确很多!
资讯
这是来自 4月 26 日 Go Remote Fest 会议的分享整理,原标题:《What’s coming in Go 1.15》,一起看看计划在今年 8 月份发布的 Go1.15 都有哪些值得关注的变化。本文提到的点,大部分已经 Merge,毕竟包括 8 月份只剩下 3 个月了。之前提到过,受疫情影响,这次的发布内容不会太多。
Youtube 使用 Go 实现的开源分布式 MySQL 工具。
3、改善 go module major 版本体验的 proposal
不断改进 module。
通过为 NATS 消息传递系统实施持久的流增强,Liftbridge 提供了轻量级的,容错的消息流。
文章
1、如何在 3 天内使用 Go 和 Vue 创建实时患者监护系统
程序员为疫情做贡献。
我最近决定在一个新项目中使用 GoLang 来实现一组增删改查的 API。在此之前,我较为熟悉 Java,Groovy,了解一些 Python。
3、[典藏版]Golang三色标记、混合写屏障GC模式图文全分析
如今,GC 话题成为后端工程师面试和闲聊的主话题,今天我们就详细的来聊一聊。
4、基于 Go 语言开发在线论坛增补篇:通过 Viper 读取配置文件并实现热加载
Viper 是 Go 语言的完整配置解决方案,支持多个数据源和丰富的功能。
最近这几年,Go、Rust 收到越来越多的关注,特别是 Go,在国内挺受欢迎的,很多大公司都采用它。而 Rust,作为系统编程语言收到越来越多的人关注,苹果、微软都宣称他们使用 Rust 编写部分业务。而 Java 作为老牌编程语言,长期霸占编程语言排行榜第一或第二位。这篇文章从一些角度就以上三门语言做一个对比。
本文讨论 Go 编译器是如何实现内联的以及这种优化方法如何影响你的 Go 代码。
最近遇到了一起依赖升级 + 异常数据引发的线上事故,教训惨痛,本文对此进行回故和总结。
本文首先介绍了架构的重要性,随后从一个实际项目的重构过程作为主线,逐步引出主流的架构设计思想以及其所解决的实际问题是什么。
本文作者最近开始在工作中将 Go 作为主力编程语言来使用,这是一种有趣的语言,带有丰富的标准库,但在标准库中交付一个生产就绪的 HTTP 服务器并非易事。因此,作者写下了这篇文章,提到了 Go 语言的一些问题。
为什么 go 1.12 会导致内存异常上涨呢?
11、Rob Pike专访:“Go确实已成为云基础架构编程语言”
尽管看到 Docker,Kubernetes 和用 Go 编写的云计算的许多其他组件令人欣喜和重要,但也许并不奇怪。Go 确实已经成为云基础架构的语言。- Rob Pike,Go 编程语言的联合作者。
Go 近些年在国内越来越流行了,特别是上云,容器化发展之后。关键的是,Go 不仅性能好,而且占用内存等也非常少,目前大部分新的后台项目也都在使用 Go 重写。这篇文章主要用来介绍,用 Go 语言如何入门前端开发。
13、Go 中的 Goroutine + Channel 真的能减少并发 Bug 吗?
Go 目前正在通过新的并发原语(concurrency primitives)goroutine 和 channel 试图简化并发编程并减少报错。但是,实际情况怎么样呢?两位来自宾夕法尼亚州立大学和普渡大学的研究员 Yiying Zhang 和 Linhai Song 对 Go 中的 并发 bug 在真实场景的情况进行了研究。
14、我使用 Golang 两年后的总结:优点和令人讨厌的怪癖
过去两年来,我就职于 Assembled ,一直使用 Go 工作。自公司成立以来,Go 就一直是我们的主要后端语言。在我之前的工作中,我混合着使用 Ruby 和 Scala,所以肯定有过一段适应期。总体而言,我发现 Go 的表现基本上与广告宣传的一样:尽管有些怪异,但它非常适合专业工作。
开源项目
1、XLSX
用于读取和写入 XLSX(Excel)文件的库。
根据你的数据库 schema 生成 Go ORM。
3、decimal
表示 Go 中的任意精度十进制数。不过,它只能支持小数点后最多 2^38 位的十进制数,因此请当心。
4、redigo
Redis 6.0 已经发布了。这是一个 Redis 的 Go 语言客户端。
5、ntp
Facebook 的 NTP 库。NTP 是 “网络时间协议”,进行时钟同步。
Google Robots.txt 解析器和 Matcher 库。现在您可以像 Google 一样抓取自己的网站
7、compiler
编译成 x86-64 汇编语言的小型编译器。
8、goneli
实现NELI分布式选主协议。
9、skycoin
又一以 Go 为主要实现语言的币项目。
10、errlog
可改善错误日志格式并加快调试速度的 log 包。
11、sftpgo
全功能且高度可配置的 SFTP 服务器。
12、gout
http client 领域的瑞士军刀,小巧,强大,犀利。
资源&&工具
使用 Go 实现 WebRTC 应用。
记得上周周刊提到的这个大会吗?完整视频放送。
3、Go-sword
可视化 Web 管理后台生成工具。
4、开源电子书
使用 Go 进行以太坊开发。
快速将 PostgreSQL 应用升级为 GraphQL 接口。
6、shotizam
分析 binary 文件 size 的工具。
订阅
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。