从 Go 标准库开始

主要观点:新的 Go 开发者在开始项目时常问使用何种日志库、Web 框架和对象关系映射(ORM)等问题,应优先使用 Go 标准库,因其具有稳定性、全面性、可维护性、无依赖和减少锁定等优势。
关键信息

  • 标准库是编程语言自带的包库,无需下载额外源代码,如 Go 标准库中的fmt包可用于打印Hello, world!
  • 第三方包如github.com/fatih/color虽能简化终端转义序列代码,但源代码不在标准库中,使用前需下载。
  • Go 标准库的优点包括稳定(极少变化)、全面(几乎涵盖所有功能)、可维护(由 Go 工程师维护)、无依赖(安装 Go 时即包含)和减少锁定(易于迁移到兼容的第三方包)。
  • 日志库方面,Go 1.21 前标准库只有log包,不支持日志级别和结构化日志,1.21 后引入log/slog包,建议新 Go 开发者使用log/slog
  • Web 框架方面,Go 没有像其他语言那样广泛的框架,鼓励选择 HTTP 多路复用器,Go 1.22 及之后推荐使用net/http,之前可选择github.com/go-chi/chi等第三方包。
  • ORM 方面,标准库有database/sql,第三方包有github.com/gobuffalo/pop等,建议新 Go 开发者从database/sqlgithub.com/jmoiron/sqlx开始,随着项目增长再考虑迁移到gorm.io/gorm等。
    重要细节:通过多个代码示例展示了 Go 标准库与第三方包在日志、Web 框架和 ORM 方面的使用差异和特点,如不同日志包的输出格式、不同 Web 多路复用器的 API 差异、不同 ORM 包与标准库的交互方式等。最后强调应优先使用 Go 标准库,并感谢读者阅读全文。
阅读 7
0 条评论