Go,一种相当不错的语言—kokada

主要观点:作者一直对 Go 语言感兴趣但未掌握,2016 - 2018 年开始,到 2023 年已在多个项目中使用 Go 语言,包括写项目、脚本、库等,现在 Go 已成为其工具包中的语言之一,虽仍有爱恨交织,但爱多于恨。

关键信息:

  • 2016 - 2018 年开始对 Go 语言感兴趣,当时语言特性与现在不同。
  • 2023 年写了第一个 Go 项目第一个库等。
  • 喜欢 Go 语言的点:默认生成静态二进制文件、编译快、反馈快、启动快、模块管理方便、go CLI 工具功能强大。
  • 不太喜欢的点:测试基于接口而非断言需重复写断言代码、must*函数需重复写、缺乏空值性(可丢失上下文)、语言的可变特性、依赖过多魔法(如internalmain包、名称大小写表示可见性、按文件名条件编译、魔法注释等)。

重要细节:

  • 写博客也用 Go 脚本自动发布,之前是 Python 脚本。
  • 用 Go 写脚本更频繁是因为反馈快。
  • 对 Python 命令行工具的启动时间敏感,Go 很少有此问题。
  • 模块管理虽有怪癖但用goCLI 很方便且能生成依赖哈希。
  • goCLI 可管理依赖、生成文档、格式化代码等。
  • 引用 Rob Pike 话说明代码简单时宁愿复制也不引入依赖。
  • 给出写断言和must*函数的示例代码。
  • 对比有和没有空值性的代码示例说明其对开发体验的影响。
阅读 8
0 条评论