Go: 标准库

2023-03-032026-07-104 出链1 引用

定义足够稳定的基础接口,让生态可以围绕其组合。

小而稳的标准库 + Go 项目维护的扩展库(golang.org/x/...)

普通库 vs. 标准库

普通库可以:发新版;改 API;废弃旧方案;被更好的库替代。 标准库一旦发布,通常会被大量代码依赖。Go 1 兼容性承诺要求它不能轻易破坏兼容性。于是标准库会变成一种“历史冻结层”。

标准库判断标准

  1. 是否足够基础?
  2. 是否跨领域通用?
  3. API 是否已经稳定?
  4. 是否需要作为生态统一协议?
  5. 一旦放进去,长期维护成本是否可接受?

这也是我们学习标准库的核心所在:核心抽象、基础协议、底层能力、跨库协作接口

Go 标准库常见的设计方式:基础接口尽量小(最低承诺)、额外能力用额外接口表达(可选增强)、调用方按需做类型断言(是否有额外增强能力)

评论