Go语言技术文章
-
何时使用单体 RESTful 服务 对于很多初创公司来说,业务的早期我们更应该关注于业务价值的交付,而单体服务具有架构简单,部署简单,开发成本低等优点,可以帮助我们快速实现产品需求。493 收藏 -
在早期经常遭到唾弃的就是在垃圾回收(下称:GC)机制中 STW(Stop-The-World)的时间过长。那么这个时候,我们又会好奇一点,作为 STW 的起始,Go 语言中什么时候才会触发 GC 呢? 1、什么是 GC 在计493 收藏 -
使用Golang能够创建WebSocket通信,只需要使用golang.org/x/net/websocket包即可,该包有可能被墙,无法使用go get下载,但是我们可以从golang中国提供的地址下载,然后将包放在对应的路径下。 WebSocket是493 收藏 -
用 Go database/sql 的 QueryContext 获取 Rows,配合 Next、Scan、Close 和 Err 逐行读取查询结果;本文重点说明提前退出、迭代错误与连接池资源归还的生命周期处理。492 收藏 -
使用 Go net/netip 的 Prefix 与 Contains 判断客户端 IP 是否属于指定网段,覆盖解析、双栈地址族、无效地址和 IPv6 zone 等边界。492 收藏 -
maps.Clone 会复制 map 的键和值,因此 map[string]error 中的错误值、Error 文本和错误链入口都会保留;但它是浅拷贝,不会复制错误对象内部的指针、切片或自定义可变状态。492 收藏 -
通过 bufio.Reader.Peek 直接查看 Reader 内部缓冲区中的前缀,避免为短暂判断创建副本;同时讲清 Reset 复用 Reader、短读错误、ErrBufferFull 与返回切片的生命周期。492 收藏 -
Go go-colorful 怎样生成具有区分度的配色集合:比较 SoftPalette、FastHappyPalette 和 SoftPaletteEx 的适用场景、错误处理与回退方式。492 收藏 -
Go errors.Join 可以把多个校验错误合并成一个返回值,同时保留 errors.Is 和 errors.As 的判断能力。本文从一个批量配置校验器出发,说明 nil 过滤、哨兵错误、自定义错误类型和错误展示之间的边界。492 收藏 -
Go x/text/width 提供的是 Unicode 宽度属性分类,不是字体渲染后的屏幕像素测量。本文区分 width.Kind、rune、UTF-8 字节数和布局引擎,并给出按目标选择 API 的排查方法。492 收藏 -
Go 1.27 的 go fix atomictypes 可以把 sync/atomic 原始函数迁移为强类型原子包装器。本文从预览命令、访问边界、版本前提和人工复查说明这项现代化应该怎样安全落地。492 收藏 -
Go 用 os.OpenFile 创建文件时,perm 只是 Unix 上 umask 处理前的请求值;本文区分新旧文件、O_TRUNC 与跨平台权限语义,帮助定位不同机器上的权限差异。492 收藏 -
通过 money 模块与 order 服务的小项目,演示如何拆分 Go 内部模块、用 go.work 本地联调、为子目录模块创建语义化版本标签,并用 v1 兼容规则与 /v2 路径维护清晰依赖边界。492 收藏 -
Golang · Go教程 | 1个月前 | channel · Context · Go教程 · Channel关闭 context取消 发送方关闭 Go数据管道 Go pipeline 多阶段并发
本文实现一个源阶段、转换阶段、过滤阶段和汇聚端组成的 Go 数据管道。每个阶段创建、发送并关闭自己的输出 Channel,下游只接收;同时用 context 处理提前结束,并说明多 worker 阶段如何等待全部发送完成后单点关闭。492 收藏 -
Go compress/flate 的 Write 可能暂存在压缩器内部,实时传输要在消息写入后调用 Flush,把当前数据和同步标记推到底层 writer;Close 只负责最终收尾。本文用长度帧、io.Pipe 和 io.ReadFull 说明发送、接收与刷新频率的边界。492 收藏