滥用 Go 的基础设施 | 逆向工程

如果这些信息已经为人所知,我深感抱歉,但我找不到任何关于它的参考资料,而且我想了解发生了什么并与你们分享,因为我认为这样做是有价值。 以防万一有人不知道,我向 Go 团队道歉,因为我没有先与他们交谈,就急于全面披露(我认为情况并没有那么严重)。我真的很喜欢 Go!感谢你们所做的一切工作。 问题# 昨晚,我在探索 Go 的 校验和数据库,我注意到一个有趣的结果: sqlite> select path, count(path) from modules group by path order by count(path) desc; github.com/homebrew/homebrew-core|39438 github.com/Homebrew/homebrew-core|30896 github.com/concourse/concourse|25372 github.com/openshift/release|24065 github.com/cilium/cilium|22138 Go 的 文档 (感谢 Filippo Valsorda!): 为了避免在不区分大小写的文件系统中出现歧义,$module 和 $version 元素采用大小写编码,方法是将每个大写字母替换为感叹号,后跟相应的小写字母。这样可以将模块 example.com/M 和 example.com/m 都存储在磁盘上,因为前者被编码为 example.com/!m。 无论如何,这引起了我的注意,因为众所周知 Homebrew 使用 Ruby,所以我去检查了 存储库 内容。 GitHub 语言统计数据证实了这一点: 这个结果似乎出乎意料,因为 Go 没有任何踪迹,而 Go […]