<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Huan Du · Blog</title><description>Personal site and blog of Huan Du — Go open-source author, software developer based in China.</description><link>https://huandu.me/</link><language>zh-CN</language><item><title>go-clone：当深度拷贝遇到 GC，如何避免出错</title><link>https://huandu.me/blog/go-clone-gc-crash/</link><guid isPermaLink="true">https://huandu.me/blog/go-clone-gc-crash/</guid><description>一个每天偶发几次的崩溃：unsafe 拷贝绕过了写屏障，破坏了 GC 的三色标记，最后如何安全地修好它。</description><pubDate>Sat, 26 Mar 2022 00:00:00 GMT</pubDate><category>go</category><category>go-clone</category><category>gc</category><category>unsafe</category></item><item><title>Travis CI 免费午餐快到期了，怎么办？</title><link>https://huandu.me/blog/leaving-travis-ci/</link><guid isPermaLink="true">https://huandu.me/blog/leaving-travis-ci/</guid><description>travis-ci.org 关停、credit 按量扣除之后，我试了 Circle CI，并把几十个仓库的构建配置迁移过去。</description><pubDate>Sun, 27 Dec 2020 00:00:00 GMT</pubDate><category>ci</category><category>open-source</category></item><item><title>go-clone：极致优化深拷贝效率与拷贝私有字段</title><link>https://huandu.me/blog/go-clone-private-fields/</link><guid isPermaLink="true">https://huandu.me/blog/go-clone-private-fields/</guid><description>反射很慢，但深拷贝可以更快：浅拷贝加定点替换、拷贝未导出字段，以及减少反射次数的几种手法。</description><pubDate>Fri, 17 Jul 2020 00:00:00 GMT</pubDate><category>go</category><category>go-clone</category><category>reflection</category><category>performance</category></item><item><title>go-assert：如何自动输出上下文变量信息</title><link>https://huandu.me/blog/go-assert-context-variables/</link><guid isPermaLink="true">https://huandu.me/blog/go-assert-context-variables/</guid><description>断言失败时自动打印 buf、s1、s2 的值：go-assert 如何借助 DWARF 调试信息拿到上下文变量。</description><pubDate>Thu, 14 May 2020 00:00:00 GMT</pubDate><category>go</category><category>testing</category><category>go-assert</category><category>reflection</category></item><item><title>go-clone：深拷贝 Go 数据结构</title><link>https://huandu.me/blog/go-clone-deep-copy/</link><guid isPermaLink="true">https://huandu.me/blog/go-clone-deep-copy/</guid><description>为什么 Go 里通用的深拷贝库这么少？go-clone 用反射实现深拷贝，以及它对递归指针和 interface 的处理。</description><pubDate>Wed, 19 Feb 2020 00:00:00 GMT</pubDate><category>go</category><category>go-clone</category><category>reflection</category></item><item><title>go-assert 库介绍</title><link>https://huandu.me/blog/go-assert-introduction/</link><guid isPermaLink="true">https://huandu.me/blog/go-assert-introduction/</guid><description>断言失败时只看到一行 Fatalf 太难受了，go-assert 用 runtime.Callers 和 go/parser 把出错的表达式原文打印出来。</description><pubDate>Wed, 12 Feb 2020 00:00:00 GMT</pubDate><category>go</category><category>testing</category><category>go-assert</category></item><item><title>学习 Go 的一些资料指引</title><link>https://huandu.me/blog/go-learning-resources/</link><guid isPermaLink="true">https://huandu.me/blog/go-learning-resources/</guid><description>从 Essential Go 到 Go Web 编程：我推荐给 Go 初学者的几份资料，以及它们各自适合的阶段。</description><pubDate>Fri, 02 Nov 2018 00:00:00 GMT</pubDate><category>go</category><category>resources</category></item><item><title>指数级增长背后，滴滴出行业务系统的架构升级</title><link>https://huandu.me/blog/didi-architecture-upgrade/</link><guid isPermaLink="true">https://huandu.me/blog/didi-architecture-upgrade/</guid><description>2016 年滴滴架构升级的复盘：模块染色、代码治理、无状态化，以及重构之后 crash 率反而下降的原因。</description><pubDate>Fri, 26 Aug 2016 00:00:00 GMT</pubDate><category>architecture</category><category>didi</category><category>engineering</category></item></channel></rss>