style: 统一注释术语,去掉历史叙述与装饰标记 - #259
Conversation
把 .proto 交给使用方自行生成客户端,等于把内部传输实现当成公开 API:使用方要装 protoc 工具链、要理解 protobuf,还得跟着我们的 proto 变更走。对外契约应当是我们自己的接口, gRPC 顶多是它背后的一种传输。 kvgrpc 移入 internal/kvgrpc。Go 的 internal/ 由编译器强制——模块外无法导入,故该边界不 依赖口头约定。补 package 文档说明其定位,并在 README 明确「对外契约只有 client 包与 BanNet 协议规范,其余包均为内部实现」。多语言接入的正确做法是在 BanNet 协议之上提供各 语言 SDK 或网关,而非暴露 protobuf。 顺带说明:Go SDK 本身与 gRPC 无关,一行都不碰——BanNet 协议是自有的,帧编解码手写, 零代码生成。protoc-gen-go 仅在改动 .proto 后重新生成 .pb.go 时才需要,属这条 gRPC 路径自带的维护负担,不是能力缺口。go_package 选项已同步为新路径。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
四项,全部只改注释,不动一行代码(diff 已逐行核对:每条改动行都落在注释内)。
一、术语统一。同一概念此前有两种叫法,甚至同一行并存(如「flush(flush → L0)」):
改前(中/英) 改后
flush 37 / 16 全用 flush(与 Flush 方法同名)
memtable 2 / 13 全用 memtable
compaction 13 / 21 全用 compaction
墓碑 34 / 0 全用中文(本无混用)
分片 96 / 2 全用中文(本无混用),2 处英文改回中文
需要说明的是,这与我先前给出的「有代码实体就用英文」的字面规则有两处不同:墓碑与分片
在注释里本就一致(34:0、96:2),按字面执行等于为 2 处英文去改 96 处中文,把本来一致的
地方改成不一致。故按该规则的目标(一致且好读)而非字面执行。先前所谓「五五混用」的数字
是 grep -i 把注释里的标识符引用(ShardCount、MemTable)也计入所致,实际混用只在
flush / compaction / memtable 三处。
「合并」保留 3 处:ScanRange 与 SnapshotLive 的 active+dirty 归并、TestMergeBasic 的
多路归并——那是 k 路 merge,与 compaction 是不同概念。
二、去掉 24 处叙述历史的注释(「此前……」「原先……」)。代码注释应陈述当前的不变量与
理由,曾经是什么样属于 git 历史。这也修正我自己的前后不一致:先前提出该原则后又大量写入。
三、去掉 7 处【】装饰标记,改为普通行文(Go 生态无此写法)。
四、修 3 处文档注释首行不以标识符开头(Go 强约定),其中 NewKVServer 的注释首行仍写着
重命名前的旧名 NewFSM。
另补:在汉字与拉丁字母/数字之间统一补空格(32 行)。首次尝试时用了「压缩连续空格」的
规则,破坏了 7 个文件里 28 行 Go 文档列表的缩进(「// - 」被压成「// - 」),已回退
重做并加校验:改动前后带缩进的注释行数须相等。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (38)
📝 WalkthroughWalkthroughThe change adds an internal gRPC client and updates its package wiring and standalone test. It revises the public API documentation and clarifies existing storage, persistence, protocol, runtime, and test comments without changing their behavior. ChangesAPI boundary and documentation
Estimated code review effort: 3 (Moderate) | ~20 minutes ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🐯 BanGD 数据库内核评审整体风险:🟢 低 变更总结:纯注释与文档术语统一 PR:把 flush/memtable/compaction 的中英文混用统一为单一命名,去掉叙述历史的注释(改为陈述当前不变量与理由),移除 需要特别指出:虽然标题自称「只改注释」,但
架构问题(共 2 项)
普通问题(共 1 项)💡 [建议 · 注释精度]
本次评审消耗 token:共 232637 tokens(输入 217983,输出 3774,缓存命中 10880,缓存写入 0)|维度 [concurrency, memory, lock, storage, schema]|补充阅读周边文件 [internal/kvgrpc/grpc_client.go, bannet/server.go, client/conn.go, client/errors.go]|对抗式复核 3 票/条,过滤疑似误报 1 条 |
承接 #250(目录布局)、#253(标识符命名)。本批只改注释——diff 已逐行核对,每条改动行都落在注释内,未动一行代码。
一、术语统一:同一概念只有一个名字
此前同一概念有两种叫法,甚至同一行内并存(
// 写放大 = (flush + compaction) / 刷盘、「flush(flush → L0)」)。flush(与Flush方法同名)memtablecompaction一处需要说明的偏离
这与我先前提出的「凡有代码实体就用英文」的字面规则有两处不同:墓碑与分片在注释里本就一致(34:0、96:2),按字面执行等于为 2 处英文去改 96 处中文,把本来一致的地方改成不一致。故按该规则的目标(一致且好读)而非字面执行。
而且先前那组「五五混用」的数字本身是错的:我用了
grep -i,把注释里的标识符引用(ShardCount、MemTable)也计入了英文散文。案例:shard在注释散文里实际只出现 2 次,不是 32 次。真实混用只在 flush / compaction / memtable 三处。「合并」刻意保留 3 处:
ScanRange与SnapshotLive的 active+dirty 归并、TestMergeBasic的多路归并——那是 k 路 merge,与 compaction 是不同概念,不该合并成一个词。二、去掉 24 处叙述历史的注释
「此前……」「原先 Type 为裸 string……」这类内容属于 git 历史,不属于代码:注释应陈述当前的不变量与理由。这同时修正我自己的前后不一致——先前提出该原则后又大量写入。
示例:
三、去掉 7 处
【】装饰标记Go 生态无此写法,改为普通行文。
四、修 3 处文档注释首行不以标识符开头
Go 强约定。其中
NewKVServer的注释首行仍写着重命名前的旧名NewFSM—— 实质的文档缺陷。过程记录
首次尝试时加了「压缩连续空格」规则,破坏了 7 个文件中 28 行 Go 文档列表的缩进(
// -被压成// -,续行也失去对齐)。已回退重做,并加了校验:改动前后带缩进的注释行数必须相等。另在汉字与拉丁字母/数字之间统一补空格(32 行),行内注释(code // 注释)用引号感知的扫描单独处理,避免把"http://"误判为注释。验证
go build ./...、go vet ./...、go test -race ./...、gofmt全绿。🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Tests