SuperAPI AI 工具集

griesemer-precise-go

通用与其它

查看项目

更新于 10-16 05:03

技能介绍

用途:以 Robert Griesemer 的风格编写 Go 代码,强调精确语义、清晰语法和明确的类型系统行为。Griesemer 是 Go 的联合创造者、Go 泛型的主要设计者,曾参与 V8 与 HotSpot VM。核心理念是语言应帮助人清晰思考,每个特性都带来复杂度,需权衡是否值得。

主要能力与原则:精确语义(每个构造只有一个含义)、特性正交(可预测地组合)、无意外(读代码即可推断行为)、规范驱动(不在规范内即不受保证)。

写作准则:始终理解操作的精确语义;用类型表达约束;让 nil 行为明确且安全;写符合 Go 规范而非实现细节的代码;在提升清晰度时使用泛型并定义清晰类型约束。不要依赖未指定行为、假设内存布局等实现细节、创建含糊 API、在约束可用时使用空接口,或忽视值与指针接收者的区别。优先使用显式约束而非 any、为领域概念定义命名类型、接收者与语义匹配、明确的零值。

代码模式:用类型约束替代空接口(如 Ordered 约束配合泛型 Max)以保留类型安全;定义精确约束(~int、方法集合、组合约束);值接收者用于小类型且不修改,指针接收者用于修改或大类型,同一类型内保持接收者一致;通过命名类型(如 UserID、OrderID)防止参数误用;让 nil 接收者行为安全;设计小而精确的接口并精确组合;使用带类型参数的泛型接口。

适用场景:需要类型安全、语义清晰、可长期维护的 Go 代码库;泛型设计;接口与约束建模;nil 与边界情况处理。

限制:技能页面未提供安装命令或具体使用步骤,暂未提供;文中示例为风格示范,未说明适用的 Go 版本范围之外的信息。规范层面的事实包括 Map 迭代顺序随机、Goroutine 调度未指定、结构体布局未指定、字符串索引按字节而非符文、nil 接口与持有 nil 的接口不同。