Go Web 开发

Go 为 Web 应用程序提供了高性能,安全, 以及对开发人员友好的工具集

Go 旨在使开发人员能够快速开发可扩展的、安全的 Web 应用程序。Go 标准库看自带易用的、安全的、高性能的、稳健的 Web 服务器,以及 Web 模板库。Go 完美支持了所有的新技术, 比如:HTTP/2,各种流行的数据库,包括MySQLMongoDBElasticSearch,最新的加密技术,如 TLS 1.3 等等。由于 Go 具有极好的可移植性,所以 Go Web 应用程序可以运行在任何的环境、云平台和操作系统上

Go gopher 对于企业来说,Go 是快速跨平台部署的首选。凭借其 Goroutine、本地编译以及基于 URI 的 Package 命名空间,使 Go 代码能够快速编译为单个的、非常小的二进制文件(具有零依赖性)

来自 QArea 市场经理 Andrew Smith 写道:“如果你正在为网络编程,移动开发,微服务,ERP 系统寻找强力的工具,根据很多真实的案例证明,进行相同类型的任务开发,使用 Go 进行 Web 开发比 Python 要快很多”

Quotation mark.

Go 语言是我见过的和使用过的最简单的语言,对我来说,Go 比 JavaScript 更易于学习

Bayburtsyan 总结了他的公司改用 Go 的五个关键原因:

  1. 编译成单个二进制文件 — “根据操作系统类型和体系结构的不同,Go 会使用静态链接将所有依赖项库和模块组合到一个二进制文件中”

  2. 静态类型 — “对大规模应用来说,类型系统真的很重要”

  3. 性能 — “Go 性能这么好的原因是由于其并发模型以及CPU可扩展性。当我们需要处理很多内部请求时,相比于 Python 的线程,Goroutines 在资源使用上会少 10 倍以上”

  4. 不再需要 Web 框架 — “实际上在大多数情况下,我们不再需要任何第三方库”

  5. 强大的 IDE 支持和调试 — “在我们的项目用 Go 重写后,我们的代码量比以前减少了 64% ”

  • Hugo Logo

    滴滴 是国内应用 Go 较早的公司,是国内 Gopher 聚居区,使用 Go 开发了大量线上项目,包括在线业务系统,分单系统,Proxy系统,监控系统等等

  • Hugo Logo

    今日头条 当前后端服务超过80%的流量是跑在 Go 构建的服务上。微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿,是业内最大规模的 Go 应用

  • Medium Logo

    TiDB 是 PingCAP 公司设计的开源分布式 HTAP 数据库,主要使用 Go 开发,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性

  • Hugo Logo

    Etcd 是 CoreOS 团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。Etcd 内部采用 Raft 协议作为一致性算法。基于 Go 语言实现

  • Caddy Logo

    Caddy 2 是用 Go 语言编写的,一款功能强大的,企业级的开源 Web 服务器,并自带 Automatic HTTPS。与使用 C 语言编写的服务器相比,Caddy 提供的内存安全性更高。Go 标准库提供的 Hardened TLS 栈能够处理很大一部分的互联网流量

  • Caddy Logo

    Prometheus 是一套开源的监控,报警,时间序列数据库的组合。2016年 Prometheus 加入了云计算基金会,成为 Kubernetes 之后的第二个托管项目。Prometheus 大多数组件都是用 Go 编写的

核心解决方案

Go web 开发书单

  • Gin 用 Go 编写的一个 Web 应用框架,对比其它主流的同类框架,他有更好的性能,更快的路由,超大规模的使用人群,丰富的中间件。相信我你会爱上 Gin,不解释
  • Echo 另外一个高性能,被大规模使用的 Go 框架。具有性能优秀的 Router,支持高扩展,对 XML、JSON 的完美解析,支持 HTTP/2 等等
  • Beego 国产的明星级别的 Go 框架,是一个优秀的 MVC 框架 ,主要设计灵感来源于 Tornado、Sinatra 和 Flask 这三个框架
  • Macaron 一款具有高生产力和模块化设计的 Go Web 框架。框架秉承了 Martini 的基本思想,并在此基础上做出高级扩展
  • Buffalo 一款能够进行快速 Go Web 开发的全栈式框架,由 Go 和 Javascript 共同组成了一个强大的生态
  • Revel 一款高生产力的、全栈的 Go Web 开发框架
  • Faygo 是一款快速、简洁的 Go Web 框架,可用极少的代码开发出高性能的 Web 应用程序(尤其是 API 接口)
  • Gorilla ,一个 Go Web 编程工具包。这个工具包提供 Router、Dispatcher、Context、 RPC、Schema、Sessions、Webscoket等等
  • julienschmidt/httprouter 轻量级的,高性能的 HTTP 路由
  • gorilla/mux 强力的 HTTP 路由,具有丰富的 URL 匹配机制
  • chi 可以构建一个轻量的、可复用的、能组合的高性能 HTTP 服务
  • net/http 标准库 HTTP 包

课程

项目

  • gopherjs 一个编译器,将 Gopher 用 Go 编写代码轻松转换成 JS 前端代码,并且能够兼容所有的浏览器
  • Hugo 世界上最快构建网站的框架
  • Mattermost 一个灵活的、开源的、安全的团队协作平台
  • Caddy Go 语言编写的,一款功能强大的、企业级的开源 Web 服务器,并自带 Automatic HTTPS