来自 #285 的架构级评审建议。不阻塞合入,仅供参考是否有更好的架构解法。
💡 [建议 · 兼容] 拆包后 scan.go 旧包注释与导入受损 proto/scan.go
问题根因:迁移 pkg/proto → proto 后,client/conn.go、client/client.go 等文件注释里仍写着 pkg/proto 的旧路径(如 conn.go 顶部『与 pkg/proto 的包注释一致』,README 的线格式表也指向 pkg/proto)。这些文字引用在包迁移后语义失锚,读者会去不存在的路径找文档。根因是目录移动没有同步清理包内引用自身路径的文档字符串。
为什么低级解法不够:这虽是文字问题,但通用评审可能忽略——因为注释不参与编译。然而作为把『对外契约』作为核心卖点的重构 PR,文档失锚会让后续工程师在 pkg/proto 文件里找不到包注释而困惑。属于一次性清理即可解决的问题,不值得架构化。
架构级方案:包迁移时对『包内代码引用自身包路径』的注释做一次 grep 清理:把所有 pkg/proto、pkg/predicate 的文字引用改为新路径 proto/predicate(或直接写『本包注释』而不写路径)。建议把『搜索仓库内是否还有 pkg/ 引用』作为这种边界重划的收尾校验步骤固化进规范。
代价/收益:代价:需 grep 一处注释;收益:文档与真实路径对齐,避免后续工程师按旧路径找包注释迷路。零运行开销。
💡 [建议 · 兼容] 拆包后 scan.go 旧包注释与导入受损
proto/scan.go问题根因:迁移
pkg/proto→proto后,client/conn.go、client/client.go等文件注释里仍写着pkg/proto的旧路径(如conn.go顶部『与 pkg/proto 的包注释一致』,README 的线格式表也指向pkg/proto)。这些文字引用在包迁移后语义失锚,读者会去不存在的路径找文档。根因是目录移动没有同步清理包内引用自身路径的文档字符串。为什么低级解法不够:这虽是文字问题,但通用评审可能忽略——因为注释不参与编译。然而作为把『对外契约』作为核心卖点的重构 PR,文档失锚会让后续工程师在 pkg/proto 文件里找不到包注释而困惑。属于一次性清理即可解决的问题,不值得架构化。
架构级方案:包迁移时对『包内代码引用自身包路径』的注释做一次 grep 清理:把所有
pkg/proto、pkg/predicate的文字引用改为新路径proto/predicate(或直接写『本包注释』而不写路径)。建议把『搜索仓库内是否还有 pkg/ 引用』作为这种边界重划的收尾校验步骤固化进规范。代价/收益:代价:需 grep 一处注释;收益:文档与真实路径对齐,避免后续工程师按旧路径找包注释迷路。零运行开销。