Go这样检测Data Race让并发程序又简单了许多
大家好,我是极客老墨。 写并发代码最怕什么?不是死锁,不是性能问题,而是那些偶尔才出现、难以复现的诡异 bug。这些 bug 的罪魁祸首往往就是 Data Race(数据竞争)。 ...
大家好,我是极客老墨。 写并发代码最怕什么?不是死锁,不是性能问题,而是那些偶尔才出现、难以复现的诡异 bug。这些 bug 的罪魁祸首往往就是 Data Race(数据竞争)。 ...
大家好,我是极客老墨。 之前写过一篇Go 测试:写得爽,跑得快,聊了单元测试、表格驱动测试和基准测试。很多朋友留言问:“老墨,单元测试我会写了,但总感觉测不全,怎么办?” ...
大家好,我是老墨。 很早之前,翻译了一篇 Golang 官方的模块管理文档中文,那篇有点“官方”了,今天老墨搞一篇接地气的模块实战教程。 说实话,我第一次接触 Go 模块的时候,内心是拒绝的。 ...
大家好,我是极客老墨。 同一份代码需要在开发、测试、生产等不同环境运行。配置管理让我们能够灵活切换环境,而不需要修改代码。这篇就聊聊 Go 的配置管理,从最简单的环境变量到强大的 Viper 库。 ...
大家好,我是极客老墨。 单元测试只能测试你想到的情况。空字符串、负数、超长输入,这些边界情况很容易遗漏。模糊测试能自动生成大量随机输入,帮你发现那些没想到的 Bug。 ...
大家好,我是极客老墨。 排查问题时,日志是第一手段。服务挂了、请求慢了、数据错了,都要靠日志定位。但日志写不好,要么找不到关键信息,要么性能拖累整个系统。 ...