Sqids: 简短唯一ID生成器

Sqids(发音为squids, 鱿鱼)是一个开源库,允许您从数字中生成简短的唯一且看起来随机的标识符, 而且这些ID是URL安全的,你可以同时编码几个数字, 也可以剔除常见的脏话或者政治敏感的单词。你可以把它想象成一个十进制到十六进制的转换器,但它还具备一些额外的功能。
比如:https://example.com/Lqj8a0

先前它叫做Hashids, 但是由于商标问题,我不得不更改名称。Sqids是Short Quick Unique Identifiers的缩写。

阅读全文

Go语言编程技巧 1.0 发布了

经过和众多Gopher的努力,Go语言编程技巧 1.0 版本终于发布了。这是一个Go语言编程技巧的集合,涵盖了Go语言的各个方面,包括语法、并发、性能、工具、库等等。这个项目的目的是帮助Go语言开发者更好地理解Go语言,提高Go语言编程技巧。

阅读全文

gotips 001: 一行代码测量函数的执行时间

Golang Tips 是翻译的 Phuong Le @func25 陆陆续续的发表的推文,目前已经发表 70+了。我征得Phuong Le 的同意后,会逐步把这些推翻翻译过来,发布到公众号上。

因为是推文,可能原作者的内容比较简单,比如第一个 tip 就一张图片,我会相应的进行扩充,丰富其内容。
后续也会在 github 建立一个项目,大家都可以参与进行翻译。

阅读全文

类型安全的Pool

池(sync.Pool)是一组可单独保存(Set)和检索(Get)的临时对象集合。

存储在池中的任何项都可能在任何时候自动移除而无需通知。如果池在移除项时持有该对象的唯一引用,那么这个对象可能会被释放掉。

池能够确保在多个goroutine同时访问时的安全性。

池的目的在于缓存已分配但未使用的对象以便后续复用,减轻垃圾收集器的压力。

阅读全文