go

数字化小张15 小时前
go
Go语言并发编程——goroutine与channel实战写 Go 的人大概率是被它的并发模型吸引来的。一个 go 关键字就能起一个协程,channel 天然做通信同步,代码看起来比 Java 的线程池和锁优雅太多。但真正在生产环境用起来,会发现并发编程的坑一个都没少——goroutine 泄漏、data race、死锁,该踩的一个都跑不掉。这篇把 goroutine 和 channel 的核心用法、sync 包和 context 包的实战经验,以及常见并发陷阱聊清楚。
码艺-Alimjan20 小时前
前端·javascript·vue.js·rust·typescript·go
Tauri 2.x + Vue 3 桌面应用开发实战:从踩坑到完美落地我需要开发一个 Windows 桌面收银系统,核心需求是:基于这些需求,我选择了 Tauri 作为桌面框架。它让前端资源完全本地化,同时保留了 Web 开发的灵活性。
mldong1 天前
后端·go
Go 开发者也有自己的轻量工作流引擎了:go get 一行,5 分钟跑通一条审批流场景很常见:公司一个 Go 服务(订单、工单、内部管理后台),产品说要加审批流。请假、报销、采购,单子从申请人出发,走到部门领导,复杂一点的要会签、按比例通过、退回发起人改材料、抄送一把手。
newerp1 天前
后端·程序员·go
Golang 调度循环:Go runtime 如何永不停歇地找人干活GMP 把 goroutine、OS 线程、逻辑处理器这三层结构搭好,只是搭了个舞台。真正让这台戏能一直唱下去的,是 runtime.schedule() 为核心的调度循环。它就像一个永不下班的工头:每次线程 M 醒来,都要问自己三个问题——谁要干活?去哪儿找活?找不到了怎么办?
小满zs3 天前
后端·go
Go语言第十一章(协程)普通函数按顺序执行:前面的不结束,后面的不会开始。 协程(goroutine)让你可以同时跑多段逻辑——比如一边查订单、一边发短信、一边写日志,彼此不互相堵着。
newerp3 天前
后端·程序员·go
Golang 函数调用的瞬间:栈帧、拷贝栈与逃逸分析每次调用函数,CPU 和运行时到底在忙什么?答案藏在一块叫栈帧(stack frame)的内存里。理解它,才能理解 Go 为什么敢给每个 goroutine 只发 8KB 的"启动资金",以及"逃逸分析"到底在分析什么。
newerp3 天前
后端·程序员·go
Golang 网络轮询器 netpoll:把阻塞 IO 变成事件通知Go 的 net/http 能轻松支撑数十万并发连接,秘密之一就是 netpoll。它让 goroutine 在等待网络 IO 时,不会阻塞底层的 OS 线程,而是把 socket 注册到操作系统提供的多路复用机制上,事件就绪后再唤醒对应的 G。
合橱瑰3 天前
后端·go
从“假智能”到“真闭环”:Go 向量推理引擎的零硬编码调优实践如何用爬山算法让 CPU/GPU 推理并行度自动收敛到当前机器的最优点去年我们做了一款本地 RAG 工具,向量索引是核心功能之一。用户的数据量从几百份到几十万份不等,硬件环境更是五花八门——有人用 8 核轻薄本,有人在 40 核服务器上跑,还有人插着 NVIDIA 显卡。
名字还没想好☜3 天前
后端·tcp/ip·golang·go·php
Go 的 TCP 粘包与拆包:用长度前缀协议 + bufio 正确读消息用 Go 写第一个 TCP 服务时,几乎所有人都栽在同一个坑:客户端 conn.Write 三次,服务端 conn.Read 却一次就把三条消息全读出来了;要么反过来,一条消息被拆成两次才读完。于是有人开始怀疑 Go 的网络库有 bug,或者到处加 time.Sleep 凑合。
Zenova EdgeOS3 天前
物联网·go·边缘计算·序列化·protobuf·工业边缘
Go 工业边缘 Protobuf 实战:从 proto 到 Marshal 的完整落地结论先说:如果工业边缘的 Go 服务要和 C++ 设备端、Python 边缘脚本、Java 平台端长期通信,protobuf 是目前最值得优先考虑的消息格式之一。它把字段编号和类型约束写进 .proto,让不同语言共享同一份契约,比手工 JSON 和私有协议更容易做兼容性管理。
MeetTanG4 天前
后端·go
Go 实战锦囊|errgroup:优雅地管理并发任务组在 Go 的并发编程中,sync.WaitGroup 几乎是每个开发者的"启蒙工具"。但当任务需要错误传播、上下文取消和并发数量控制时,WaitGroup 就显得力不从心了。今天的主角——golang.org/x/sync/errgroup,正是为解决这些痛点而生的利器。本文将跳过玩具示例,直接聚焦生产环境中的最佳实践与隐蔽陷阱,并特别补充 Gin 框架下的适配要点。
名字还没想好☜4 天前
开发语言·后端·golang·go
Go 标准库 flag 包实战:参数解析、子命令、自定义 Value 类型与默认值写 Go 命令行工具时,第一反应可能是直接撸 os.Args,自己按位置取参数。工具一简单还行,一旦要支持 -port=8080、-v、--config xxx 这种带名字的选项,手写解析立刻变成一坨 if-else,还要处理 -port 8080 和 -port=8080 两种写法、布尔标志、默认值……
天天喝旺仔4 天前
分布式·http·微服务·rpc·go
gRPC 流式通信实战:从一元调用到双向流,吃透四种 RPC 模式(Go 版)做微服务时,最常遇到的不是"怎么调一次接口",而是"怎么持续地传数据":服务端要不停推送行情、客户端要批量上报日志、两边要像聊天一样来回发消息。用传统的"一问一答" HTTP 接口去硬套,要么轮询刷屏,要么把请求体撑成巨无霸。
明月_清风4 天前
数据结构·算法·go
从二叉树到 B+ 树:一文搞懂工程中「树」的演化之道本文系统梳理「树」这一核心数据结构,从基础概念到工程实践,全部代码用 Go 实现,带你搞懂为什么不同的场景需要不同的树。
江湖十年4 天前
后端·面试·go
在 Go 中使用 dyno 包处理动态对象我在《Go 语言中 YAML to JSON 踩坑笔记》一文中提到了使用 dyno 包来解决 json.Marshal 时遇到不支持的 map[interface{}]interface{} 类型报错的问题。本文就来通过源码的形式为大家详解一下 dyno 包的原理。
a187927218314 天前
算法·leetcode·go·剪枝·回溯·n皇后·算法讲解
【算法】回溯算法(三):三记重锤与 N 皇后——记忆化、状态设计与三层漏斗回溯系列第三篇,收官。上一篇以 LC842 验收"毕业",我以为真毕业了——接下来三记重锤锤醒了梦:记忆化的三次错位(417 万次调用 vs 176 次,缓存选择、缓存候选、只写不读一路踩过去)、排序被禁后的去重(层属性 vs 路径属性,usedThisLevel 不还原是精髓)、中间态失控(把 Go 的栈撑爆 1GB)。三锤全部指向同一件事:状态设计。最后用 N 皇后收官(对角线编号 r±c + 三个标记数组 + 四动作对),并把整个系列沉淀成三层漏斗识别框架和写题前的终极检查清单。本篇也是通往动态规划
纪卓志George5 天前
架构·go
打破语言范式:在 Go 里用动态代理实现 AOP代码仓库:github.com/jizhuozhi/g…Go 以简洁著称,却因克制的元编程能力,长期无法在运行时层面满足规模化系统开发对统一框架的需求——承载 AOP、依赖注入、可观测性等横切关注点。这一困境催生了社区持续的技术尝试,构成一条清晰的演进链:先是 go generate 驱动的编译期代码生成,mockgen、gowrap、GoAOP、go-spring 等莫不如此,却都停留在编译期元数据织入;而后字节跳动的 sonic 以运行时 JIT 突破了"在 Go 里生成机器码"的可行性边界,为运行时
码艺-Alimjan5 天前
java·javascript·python·算法·go
维吾尔语数字转文本完整代码在最下面封装到一个类里面大家随便用。在维吾尔语语音合成(TTS)和文本处理场景中,经常需要将阿拉伯数字转换为维吾尔语的自然读法。例如:
名字还没想好☜5 天前
开发语言·后端·golang·go
Go 时间格式化为什么用 2006-01-02:time.Format/Parse 的参考时间、时区与解析踩坑第一次用 Go 格式化时间的人几乎都会愣一下:别的语言里格式化字符串是 yyyy-MM-dd HH:mm:ss 这种占位符,到了 Go 变成了 2006-01-02 15:04:05。你甚至会怀疑是不是抄错了——为什么是这么一串看起来像随机日期的数字?
我的div丢了肿么办5 天前
后端·go
go语言中的map,map定义不同的数据类型,循环map,map的无序性把map[string]string 把它看做是一个对象 map等价于{}对象,[string]string等价于key:value的形式 因为map中读取是obje["key"],所以key的声明在括号里 整体如下: { key:value的形式,key是字符串,value也是字符串 } make([]map[string]string,3,3) 就等价于 make([]{ key:value的形式,key是字符串,value也是字符串 })