2026-07-08
码匠
Go语言defer语句看似简单,实则暗藏玄机。本文详解 defer的执行时机、多个defer的LIFO顺序、与return的交互关系,以及循环中defer闭包捕获等常见坑点。
2026-07-07
码匠
Go泛型到底会不会影响性能?本文通过基准测试数据详解Go泛型的编译期特化机制,以及生产环境中的最佳实践与避坑指南。
2026-07-06
码匠
goroutine泄漏是Go服务中常见却难以察觉的性能杀手。本文详解goroutine泄漏的成因、检测方法和实战排查步骤。
2026-05-30
码匠
总结Go语言错误处理最佳实践:避免panic滥用、不吞掉错误、用%w包装错误链、自定义错误类型、HTTP服务错误统一处理、goroutine错误收集。
2026-05-14
码匠
Go语言微服务开发完整实战教程,从单体应用拆分、服务注册发现、RPC通信到部署运维,带你掌握分布式系统开发。
2025-12-04
yvsm
作为PHP开发者,你熟悉用命名空间组织代码、Composer管理依赖、PHP-FPM+原生/框架(如Laravel/ThinkPHP)开发Web服务。Go从1.11版本开始引入Go Modules实现模块化和依赖管理,通过标准库net/http可快速搭建高性能Web服务——无需第三方Web服务器(如Nginx+PHP-FPM),编译后直接运行。今天我们以PHP项目开发逻辑为参照,完成Go项目从“模块化组织”到“Web服务上线”的全流程实战。一、Go项目模块化(对标PHP命名空间/自动加载)PHP
2025-12-04
yvsm
作为PHP开发者,你知道实现并发需要依赖pcntl扩展创建多进程、pthreads扩展实现多线程,或借助Swoole/Workerman框架——步骤繁琐且资源消耗高。而Go内置原生并发支持:Goroutine(协程)是轻量级线程(占用KB级内存),Channel(通道)实现Goroutine间安全通信,sync.WaitGroup实现并发同步,无需第三方扩展即可高效实现并发。今天我们以PHP多进程/线程为参照,快速掌握Go并发编程的核心逻辑。一、Goroutine(协程):对标PHP多进程/多线
2025-12-04
yvsm
作为PHP开发者,你熟悉用try/catch处理异常、file_get_contents/file_put_contents读写文件、mkdir创建目录。Go没有“异常(Exception)”的概念,而是通过error接口返回错误;文件操作依赖os、bufio等标准库,配合defer关键字保证资源释放,逻辑与PHP一致但语法更严谨。今天我们以PHP的错误/文件操作逻辑为参照,快速掌握Go的错误处理和文件操作核心。一、Go错误处理(对标PHP异常处理)PHP用Exception表示异常,通过try
2025-12-04
yvsm
作为PHP开发者,你熟悉用class定义类、interface定义接口,通过实例化对象实现面向对象编程。Go没有“类(class)”的概念,但通过结构体(struct)实现类的属性封装,通过方法(method)实现类的行为,通过接口(interface)实现多态——核心逻辑与PHP面向对象一致,但语法更简洁、无继承(用组合替代)。今天我们就以PHP的类/接口为参照,快速掌握Go面向对象编程的核心。一、Go结构体(struct):对标PHP的类Go结构体是“不同类型字段的集合”,对标PHP类的“属
2025-12-04
yvsm
作为PHP开发者,你早已习惯了“万能数组”——既可以当索引数组用,也可以当关联数组用,长度动态变化、元素类型不限。而Go没有“万能数组”,而是将复合数据类型拆分为数组(array)、切片(slice)、映射(map):数组对应PHP固定长度索引数组,切片对应PHP动态索引数组,Map对应PHP关联数组。今天我们就以PHP数组为参照,快速掌握Go这三种核心复合类型的声明、操作和核心差异。 一、Go数组(对标PHP固定长度索引数组) Go数组是“长