Go Wiki:LearnServerProgramming
此页面链接到有关学习 Go 中服务器编程的资源 - Web 服务和移动后端。这些项目按主题组织到各个部分。
入门
- 阅读 使用 Go 标准库编写 Web 应用程序
- 阅读 使用 Go 构建 Web 应用程序,作者是 BeeGo Web 框架
- 阅读 反教科书中的 Go Web 应用
- 阅读 使用 Go 构建 Web 应用程序,作者是 Negroni 和 Martini Web 服务器工具包。在阅读本书之前,请先学习绝对基础知识。
- 阅读 在 Go 中构建自己的 Web 框架,分为 5 部分。
- 观看 Go:随着优雅而增长的代码
- 从 Sourcegraph 团队下载 完整的工作 3 层应用程序示例。
中间件
您将经常看到讨论的一个主题是“中间件”。如果您不熟悉该术语,我们建议您首先阅读以下几篇文章
- Go 中的中间件:最佳实践和示例 2014-11-13
- 自定义处理程序 第 1 部分 - 避免全局变量,第 2 部分 - 错误处理 2014-07-16
- 制作和使用 HTTP 中间件 2014-10-21
- 在 Go 中编写 HTTP 中间件 2013-10-09
工具包和框架
在决定采用第三方 Web 框架或工具包之前,请记住,Go 标准库提供了构建复杂现代 Web 应用程序所需的所有工具。秉承 Go 偏好简单性和可组合性,而非复杂性和神奇,我们建议你了解标准库能带你走多远。
如果你认为需要更多基础设施,请先查看一些可用的工具包和库。
工具包和库和微框架
- Gorilla 工具包
- Negroni 工具包 - Go 的惯用 HTTP 中间件
- Echo 框架 - 快速且简单
- Goji Web 微框架
- Go Craft 中间件
- Go RESTful - RESTful 服务 API 工具包
- limiter - Go 的简单限速中间件
- Kite 微服务框架
- Alice - Go 的无痛中间件链接
- YAM - 又一个 Mux
- Bone - 快速 HTTP 路由器
框架
- BeeGo 框架
- Frodo - 受 Laravel(php)、Slim(php) 和 ExpressJS(node.js) 启发的 Go 微型 Web 框架
- GinGonic
- Macaron - Go 中高效的模块化 Web 框架。
- Revel Web 框架
- Ringo - 受 Rails、Gin 启发的轻量级 MVC Web 框架。
- Utron - Web 应用程序的轻量级 MVC 框架。
- Iris - Web 应用程序的快速 MVC 框架。
通信
- net/http 包提供 HTTP 客户端和服务器实现。
- encoding/json 包实现 RFC 4627 中定义的 JSON 对象的编码和解码。
- net/rpc 包提供对通过网络或其他 I/O 连接导出对象的方法的访问。
- os/exec 包运行外部命令。
演示
- text/template 包实现用于生成文本输出的数据驱动模板。
- html/template 包实现用于生成防止代码注入的 HTML 输出的数据驱动模板。
分析和性能
- 阅读 Go 程序分析
- 阅读 数组、切片(和字符串):‘append’ 的机制
- 阅读 常见问题解答 (FAQ),尤其是
- 包 bufio 实现缓冲 I/O。
- 包 runtime/pprof 以 pprof 可视化工具期望的格式写入运行时分析数据。
- 包 net/http/pprof 通过其 HTTP 服务器提供以 pprof 可视化工具期望的格式的运行时分析数据。
跟踪、监控、日志记录和配置
- 包 expvar 提供一个标准化接口用于公共变量,例如服务器中的操作计数器。
- 包 flag 实现命令行标志解析。
- 包 log 实现一个简单的日志记录包。
- 包 glog 实现类似于 Google 内部 C++ INFO/ERROR/V 设置的日志记录。
存储
- 包 os 提供一个与平台无关的操作系统功能接口。
- 包 path/filepath 实现实用程序例程,用于以与目标操作系统定义的文件路径兼容的方式操作文件名路径。
- 包 database/sql 提供一个围绕 SQL(或类似 SQL)数据库的通用接口。
平台
Google Cloud Platform
- 阅读 Go、Cloud Endpoints 和 App Engine,第 1 部分,第 2 部分
- 阅读 Google Cloud Platform:Go 运行时环境
- 观看 Go 和 Google Cloud Platform
- 阅读 Go on App Engine:工具、测试和并发
- 获取 Google Cloud Platform Go 库
- 阅读 使用 Docker 部署 Go 服务器
- 搜索 Google Cloud 或 gcloud 的包
- 搜索 App Engine 或 GAE 的包
亚马逊网络服务
- aws-sdk-go 存储库提供自动生成的 Go 中的 AWS 客户端。它具有亚马逊的官方支持。
- Goamz 包 使 Go 程序能够与亚马逊网络服务进行交互。
- 搜索 AWS 或 亚马逊服务 的包
Microsoft Azure
- Microsoft OpenTech 的 azure-sdk-for-go 提供了一个 Golang 包,可以轻松使用和管理 Microsoft Azure 服务。
- 搜索 Azure 的包
Openstack / Rackspace
- Gophercloud 是一个用于处理 OpenStack 云的 Golang SDK。
- 搜索 Openstack 或 Rackspace 的包
IBM BlueMix
此内容是 Go Wiki 的一部分。