使用你的类型系统

主要观点:讨论在生产代码库中很少使用的简单技术,即定义不同类型来表示不同事物以避免编程中的错误,通过示例展示在 Go 语言的libwx库中如何使用该技术。
关键信息:

  • 普通编程语言中的简单类型如整数、字符串等易导致错误,如字符串用作账户 ID 等。
  • 更好的解决方案是定义不同类型,如AccountIDUserID等,并在表示不同东西时使用。
  • libwx库中为处理的每个测量定义了类型,并提供了类型转换方法,避免了因使用float64导致的错误。
    重要细节:
  • 示例代码中展示了使用自定义类型AccountIDUserID避免类型混淆的情况,如DeleteUser函数对不同类型的处理。
  • libwx库中通过定义类型和方法,如TempFRelHumidity等,防止用户在计算中犯错误。
  • 强调应利用类型系统,模型应拥有自己的 ID 类型,公共和私有函数应避免单独使用浮点数或整数,指出很多实际系统因类型混淆导致错误,而该技术简单且未被广泛使用,代码可在 GitHub 上查看。
阅读 28
0 条评论