概览
Go 为 Web 应用程序提供速度、安全性和开发者友好型工具
Go 旨在帮助开发者快速开发可扩展且安全的 Web 应用程序。Go 自带易于使用、安全且高性能的 Web 服务器,并包含其自己的 Web 模板库。Go 对所有最新技术都有出色的支持,从 HTTP/2,到 MySQL、MongoDB 和 Elasticsearch 等数据库,再到包括 TLS 1.3 在内的最新加密标准。由于 Go 极强的可移植性,Go Web 应用程序可在 Google App Engine 和 Google Cloud Run(易于扩展)上原生运行,或在任何环境、云平台或操作系统上运行。
主要优点
以创纪录的速度跨平台部署
对于企业来说,Go 因其提供快速跨平台部署而备受青睐。凭借其 Goroutine、原生编译和基于 URI 的包命名空间,Go 代码编译成一个单一、小巧的二进制文件——零依赖——使其非常快速。
利用 Go 开箱即用的性能,轻松扩展
Hexact Inc. 联合创始人兼首席技术官 Tigran Bayburtsyan 总结了其公司转向 Go 的五个主要原因
-
编译成单个二进制文件 — “通过静态链接,Go 实际上将所有依赖库和模块组合成一个基于操作系统类型和架构的单个二进制文件。”
-
静态类型系统 — “类型系统对于大型应用程序非常重要。”
-
性能 — “Go 因其并发模型和 CPU 可扩展性而表现更佳。每当我们需要处理一些内部请求时,我们都使用独立的 Goroutine 来完成,这些 Goroutine 的资源消耗比 Python 线程便宜 10 倍。”
-
无需 Web 框架 — “在大多数情况下,你确实不需要任何第三方库。”
-
出色的 IDE 支持和调试 — “将所有项目重写为 Go 后,我们的代码量比以前减少了 64%。”
特色用户
客户 | 简介 | 使用 Go 的项目 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
开始使用
关于 Web 开发的 Go 书籍
Web 框架
-
Echo
一个高性能、可扩展、极简的 Go Web 框架
-
Flamingo
一个基于 Go 的快速开源框架,具有清晰且可扩展的架构
-
Gin
一个用 Go 编写的 Web 框架,具有类似 Martini 的 API。
-
Gorilla
Go 编程语言的 Web 工具包。
路由器
-
net/http
一个标准库 HTTP 包
-
julienschmidt/httprouter
一个轻量级高性能 HTTP 请求路由器
-
gorilla/mux
一个功能强大的 HTTP 路由器和 URL 匹配器,用于使用 🦍 构建 Go Web 服务器
-
Chi
一个轻量级、惯用且可组合的路由器,用于构建 Go HTTP 服务。
数据库和驱动
-
database/sql
一个标准库接口,支持 MySQL、Postgres、Oracle、MS SQL、BigQuery 和大多数 SQL 数据库的驱动
-
mongo-driver/mongo
MongoDB 支持的 Go 驱动
-
elastic/go-elasticsearch
一个用于 Go 的 Elasticsearch 客户端
-
GORM
一个用于 Go 的 ORM 库
-
Bleve
用于 Go 的全文搜索和索引
-
CockroachDB
数据库的演进——专为云设计,以提供大规模弹性、一致性、分布式 SQL
Web 库
-
markbates/goth
Web 应用程序的身份验证
-
jinzhu/gorm
一个用于 Go 的 ORM 库
-
dgrijalva/jwt-go
JSON Web 令牌的 Go 实现
课程
- 学习使用 Go 创建 Web 应用程序,一个付费在线课程
项目
- gopherjs,一个从 Go 到 JavaScript 的编译器,允许开发者用 Go 编写前端代码,这些代码将在所有浏览器中运行。
- Hugo,世界上最快的网站构建框架
- Mattermost,一个灵活的开源消息平台,可实现安全的团队协作
- Caddy,一个功能强大、企业级、开源的 Web 服务器,具有用 Go 编写的自动 HTTPS 功能