go

golang学习记3 小时前
go
Go面试官:说说struct{}为什么占用0字节在 Go 语言的学习和实践中,struct{} 是一个看似简单却蕴含深意的存在。它被广泛用于实现内存高效的集合(Set)和通过信道(Channel)发送信号,因为它“占用零字节”。但深入探究其实现,我们会发现这不仅仅是内存优化的技巧,更是 Go 语言设计哲学和运行时机制的一次精妙体现。下面就来看看struct{}为什么是占用0字节的?
喵个咪1 天前
大数据·后端·go
Go Wind UBA 拆解系列 - 架构总览:三服务、数据流与契约优先本文回答一个问题:当一个用户行为从浏览器发出,到最终在 Vue 看板上变成一条留存曲线,中间经过了哪些服务、哪些代码、哪些取舍?
喵个咪1 天前
大数据·后端·go
Go Wind UBA 拆解系列 - 多租户与安全:两套隔离机制的边界本文回答一个问题:一个 SaaS 级 UBA 平台,怎么保证租户 A 绝对看不到租户 B 的数据? 答案藏在两层完全不同的机制里——而它们的边界差异,恰恰是最值得讲的部分。
喵个咪1 天前
大数据·后端·go
Go Wind UBA 拆解系列 - OLAP 与 SQL 硬核:25 个分析模型怎么落地本文回答一个问题:25 个分析模型(漏斗 / 留存 / LTV / 归因 / 路径……)在 ClickHouse 和 Doris 上,到底是用什么 SQL 写出来的?双引擎又是怎么做到"一份业务模型,两份实现"的?
喵个咪1 天前
大数据·后端·go
Go Wind UBA 拆解系列 - SDK 与采集层:从浏览器到 Kafka本文回答一个问题:一个埋点事件,从用户在浏览器里点了一下,到最终被 Kafka 接住,中间的 SDK 和 Collector 做了多少你看不见的工程? 答案是:比你想象的多得多。
小满zs1 天前
后端·go
Go语言第一章(入门)Go(又称 Golang)是Google在 2007 年推出、2009 年正式开源的静态编译型编程语言,由罗伯特・格瑞史莫(Rob Pike)、肯・汤普森(Ken Thompson,C 语言、Unix 之父)、罗伯特・格雷厄姆三人主导开发。
唐青枫1 天前
go
别再把类型断言当强制转换:Go 从 comma-ok 到 type switch 实战详解Go 代码里经常能看到这样的写法:表面看起来像类型转换,实际含义完全不同。类型转换是在两个允许转换的类型之间改变值的类型:
用户6757049885021 天前
后端·go
Kafka 太重?试试 NSQ:一个优雅到极致的消息队列今天想和大家聊一个既老牌又实用的开源项目——NSQ。如果你是做后端开发,特别是跟 Go 语言打交道比较多的话,对这个名字应该不会陌生。即使你没用过,在消息队列这个技术选型里,NSQ 也绝对是个值得了解的存在。
用户6757049885021 天前
后端·go
RabbitMQ 太重,Kafka 太复杂?Go 开发者:Asynq分布式任务队列就刚刚好在后端服务中,我们经常需要异步执行耗时任务 —— 比如发送邮件、生成缩略图、导出报表、调用外部 API 等。让请求等待这些操作完成,会浪费用户体验,也浪费服务器资源。
用户6757049885022 天前
后端·go
Go 语言里判断字符串为空,90% 的人都写错了!在 Go 语言中,字符串 len == 0 和字符串等于空字符串 "",到底该用哪个?在日常开发中,这个问题几乎每个 Go 开发者都会遇到:
用户6757049885022 天前
后端·go
Go 进阶必修:90% 的人都没用对的“表驱动法”作为一名开发者,在日常工作中,我们最常面对的可能不是复杂的算法,而是复杂多变的业务逻辑。是不是经常遇到这种场景:产品经理跑过来说,“我们要接一个新的支付渠道”,或者“针对 VIP 用户加一个新的折扣逻辑”。你打开代码一看,好家伙,原来的代码里已经嵌套了 5 层 if-else,或者是长达几百行的 switch-case。
知恒3 天前
go
Go语言接口与多态接口是Go语言最核心的特性之一,也是Go实现多态和抽象的关键机制。本文参考了Go官方博客(go.dev/blog/laws-of-reflection)、Effective Go文档以及Go语言规范,系统地讲解了接口的定义、隐式实现、内部结构、类型断言和接口组合等核心概念。
知恒3 天前
go
Go语言变量与数据类型本篇文章深入讲解Go语言的数据类型体系,包括基本类型、复合类型、类型转换和指针。理解数据类型是编程的基石,本篇将帮助你建立扎实的类型系统认知。
知恒3 天前
go
Go包管理与模块化包管理和模块化是Go语言开发的基础设施。本文参考了Go官方模块文档(go.dev/ref/mod)、Go官方工具链文档(go.dev/doc/toolchain)以及社区最佳实践,系统地讲解了Go的包组织、导入机制、模块管理和工作区模式。
HokKeung3 天前
人工智能·go
飞书 lark-cli 如何存储 tenant_access_token 和 user_access_token读 larksuite/cli 的认证代码时,我最关心的不是 OAuth 的完整流程,而是一个更具体的问题:tenant_access_token 和 user_access_token 到底存在哪里?为什么一个要存,一个不存?
止语Lab3 天前
go
sync.Pool 的真正分界线不是对象大小——一次 benchmark 翻车记录我本来想写一篇"512B 以下对象别用 sync.Pool"的文章。为了证明这个结论,我写了一组 benchmark:7 种对象大小 × 5 种并发度,跑完后画热力图。结果跑完一看——数据把我的假设推翻了。
HokKeung3 天前
go
Go 里的 IO 应该怎么管理写 Go 代码时,很容易随手把具体 IO 写进业务逻辑里:或者:小脚本这样写没什么问题。但只要代码开始变得正式一点,比如要测试、要复用、要换输入来源、要把输出写到 HTTP response、文件、buffer 或标准输出,这些散落在各处的具体 IO 调用就会慢慢变成负担。
喵个咪3 天前
后端·http·go
Go-Wind HTTP 服务器从入门到精通本教程面向初学者,基于 transport/http/server.go,循序渐进地讲解如何使用 Go-Wind 插件库搭建 HTTP 服务器——从最简单的 "Hello World" 开始,逐步深入到驱动系统、中间件机制,最终构建一个生产级的服务。
喵个咪3 天前
后端·go·grpc
Go-Wind gRPC 服务器从入门到精通本教程面向初学者,基于 transport/grpc/server/server.go,循序渐进地讲解如何使用 Go-Wind 插件库搭建 gRPC 服务器——从最简单的服务定义开始,逐步深入到拦截器(Interceptor)机制,最终构建一个生产级的 gRPC 微服务。
知恒3 天前
go
Go环境搭建与入门Go语言(又称Golang)是 Google 于 2009 年发布的开源编程语言,由Robert Griesemer、Rob Pike和Ken Thompson三位计算机科学领域的先驱共同设计。本文参考了Go官方文档(go.dev/doc)、Go官方入门教程(go.dev/doc/tutorial/getting-started)以及Go语言规范,为初学者提供从零开始的完整入门指南。