Go 1.18新库netaddr里的intern.Value

Go 1.18引入了新库netaddr来表示IP地址及相关操作。其作者Brad Fitzpatrick专门写了篇blog说明这个库的设计原则和最终实现。 这个实现最主要的特性依赖intern.Value这个库。这里记录一下我对这个库的一些研究和看法 ...

2022-02-20 · Googol Lee

使用Go Swagger生成OpenAPI定义

OpenAPI(原名Swagger)是目前比较流行的定义HTTP API的协议。但是OpenAPI的定义文件是方便机器处理的格式,不易编写和阅读。这里介绍一种使用go-swagger,根据Go代码生成OpenAPI定义文件的方法。该方法只使用Go代码来定义API,不强求Server或者Client也使用Go。 目前go-swagger只能生成OpenAPI 2.0格式的定义。这个也是现在广泛使用的格式。go-swagger未来会支持OpenAPI 3.0。 本文假设已经熟悉Go语法,只对go-swagger的扩展部分进行详细解释。 ...

2021-12-04 · Googol Lee

一个Go开发者的Rust体验

一直很关注Rust这门语言的发展,不过没有实际使用过。最近Rust准备以2018 Rust的名义发布可以用作生产环境的稳定版本,又赶上有兴趣写点东西,所以把一个基础模块同时用Rust和Go实现了一下。本文就是这次实现的一些结果。 我自己有很长的Go使用经历,所以本文对Go的看法会相对比较准确。Rust虽然关注了很长时间,但代码基本上是最近一个星期左右的成果,可能看法有偏颇。 ...

2018-07-21 · Googol Lee

我对Go 2类型系统的期望

我应该算是第一批使用Go做实际开发的程序员,也写过一些比较深入的项目(比如go-socket.io)。我想总结一下Go里关于类型系统好用的部分以及不好用的部分。这些特性会集中在语言层面,而且基本上是Go 1基本不可能有改动的特性。 ...

2018-01-10 · Googol Lee