最新进展:Go arena 手动管理内存,鸽了!

2023-11-14
阅读 2 分钟
266
年初有给大家分享 Go1.20 arena 能手动管理内存的事情,当时不论是我们读者,还是社区上的小伙伴们,都是比较激动的。毕竟这是一个有意思的特性。

Go 透明文件夹的特性,有没有必要加?

2023-11-07
阅读 2 分钟
267
大家好,我是煎鱼。在 Go 语言中,我们一般会用模块(Module)和包(Package)来组织我们的项目、库的目录和代码结构。今天给大家分享一个面向包这块的新提案,看看是否合适加进 Go 特性中?前置知识:模块和包具体来讲,模块(Module)就是 go mod 的应用。我们最常接触到的是以下命令: {代码...} 在执行了 go mod ini...

Go etcd 的依赖问题终于解决了。。。

2023-11-02
阅读 4 分钟
333
前几年非常高频的接触到这一堆微服务相关组件:grpc + grpc-gateway + etcd + protobuf + protoc-gen-go,一开始都是相安无事,逐步跟进新版本。

给 Go 提问题?充分了解 Go 提案流程

2023-10-30
阅读 4 分钟
292
大家好,我是煎鱼。前段时间分享了《被 Go 团队打脸了,已接受的提案也能一句话推翻!!!》引发了大家对 Go 的大范围讨论。但后面发现一个问题,似乎行业内从未给大家讲解过 Go 变更语言规范和提案流程。今天这篇文章将给大家分享,也可以借此学习社区的运作模式。前言在官方资料《Proposing Changes to Go》中,给出了...

Go 周刊一览#1:1.22 增强 ServeMux 路由、新版本发布、新开源包等

2023-10-23
阅读 3 分钟
316
软件行业日新月异,新的更新迭代层出不穷,Go 生态圈里也有许许多多的变化。为此我们将每周基于 Golang Weekly 进行最新的资讯和内容精选同步。

Go 项目标准布局?Go 官方出指南了

2023-10-20
阅读 5 分钟
882
本文分两个部分:第一个部分是近期 Go 官网输出的 "Organizing a Go module" 的资料,具有官方指导意义。第二个部分社区的 golang-standards,存在了相当长的时间,较为知名。

被 Go 团队打脸了,已接受的提案也能一句话推翻!!!

2023-10-17
阅读 2 分钟
486
大家好,我是煎鱼。还记得两个月前我分享过一篇《Go 将增加内置的零值标识符 zero!》文章。内容是关于 Go 将会增加一个新的预定义标识符 zero。具体有兴趣深入了解语法和规则的可以看上面那篇文章。它是一个无类型的零值,适用于数组和结构体类型。也解决了这两个类型在零值无法比较的问题。综合来看,有利有弊。划重点...

Go PGO 快速上手,性能可提高 2~4%!

2023-10-13
阅读 4 分钟
286
2023 年初,在 Go1.20,PGO 发布了预览版本。在本次 Go1.21 的新版本发布,修复了各种问题后,PGO 已经正式官宣生产可用。

Go 标准库想增加 metrics 指标,你支持吗?

2023-10-11
阅读 3 分钟
551
大家好,我是煎鱼。在 Go 的标准库中,有一个神奇的标准库 runtime/metrics,这个标准库提供了一系列预定义好的 Go 自身的相关指标。如果没有编写过基础监控库或者关注的比较少的朋友可能会没接触到这类指标。今天这篇文章是展开现有的 metrics 指标,并结合现有的社区讨论一起看看还有没有必要增加更多的标准库指标。快...

互联网公司裁员后管理岗的几个现象

2023-10-08
阅读 2 分钟
869
今天是来自匿名用户Q 的授权投稿。前段时间在煎鱼这分享了《互联网公司裁员的预兆和手段》,总结了在互联网行业摸爬滚打数年载的一些血泪经验。许多朋友私下反馈很有帮助。今天这篇是关于互联网公司大裁员时,管理者会出现的几个现象。不同公司手段千奇百怪,但万变不离其宗。以下仅代表匿名用户Q 的个人观点。背景可能...

快速掌握 Go 工作区模式

2023-09-25
阅读 3 分钟
584
在 Go 项目的模块管理中,先是 GOPATH,然后到废弃。再到强推 Go modules,从被社区抗拒到 rsc 硬上弓。现在最新要了解的,就是工作区模式(workspace mode)。这是一个在 Go1.18 引入的重要特性。

Go 官方新玩具:漏洞管理和扫描,看看自己项目有没有坑?

2023-09-18
阅读 5 分钟
1.2k
大家好,我是煎鱼。业务系统的安全问题一直是各企业的 “头号” 问题(被发现时)。不知道有多少读者朋友们经历了刚刚结束的 HW 行动。最近发现有厂商已经可以对 Go 开始做检测了,这又是一大进步。这不,最近发现 Go 官方自己推出了新的工具,作用是漏洞管理,告诉你已报告的漏洞,并告知你应该如何升级到什么版本。今天...

10 年了!Go 常量为什么只支持基本数据类型?

2023-09-13
阅读 3 分钟
1.5k
大家好,我是煎鱼。相信大家在接触 Go 这门编程语言时,就会学到常量这个知识点。各大编程语言会教你,常量是不可变变量的一种类型。只要定义了常量,你就可以安心的用他。不用担心值在哪里就被程序莫名奇妙的给改了。常量的使用例子如下例子: {代码...} 输出结果: {代码...} 你可能会发现一个奇怪的点。那就是例子里...

互联网公司裁员的预兆和手段

2023-09-06
阅读 2 分钟
755
大家好,我是煎鱼。今天是来自匿名同学小E 的授权投稿。前段时间分享了互联网大厂裁员的原因和预兆,里面包含了许多互联网公司的裁员原因分析和预兆。有许多同学反馈,规模不同的公司,有一些更经典的预兆和步骤,对于大家来说更普适。希望能对大家有所帮助。背后目的对于一家企业而言,裁员的目的,大部分都比较单纯,...

Go 负责人说以后不会有 Go2 了

2023-08-29
阅读 3 分钟
777
最近 Go 核心团队负责人 @Russ Cox(下称:rsc)专门写了一篇文章《Backward Compatibility, Go 1.21, and Go 2》为 Go 这门编程语言的 Go1 兼容性增强和 Go2 的情况说明做诠释和宣传。

Go 零值和空值的判断问题

2023-08-22
阅读 3 分钟
3.9k
我原想着还是一个有一点点新改变。不过综合大家意见来看,由于只是针对数组(array)和结构体(struct),许多同学表示这个是比较鸡肋的。因为仍然无法很好的解决 Go 零值和空值的识别问题,大失所望。

Go 将增加内置的零值标识符 zero!

2023-08-17
阅读 4 分钟
896
大家学习和使用 Go 语言时,有一个神奇的概念:零值(zero-values)。零值这个名字是具体谁起的,又是从哪里先开始喊起的,已经难以考究了。

又有新功能!Go 将有生成新模板的 gonew 工具链

2023-08-10
阅读 3 分钟
878
不知道大家平时在日常工作中,会不会遇到一个问题?公司用着微服务架构,经常要创建新的服务,需要一个应用模板去初始化新的服务,减少 ctrl+c+v,转为相对自动化。

Go 改版本号规则,终于在主版本支持第三位数字 0 了。。。

2023-08-02
阅读 3 分钟
492
大家好,我是煎鱼。平时我们经常会跟踪 Go 的版本发布,看看是不是有 BUG,新特性等值得关注的东西,好吸取新的知识和技术跟进,用到自己的日常工作和系统中。在新的特性、新的资料记录的映射上,我们也会用版本号来与之关联,这很常见。背景但看 Go 版本号时,会出现一个和其他软件版本不一样的神奇现象。那就是 Go 的...

Go defer 去掉闭包函数,靠谱吗?

2023-07-11
阅读 2 分钟
3.7k
在 Go 语言里,defer 关键字是大家很爱用的。因为他有着 defer+recover+panic 的组合拳打法,还有种各种 defer close 等常用场景。

Go 团队将修改 for 循环变量的语义,Go1.21 新版本即可体验!

2023-07-05
阅读 3 分钟
4.1k
经过 Go1 向前兼容性和向后兼容性提案的铺垫,循环变量的这个问题将得到解决。在 Go1.21 可以进行尝试使用,预计 Go1.22 开始正式变更。

Go1.21 速览:Context 可以设置取消原因和回调函数了,等的可太久了!

2023-06-29
阅读 4 分钟
1k
大家好,我是煎鱼。在 Go 中有一个很经典的设计:context,这是许多同学初学时必学的标准库。涉及到上下文传递、超时控制等必要项。甚至在函数体中的第一个参数大多是传 context。写第三方库也必须兼容 context 设置,否则会经常有人提需求让你支持。Context Demo以下是一个快速 Demo: {代码...} 运行结果: {代码...} ...

Go1.21 速览:支持自定义 go.env 文件,可惜还是有所残缺。。。

2023-06-16
阅读 2 分钟
998
像以前最早时,有的同学是打开 ~/.zshrc,一番 vim 操作,设置好 export GO111MODULE=on。最后再 source 一下。虽然简单,其实也是有好几个步骤的:

Go1.21 速览:新内置函数 clear、min、max 和新标准库包 cmp!

2023-06-07
阅读 4 分钟
1.1k
前面给大家分享了 Go1.21 正式不支持 macOS 10.13 和 10.14 的支持。吓得我赶紧把我的 2017 款的老爷机从 10.14 升成 13.4。感觉 mbp 已经变成了暖宝宝。😅

Go1.21 速览:骚操作 panic(nil) 将成为历史!以后别这么干了。。。

2023-06-02
阅读 3 分钟
1.3k
大家好,我是煎鱼。在 Go 语言中,返回错误、抛出异常一直是大家比较关注的话题。在抛出异常上,我们一般都是这么用的: {代码...} 运行结果: {代码...} 这看起来一切正常,没什么问题的样子。隐晦的雷其实在现在的 Go 版本有一个较隐晦的雷。看看 panic 和 recover 对应的参数和返回类型。如下: {代码...} 参数值类型...

Go1.21 速览:正式结束对 macOS 10.13 和 10.14 的支持

2023-05-29
阅读 2 分钟
1.1k
根据 Go 语言的版本发布规律,一般是 2 月份和 8 月份各会发布一个新的版本。当前是 Go1.20。也就是在 8 月份会发布 Go1.21 这一个新版本。

Go1.21 速览:Go 终于打算进一步支持 WebAssembly 了。。。

2023-05-18
阅读 2 分钟
1.6k
想着 Go 过去了那么多年了,只在 Go1.11 支持了 WebAssembly1.0 的部分功能(js/syscall),还没有完整的支持 WebAssembly System Interface(WASI)。这可真的是大写的尴尬。

Go1.20.4 新版本发布,修复了一个神奇的内联 BUG!

2023-05-09
阅读 2 分钟
1.6k
大家好,我是煎鱼。最近 Go 在劳动节期间,Go 发布了小版本的版本更新,主要是 Go1.20.4 和 Go1.19.9:周末我在看 Go1.20.4 的发布里程碑记录时,发现了一个比较有意思的 BUG,持续了很久,一直没人发现。直至今日才被修复。我们快速来看一下。演示代码如下: {代码...} 请问运行的结果是什么?我掐指一算,是如下结果:...

Go1.21 速览:过了一年半,slices、maps 泛型库终于要加入标准库。。。

2023-05-05
阅读 5 分钟
1.7k
大家好,我是煎鱼。在 2022 年 3 月,Go1.18 终于发布。在该版本中,包含了 Go1.17 起就已存在的泛型,并于此版本正式发布泛型特性。这是一个备受关注和争议的新特性。在 reddit 甚至有网友放出了这张图:泛型库终于合进 master曾经在 Go1.18 时,Go 语言之父 @Rob Pike 冒了个泡,掌了舵,让不要这么急把泛型重写进标准...

快速上手 Go CGO,掌握在 Go 里写 C!

2023-04-26
阅读 3 分钟
5.1k
大家好,我是煎鱼。最近因为各种奇怪的原因,接触到了 Go 特色之一 CGO。这方面的相关内容也相对少一些,给大家抛砖引玉。毕竟很多跨语言调用,还是会依赖 CGO 这个特性。希望大家在真正要用时有个前置知识垫肚子。CGO 是什么CGO 就是 C 和 Go,两个编程语言。指的是能够创建调用 C 代码的 Go 包。对照着 Go 代码中的 “C...