好的 被认为是有害的

主要观点:

  • 在 Go 编程中,存在将ok用于各种场景的约定,但这种约定存在问题,如可能导致代码可读性降低、难以重构等。
  • 提出了更好的替代方案,即“exists”约定,用于存在性检查变量命名,能使代码更清晰、易读、易重构。
  • 除了存在性检查,在接收可能关闭的通道时使用ok也存在问题,可使用received替代。
  • 在类型断言中使用ok是个例外,不会出现上述问题。

关键信息和重要细节:

  • 在 Go 中,有个关于命名的玩笑,提到计算机科学中的两个难题及off-by-one错误,进而引出关于 Go 中布尔变量命名的讨论。
  • 如在map存在性检查中,普遍约定用ok表示变量,但这会带来一些问题,如代码重构时易出错。
  • ok约定已超出map存在性检查,扩展到其他相关领域,如Dolt的代码中。
  • Dolt的三向合并代码为例,展示了ok约定带来的问题,如变量名重复导致代码逻辑混乱。
  • 提出的“exists”约定能避免ok约定的问题,使代码更清晰,如在Dolt的代码修改中体现。
  • 在接收可能关闭的通道时,使用ok也有问题,可使用received替代。
  • 类型断言中使用ok是个例外,不会出现上述问题。

总结:Go 编程中ok约定存在问题,应采用“exists”约定替代,同时在接收可能关闭的通道和类型断言中要注意使用合适的命名方式,以提高代码的可读性和可维护性。

阅读 8
0 条评论