发现了一个 Go 最小化日志系统的好轮子

7 月 18 日
阅读 4 分钟
281
这个新开源库 logdyhq/logdy-core 给自己打的标语是:“使用 Web 浏览器 UI 和低代码增强终端日志,节省 90% 的搜索和浏览日志的时间”。看着就很省钱,一下子就引起了我的关注。

rsc 给 Go 社区写了个 AI 机器人,他挺满意!

7 月 10 日
阅读 2 分钟
231
最近 AI 浪潮席卷,很多公司和程序员小伙伴都参与了进来。Go 团队也在这方面做了新的尝试。主要的方面是 Go GitHub issues 的参与。

为什么 Go 不像 Rust 那样使用 ? 来做错误处理?

6 月 19 日
阅读 1 分钟
381
大家好,我是煎鱼。Go 错误处理,一直是个必争之地。为什么不学 Rust 使用 ? 来解决错误处理的问题,也是大家非常好奇的地方。为此 Go 核心团队成员之一 @Robert Griesemer 给出了官方诠释和解答。以下为其解答的内容。Go 的设计非常注重可读性!我们希望即使是不熟悉该语言的人也能理解 Go 代码(这并不意味着每个名称...

Go 再次讨论 catch error 模型,官方回应现状

6 月 19 日
阅读 3 分钟
465
大家好,我是煎鱼。最近社区的同学和 Go 官方又因为错误处理的提案屡屡被否,发生了一些小的摩擦。也非常难得的看到核心团队成员首次表达了目前的态度和情况。基于此,我们今天进行该内容分享。紧跟 Go 官方最新进展。快速背景Go 的错误处理机制,主要是依赖于 if err != nil 的方式。因此在对函数做一定的封装后。代码...

Go 面试题:SliceHeader 隐藏陷阱

6 月 12 日
阅读 2 分钟
406
最近也是面试季+毕业季了,很多同学正在积极准备面试。尤其是很多同学,已经通过官网资料熟悉了 Go 基本语法,但没有太大把握。希望对一些常见的棘手面试问题做一些预习。

Go 新提案:用 #err 标识符去做错误处理!

6 月 6 日
阅读 2 分钟
397
前几天看 Reddit 社区里的讨论,发现 Go 这一门编程语言,错误处理永远是讨论的议题之一。本着追踪网友脑洞 Proposal 的基础上,周末看到个被反对比较多的 Go2 错误处理提案。

Go 还缺少什么,能让它更完美?

6 月 3 日
阅读 2 分钟
391
大家好,我是煎鱼。最近国外社区 reddit 对 Go 这一门编程语言发起了一次讨论,提问的标题是:“你们认为 Go 还缺少什么,能让它变得更完美?”。内容上主要是方向是:开发人员对 Go 中缺少什么的看法,希望在 Go 中看到什么特性,能够使得其比现在要更好。这些交流点,在日常读者群中也经常有同学提到。今天结合分享给大...

为什么 Go protoc 不支持注入标签?

6 月 3 日
阅读 3 分钟
475
其作者在最终对官方 protobuf 库最绝望的一个事情,莫过于他朝朝暮暮,但官方一直不愿支持的标签注入功能。这也是很多人使用 gogo/protobuf 的原因。

优秀开源项目 gogo/protobuf 已经凉了。。。

5 月 24 日
阅读 3 分钟
391
大家好,我是煎鱼。最近我有一个朋友在内部陆续推动一些内部更新时,发现一个比较震惊的事,就是一个著名的 Go 开源项目居然已经陨落有两年多了。突然发现自己当年没能及时发现...似乎完全被当时 golang/protobuf v2 的热度压没了。尴尬得很。gogo/protobuf 发展和成熟相信大家对于 gogo/protobuf 这一个优秀的 Go 开源...

Google 内部 Go 的使用率有多少?

5 月 15 日
阅读 2 分钟
303
众所周知,Go 这一门编程语言的最大金主爸爸是 Google,Go 核心团队绝大部分也都在 Google 中工作,Google 为他们支付工资、福利等任何薪酬相关的内容。

Go1.0 到 1.22 的性能表现,提高了多少倍?

5 月 11 日
阅读 3 分钟
360
五一假期时看到 @Ben Hoyt 大佬分享的文章《Go performance from version 1.0 to 1.22》,分享了他在这么多年来一直坚持不懈的对 Go 进行性能测试的记载。

Go 未来方向:标准库 v2 改进的指导原则

5 月 10 日
阅读 2 分钟
534
在五一假期的第一天,Go 核心团队也没有闲着,@Russ Cox 直接在官方博客发布了《Evolving the Go Standard Library with math/rand/v2》这篇文章。

Google 如果把 Go 团队给裁了会怎么样?

5 月 8 日
阅读 2 分钟
344
节前有一则劲爆消息,Google 把 Python 基础团队和 flutter/dart 团队里相当多的开发人员给解雇了,据说可能是要换个城市重组(真是熟悉的 CY 套路)。

Google 孵化了 3 个 Go 安全库,推荐使用!

4 月 29 日
阅读 3 分钟
386
大家好,我是煎鱼。Google 作为一家用户体量很大的企业,有非常多的产品,经常会被黑客攻击或被拿来练手。因此其设计的产品、编程语言、工具库等都会要求考虑安全性相关的内容。例如:各种供应链攻击、CWE 等安全的查缺补漏等。我们作为用户(使用者),可以 “白嫖” 这些功能实现。直接复用在自家的业务上就可以了。这样...

Go 最大挑战、AI 方向、内部优先级?2024 H1 开发者报告发布

4 月 24 日
阅读 3 分钟
255
在这个月的月初,Go 官方公布了 1 月、2 月做的 Go 开发者调查结果。本次调查的主要关注点是:开发人员如何开始将 Go(或其他语言)用于 AI(人工智能)相关场景。以及正在学习 Go 或希望扩展 Go 技能的开发人员面临的特殊挑战有哪些。

Go 如何应对来自软件依赖的恶意攻击?

4 月 19 日
阅读 3 分钟
146
这一连串事件,不禁让我思考到 Go 是如何解决和防护攻击相关的问题。周末翻到了《How Go Mitigates Supply Chain Attacks》,基于此整理和调整后分享给大家。

Go 新提案:返回值应该明确使用或忽略?

4 月 16 日
阅读 3 分钟
203
之前在写 Go 代码时 IDE 经常会提示,团队内 CodeReview 也会遇到一些方法的返回值,处理不处理的问题。一开始大家还会讨论一下,久而久之基本也就麻木了。

Go 标准库的一个设计败笔:哨兵错误

4 月 11 日
阅读 3 分钟
602
大家好,我是煎鱼。在 Go 的历史发展中,总是有或多或少的坑。最近遇到一个跟错误类型定义和声明使用有关的小坑。翻了一圈 Go 社区里的争论,发现又是一个暂时无法解决的未解之坑。今天分享给大家,平时开发时也可以给自己避避坑。快速背景在 Go 里有一种错误类型的定义,官方叫做哨兵错误(Sentinel errors):哨兵错误...

Go 哪里没有做好?Rob Pike 深刻反思了

4 月 8 日
阅读 3 分钟
370
从历史背景来看,在 Go 诞生的那个年代,并发编程是一个比较新颖的理念。许多其他编程语言、论文甚至书籍都写过关于并发编程的内容。并发编程还没有成为主流思想。

Go 负责人 rsc 翻车,决定追加 godebug 行

3 月 27 日
阅读 3 分钟
588
上年我给大家分享过《加大力度!Go 将会增强 Go1 向后兼容性》,当时是 Go 核心团队负责人 @Russ Cox(下称:rsc)主导和推进的。

Go 团队近两年在做什么,AI 方面如何发力?

3 月 21 日
阅读 2 分钟
649
大家好,我是煎鱼。本文继续承接 @Sameer Ajmani 的回忆录《Go 和 Google、Cloud 融合的那么深,绝非偶然》,他现在作为 Google 工程总监 ,负责领导 Go 编程语言团队。本次也给出了 Go 这两年大的关键变动说明,更重要的是提及了 Go 计划在生成式 AI 方面的发力方向。今天由煎鱼结合分享一下,看看未来会发生什么变化。...

Go 错误处理:用 select-case 来解决这个难题?

3 月 14 日
阅读 2 分钟
297
日常看 Go 社区的一些新动态,发现大家对于错误处理的新提案是很积极。上次分享了一篇想要用 switch-case 来解决现状的新提案,不少同学认为不可行。

Go arena 民间库来了,可以手动管理内存!

3 月 12 日
阅读 4 分钟
405
上年我们有讨论过关于 Go arena 手动管理内存的相关提案。一开始还高歌猛进,但没想到后面由于严重的 API 问题(想把 arena 应用到其他的标准库中,但会引入大问题):

Go deadcode:查找没意义的死代码,对于维护项目挺有用!

2 月 22 日
阅读 3 分钟
1.2k
还记得我前两年在深圳参加了个技术大会,其中一个议题是携程的一个大佬分享他在日常工作中,发现一大堆过时的无意义代码和逻辑,导致大家工作较为繁琐且较为辛苦的情况。

Go 更强的代码洁癖,可以把 gofmt 给换了!

2 月 21 日
阅读 4 分钟
1.3k
我们从一开始写 Go 代码和应用,就会被各种官方和民间教程,甚至 IDE 教导我们必须配一个 Gofmt 工具。他能够格式化 Go 程序的代码。会使用制表符表示缩进,空白表示对齐。

Go1.22 正式发布!包含语言变化、性能提高、标准库变动等重要特性

2 月 9 日
阅读 2 分钟
3.9k
大家好,我是煎鱼。今天 Go1.22 正式发布了!一早起来,还没出门就赶紧整理了本篇文章给大家。一起学习新版本!之前我还看进度预测 2 月中发布。没想到直接打脸。Go 核心团队成功赶在春节前发布了!真是有点猛。Go 1.22 新版本安装方式:Go1.22 包含多项重要的新功能和改进。以下是部分显著变化;完整列表请查看《Go 1.2...

Go1.22 新特性:性能提高、Trace 大修、工作区支持 vendor 等

2 月 4 日
阅读 2 分钟
948
Go 1.22 是能在 macOS 10.15 Catalina 上运行的最后一个版本。Go 1.23 需要 macOS 11 Big Sur 或更高版本。

Go1.22 新特性:终于增强 http.ServerMux 路由能力,将有更强的表现力!

1 月 24 日
阅读 3 分钟
1.4k
Go1.22 有一个比较重要的新特性,那就是基于提案《net/http: enhanced ServeMux routing》,增强了 http.ServerMux 的路由匹配能力。非常值得大家学习和关注。

Go1.22 新特性:新的 math/rand/v2 库,更快更规范了!

1 月 18 日
阅读 3 分钟
1.1k
大家好,我是煎鱼。Go 首个标准准库的 v2 版本,来自 math/rand/v2 库。将在 Go1.22 正式发布和对外生产可用。本次由 Go 核心团队负责人 @Russ Cox 推动和发起。变动原因选择 math/rand 库做第一个 v2 标准库变动的原因如下:标准库里的 math/rand 的老毛病和待提高的地方太多了。例如:过时的生成器、缓慢的算法(性能...

Go1.22 新特性:Slices 变更 Concat、Delete、Insert 等函数,对开发挺有帮助!

1 月 17 日
阅读 4 分钟
727
大家好,我是煎鱼。在 Go1.22 这个新版本起,切片(Slices)新增和变更了一些行为。对于开发者相对更友好了一点。新增 Concat 函数在以前的 Go 版本中,有一个很常见的使用场景,如果我们想要拼接两个切片。必须要手写类似如下的代码: {代码...} 输出结果: {代码...} 如果在 Go 工程中常用到,大家还会在类似 util 包...