Go教程技术文章
-
正确关闭channel需等待所有生产者退出,否则向已关闭channel发送数据会panic;多channel接收应结合select与done信号避免阻塞。184 收藏 -
sysmon是Go运行时中不依赖P、独立运行于M上的后台监控协程,负责轮询检查网络事件、抢占长时间运行的G、触发GC及回收空闲P等,但不直接唤醒M——它仅通过notewakeup等机制通知调度器,由OS系统调用最终完成唤醒。184 收藏 -
Golang · Go教程 | 3星期前 | web安全 · Go教程 · 后端工程 · Golang实战 · net/http · CSRF · golang 安全 Go net/http HTTP服务 csrf Go1.25 CrossOriginProtection
从后台接口 CSRF 风险出发,讲清 Go 1.25 net/http CrossOriginProtection 的判断逻辑、可信 Origin、拒绝日志、绕过白名单风险、预发测试和上线检查。183 收藏 -
通过有界 channel、select 和 context,把压力显式传回生产端。183 收藏 -
理解 Allow、Wait、Reserve 和 Burst 的区别,给接口加上可解释的限流策略。181 收藏 -
Go中同类型指针用==比较是安全的,仅比较地址值而非内容,nil指针可与同类型指针比较;但不可用于判断逻辑相等,结构体指针应避免依赖==判断业务等价性。177 收藏 -
状态机应使用结构体+映射表驱动转移,避免嵌套if-else;状态与事件用string或自定义enum;转移函数返回新状态,由FSM统一赋值;需加锁保护状态读写,但避免锁住耗时操作。176 收藏 -
在 database/sql 中使用 QueryContext、ExecContext 和事务 context。175 收藏 -
BeginTx(ctx,opts)是唯一安全的事务起点,ctx在此绑定并控制整个事务生命周期;后续tx.Exec/Query等方法隐式复用该ctx,不接受额外context参数。174 收藏 -
根据读写频率、临界区大小和语义选择同步工具。173 收藏 -
Go中协程panic不会传播至主goroutine,须在每个goroutine内部用defer+recover捕获并结构化记录日志,recover后仅清理退出,不可继续执行或盲目重试。170 收藏 -
在Golang中,匿名函数可作为值传递或立即执行,闭包则捕获外部变量实现状态保持;通过newCounter示例展示闭包计数器功能,并指出循环中闭包共享变量i的常见陷阱。168 收藏 -
gocraft/dbr不支持SQL字符串形式的多条件JOIN,必须使用其内置的dbr.And()/dbr.Or()等条件构造器组合条件,并通过LeftJoin(...,condition)正确绑定关联逻辑;同时需注意结构体嵌套字段的DB标签映射与别名一致性。167 收藏 -
给非核心依赖设计 fallback,让主流程在部分失败时仍可返回。167 收藏 -
是的,Gonet包在Windows上自Go1.9起真走IOCP,但仅限net.Conn相关操作(Listen、Accept、Read、Write);os.Open、filepath.WalkDir等仍为同步Win32调用,不进完成端口。166 收藏