<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Go on zeromake 的个人博客</title><link>/tags/go/</link><description>Recent content in Go on zeromake 的个人博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 22 Nov 2022 12:50:53 +0800</lastBuildDate><atom:link href="/tags/go/index.xml" rel="self" type="application/rss+xml"/><item><title>调研消息队列</title><link>/pages/research-message-queues/</link><pubDate>Thu, 17 Nov 2022 16:16:00 +0800</pubDate><guid>/pages/research-message-queues/</guid><description>前言 公司之前使用的消息队列方案由于是云平台提供的按次费的产品，这种产品都有一个问题，就是项目流量用户访问量上去以后就会不划算了，但是由于是平</description></item><item><title>go 的定时器暂停与恢复</title><link>/pages/go-timer-pause/</link><pubDate>Tue, 11 Jan 2022 04:01:00 +0000</pubDate><guid>/pages/go-timer-pause/</guid><description>前言 最近在工作中遇到游戏里经常有延时逻辑，需要延迟多少秒后给客户端发送消息让客户端进行动画与逻辑，在这个基础上，来了一个加需求，用户在这些过</description></item><item><title>替换 time.Now 为自定义函数</title><link>/pages/replace-now-offset/</link><pubDate>Wed, 22 Sep 2021 10:02:00 +0000</pubDate><guid>/pages/replace-now-offset/</guid><description>&lt;h2 id="前言">前言&lt;/h2>
&lt;p>我这边业务里有大量的时间过期逻辑，也有不少定时触发的业务，这个时候这些业务完成后到了测试手里他们都有个疑问如何测试时间相关的功能，所以这里就做了各种方案去想办法替换 &lt;code>time.Now&lt;/code>。&lt;/p></description></item><item><title>(翻译)终极 channel</title><link>/pages/ultimete-channel/</link><pubDate>Sun, 05 Sep 2021 13:43:00 +0800</pubDate><guid>/pages/ultimete-channel/</guid><description>&lt;p>Author(s): &lt;a href="https://changkun.de">Changkun Ou&lt;/a>&lt;/p>
&lt;p>Permalink: &lt;a href="https://golang.design/research/ultimate-channel">https://golang.design/research/ultimate-channel&lt;/a>&lt;/p>
&lt;p>最近，我一直在重新思考图形应用程序的编程模式，并且已经用 Go 编写了一个 3D 图形包,
叫 &lt;a href="https://poly.red">polyred&lt;/a>。
在我设计渲染管道 API 时，一个棘手的问题困扰了我一段时间，最终导致我创建了一个无界通道(unbounded channel)作为解决方案。&lt;/p></description></item><item><title>(翻译)size classes 的应用</title><link>/pages/a-few-bytes-here-a-few-there/</link><pubDate>Sat, 06 Feb 2021 00:32:00 +0000</pubDate><guid>/pages/a-few-bytes-here-a-few-there/</guid><description>原文地址 今天文章来自一个最近流行的测试，思考一下这个基准测试代码片段。1 1 2 3 4 5 6 7 func BenchmarkSortStrings(b *testing.B) { s := []string{&amp;#34;heart&amp;#34;, &amp;#34;lungs&amp;#34;, &amp;#34;brain&amp;#34;, &amp;#34;kidneys&amp;#34;, &amp;#34;pancreas&amp;#34;} b.ReportAllocs() for i := 0; i &amp;lt; b.N; i++ { sort.Strings(s) } } 我们经</description></item><item><title>Starlark使用</title><link>/pages/starlark-used/</link><pubDate>Thu, 11 Jun 2020 07:53:00 +0000</pubDate><guid>/pages/starlark-used/</guid><description>&lt;h2 id="前言">前言&lt;/h2>
&lt;p>最近需要在 &lt;code>Golang&lt;/code> 里嵌入一个脚本语言，现在对于 &lt;code>Golang&lt;/code> 来说比较成熟的有 &lt;code>python&lt;/code>, &lt;code>javascript&lt;/code>, &lt;code>lua&lt;/code> 的第三方作为内嵌脚本执行引擎。&lt;/p>
&lt;p>其中我使用了 &lt;code>starlark&lt;/code> 主要是大部分兼容 &lt;code>python&lt;/code> 语法，并且比起其他的脚本实现它实际上是没有 &lt;code>vm&lt;/code> 的更加的轻量。&lt;/p></description></item><item><title>go-spring 使用学习</title><link>/pages/go-spring-learn/</link><pubDate>Sat, 21 Dec 2019 12:05:26 +0000</pubDate><guid>/pages/go-spring-learn/</guid><description>&lt;h2 id="前言">前言&lt;/h2>
&lt;ul>
&lt;li>最近发现了 &lt;a href="https://github.com/go-spring/go-spring">go-spring&lt;/a>&lt;/li>
&lt;li>看了一下比起其它的 &lt;code>di&lt;/code> 库感觉挺不错的，写篇博文记录一下&lt;/li>
&lt;/ul></description></item><item><title>(翻译)Go 高性能研讨讲座 - High Performance Go Workshop</title><link>/pages/high-performance-go-workshop/</link><pubDate>Fri, 06 Dec 2019 15:58:20 +0000</pubDate><guid>/pages/high-performance-go-workshop/</guid><description>&lt;blockquote>
&lt;p>&lt;a href="https://dave.cheney.net/high-performance-go-workshop/gopherchina-2019.html">原文地址&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>本次研讨讲座的目标是让您能够诊断 &lt;code>Go&lt;/code> 应用程序中的性能问题，并且修复这些问题。&lt;/p>
&lt;p>这一天，我们将从小做起 - 学习如何编写基准测试，然后分析一小段代码。然后讨论代码执行跟踪器，垃圾收集器和跟踪运行的应用程序。最后会有剩下的时间，您可以提出问题，并尝试编写您自己的代码。&lt;/p></description></item><item><title>docker 容器调试新姿势</title><link>/pages/docker-debug/</link><pubDate>Fri, 22 Mar 2019 04:32:21 +0000</pubDate><guid>/pages/docker-debug/</guid><description>&lt;h2 id="一前言">一、前言&lt;/h2>
&lt;ol>
&lt;li>我在平时工作中经常使用 &lt;code>docker&lt;/code> 来创建自己的开发环境，比如 &lt;code>mysql&lt;/code>, &lt;code>redis&lt;/code> 之类的。&lt;/li>
&lt;li>有些时候需要把现有的容器里的服务配置进行变更，&lt;code>docker exec&lt;/code> 进入容器后发现很多基础命令工具(vim, nano)都没有，这让我很苦恼。&lt;/li>
&lt;li>再后来看到 &lt;a href="https://github.com/aylei">@github/aylei&lt;/a> 的 &lt;a href="https://github.com/aylei/kubectl-debug">kubectl-debug&lt;/a> 发现了容器之间可以共享各种资源。&lt;/li>
&lt;li>但是 &lt;code>kubectl-debug&lt;/code> 只能够提供给 &lt;code>kubernetes&lt;/code> 进行使用，所以我这边模仿了 &lt;code>kubectl-debug&lt;/code> 写了一个 &lt;a href="https://github.com/zeromake/docker-debug">docker-debug&lt;/a>。&lt;/li>
&lt;/ol></description></item></channel></rss>