Go Web编程实战派——从入门到精通
  • 推荐1
  • 收藏2
  • 浏览3.3K

Go Web编程实战派——从入门到精通

廖显东 (作者)  吴宏伟 (责任编辑)

  • 书  号:978-7-121-40800-7
  • 出版日期:2021-04-01
  • 页  数:536
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:吴宏伟
本书涵盖从Go语言入门到Go Web开发高手所需的核心知识、方法和技巧,共分4篇。
第1篇“Go语言入门”,介绍Go语言的基础语法,既使没有Go语言基础的读者也可以学习本书。
第2篇“Go Web基础入门”,包括3章:Go Web开发基础、接收和处理Go Web请求、用Go访问数据库。本篇能使读者快速掌握用Go语言进行Web开发的基础知识。
第3篇“Go Web高级应用”,包括4章:Go高级网络编程、Go文件处理、Go并发编程、Go RESTful API接口开发。本篇能使读者用Go语言快速开发各种Web应用。
第4篇“Go Web项目实战”,包括2章:【实战】开发一个B2C电子商务系统、【实战】用Docker部署Go Web应用。本篇通过实例介绍了开发一个B2C电子商务系统的全过程,包括开发商品展示、购物车、结算、支付等模块的详细讲解,让读者真正了解大型B2C电子商务系统的架构原理及实现方法,并开放了源代码;用Docker实战部署Go Web应用,帮助读者向Go Web开发“精通”级别迈进。
本书可作为Go语言初学者、Web开发工程师的自学用书,也可作为培训机构和相关院校的教材。
本书聚焦Go Web开发领域,对Go Web知识进行全面深入地讲解。本书有如下特色:
(1)一线技术,突出实战。
本书中穿插了大量的实战内容,且所有代码采用目前的Go最新版本(1.15.3)编写。
(2)精雕细琢,阅读性强。
全书的语言经过多次打磨,力求精确。同时注重阅读体验,让没有任何基础的读者也可以很轻松地读懂本书。
(3)零基础入门,循序渐进,让读者快速从菜鸟向实战高手迈进。
本书以Go入门级程序员为主要对象,初级、中级、高级程序员都可以从书中学到干货。先介绍Go的基础,然后介绍Go Web的基础,介绍Go Web的高级应用,介绍B2C电子商务系统实战开发,最后介绍应用的Docker实战部署,真正帮助读者从基础入门向开发高手迈进。
(4)极客思维,极致效率;
本书以极客思维深入Go语言底层进行探究,帮助读者了解底层的原理。全书言简意赅,以帮助读者提升开发效率为导向,同时尽可能帮助读者缩短阅读本书的时间。
(5)由易到难,重点和难点标注并重点解析。
本书编排由易到难,内容基本覆盖Go Web的主流前沿技术。同时对重点和难点进行重点讲解,对易错点和注意点进行了提示说明,帮助读者克服学习过程中的困难。
(6)突出实战,快速突击。
本书的实例代码绝大部分都是来自于最新的企业实战项目。购买本书的读者可以通过网络下载书中的所有的源代码,下载后即可运行,通过实践来加深理解。
(7)实战方案,可直接二次开发进行实战部署。
本书以实战为主,所有的示例代码拿来即可运行。特别是第9章,购买本书的读者可以直接获得B2C电子商务系统的全部源代码。可以直接对其进行二次开发,用于自己的项目。读者购买本书不仅可以学习本书的各种知识,也相当于购买一个最新版的Go语言电商系统解决方案及项目源码。
廖显东
高级软件架构师,全栈开发者,技术极客,Gopher,开源爱好者。
毕业于河海大学,先后就职于苏宁易购等多家大型公司。具有多年软件开发与团队管理经验,精通Java、JavaScript、C、C++、C#、Python、PHP等开发语言。对Go、Rust等开发语言有深入实践和研究。对大型电子商务系统开发、高并发架构、分布式架构、微服务、大数据、人工智能算法等领域有深入实践和研究。
Go语言是Google于2009年开源的一门编程语言。它可以在不损失应用程序性能的情况下极大地降低代码的复杂性。相比于其他编程语言,简洁、快速、安全、并行、有趣、开源、内存管理、数组安全、编译迅速是其特色。
Go语言在设计之初就被定位为“运行在Web服务器、存储集群或类似用途的巨型中央服务器中的系统编程语言”,在云计算、Web高并发开发领域中具有无可比拟的优势。Go语言在高性能分布式系统、服务器编程、分布式系统开发、云平台开发、区块链开发等领域有着广泛使用。
近几年,很多公司(特别是云计算公司)开始用Go重构他们的基础架构,也有很多公司直接采用Go进行业务开发。Docker、Kubernetes等重量级应用的持续火热,更是让Go语言成为当下最热门编程语言之一。
1. 本书特色
本书聚焦Go Web开发领域,对Go Web知识进行全面深入地讲解。本书有如下特色:
(1)一线技术,突出实战。
本书中穿插了大量的实战内容,且所有代码采用目前的Go最新版本(1.15.3)编写。
(2)精雕细琢,阅读性强。
全书的语言经过多次打磨,力求精确。同时注重阅读体验,让没有任何基础的读者也可以很轻松地读懂本书。
(3)零基础入门,循序渐进,让读者快速从菜鸟向实战高手迈进。
本书以Go入门级程序员为主要对象,初级、中级、高级程序员都可以从书中学到干货。先介绍Go的基础,然后介绍Go Web的基础,介绍Go Web的高级应用,介绍B2C电子商务系统实战开发,最后介绍应用的Docker实战部署,真正帮助读者从基础入门向开发高手迈进。
(4)极客思维,极致效率;
本书以极客思维深入Go语言底层进行探究,帮助读者了解底层的原理。全书言简意赅,以帮助读者提升开发效率为导向,同时尽可能帮助读者缩短阅读本书的时间。
(5)由易到难,重点和难点标注并重点解析。
本书编排由易到难,内容基本覆盖Go Web的主流前沿技术。同时对重点和难点进行重点讲解,对易错点和注意点进行了提示说明,帮助读者克服学习过程中的困难。
(6)突出实战,快速突击。
本书的实例代码绝大部分都是来自于最新的企业实战项目。购买本书的读者可以通过网络下载书中的所有的源代码,下载后即可运行,通过实践来加深理解。
(7)实战方案,可直接二次开发进行实战部署。
本书以实战为主,所有的示例代码拿来即可运行。特别是第9章,购买本书的读者可以直接获得B2C电子商务系统的全部源代码。可以直接对其进行二次开发,用于自己的项目。读者购买本书不仅可以学习本书的各种知识,也相当于购买一个最新版的Go语言电商系统解决方案及项目源码。
2. 阅读本书,您能学到什么
 系统学习Go语言基础语法;
 掌握HTTP基本原理;
 掌握Go Web 底层原理;
 掌握Go访问MySQL、Redis、MongoDB的方法和技巧;
 掌握Gorm、Beego ORM的使用方法和技巧;
 掌握Go Socket编程的方法和技巧;
 掌握用gRPC实现微服务调用;
 掌握Go 文件处理的方法和技巧;
 掌握Go生成与解析JSON、XML文件的方法和技巧;
 掌握Go正则表达式的处理方法和技巧;
 掌握Go 日志处理的方法和技巧;
 掌握从数据库中导出一个CSV文件的实战法;
 掌握Go并发编程的底层原理;
 掌握常见Go并发Web应用的实战开发方法和技巧;
 掌握Go开发并发的Web爬虫的方法和技巧;
 掌握Gin框架、Beego框架的使用方法和技巧;
 掌握流行架构风格RESTful API接口的开发;
 掌握用Go开发OAuth2.0接口的技巧;
 掌握Elasticsearch的使用方法;
 掌握微信支付、支付宝支付的接口对接方法;
 掌握用Go语言开发B2C电子商务系统的整个流程方案及源码;
 掌握Docker实战部署方法;
 掌握Docker Compose实战部署方法。
希望通过本书的学习,能够让读者快速、系统地掌握Go Web开发的各种方法和技巧,帮助读者在Go 语言Web开发中,快速从基础入门向精通级的实战派高手迈进。
3. 读者对象
本书既适合Go语言初学者,也适合想进一步提升的中高级Go语言开发者。初级、中级、高级开发人员都能从本书学到干货。
本书读者对象如下:
◎ 初学编程的自学者;
◎ 培训机构的老师和学员;
◎ Go语言初学者;
◎ 相关专业的大学毕业学生;
◎ Go语言中高级开发人员;
◎ Web前端开发人员;
◎ Web开发工程师;
◎ 测试工程师;
◎ 编程爱好者;
◎ DevOps运维人员;
◎ 高等院校的老师和学生;
◎ Web中高级开发人员。
4. 技术交流
如果读者在阅读本书的过程中有任何疑问,请用手机微信扫描右侧的二维码,关注“源码大数据”公众号,输入读者遇到的问题,作者会尽快与读者进行交流及回复。
关注“源码大数据”公众号后输入“go web源码”,即可获得本书源代码、学习资源、面试题库等。
读者也可以加入QQ群(QQ群号码:771844527)进行交流沟通,作者会尽快进行回复。
尽管作者在本书写作过程中尽可能地追求严谨,但仍难免有纰漏之处,欢迎读者通过“源码大数据”公众号或者QQ群等方式批评与指正。

廖显东

目录

第1篇 Go语言入门

第1章 Go基础入门 2
1.1 安装Go 2
1.2 【实战】开启Go的第一个程序 5
1.3 Go基础语法与使用 8
1.4 Go数据类型 29
1.5 函数 52
1.6 Go面向对象编程 63
1.7 接口 68
1.8 反射 75
1.9 goroutine简介 80
1.10 单元测试 81
1.11 Go编译与工具 83
1.12 小结 91

第2篇 Go Web基础入门

第2章 Go Web开发基础 94
2.1 【实战】开启Go Web的第1个程序 94
2.2 Web程序运行原理简介 95
2.2.1 Web基本原理 95
2.2.2 HTTP简介 97
2.2.3 HTTP请求 97
2.2.4 HTTP响应 100
2.2.5 URI与URL 104
2.2.6 HTTPS简介 106
2.2.7 HTTP 2简介 106
2.2.8 Web应用程序的组成 108
2.3 【实战】初探Go语言的net/http包 110
2.3.1 创建简单的服务器端 110
2.3.2 创建简单的客户端 114
2.4 使用Go语言的html/template包 118
2.4.1 了解模板原理 118
2.4.2 使用html/template包 120
2.5 小结 131

第3章 接收和处理Go Web请求 132
3.1 【实战】创建一个简单的Go Web服务器 132
3.2 接收请求 134
3.2.1 ServeMux和DefaultServeMux 134
3.2.2 处理器和处理器函数 146
3.2.3 串联多个处理器和处理器函数 150
3.2.4 构建模型 151
3.2.5 生成HTML表单 153
3.3 处理请求 155
3.3.1 了解Request结构体 155
3.3.2 请求URL 158
3.3.3 请求头 159
3.3.4 请求体 160
3.3.5 处理HTML表单 161
3.3.6 了解ResponseWriter原理 164
3.4 了解session和cookie 171
3.4.1 session和cookie的简介 171
3.4.2 Go与cookie 173
3.4.3 Go使用session 176
3.5 小结 181

第4章 用Go访问数据库 182
4.1 MySQL的安装及使用 182
4.1.1 MySQL简介 182
4.1.2 MySQL的安装 183
4.1.3 MySQL基础入门 183
4.1.4 用Go访问MySQL 193
4.2 Redis的安装及使用 203
4.2.1 Redis的安装 203
4.2.2 Redis基础入门 203
4.2.3 Go访问Redis 208
4.3 MongoDB的安装及使用 216
4.3.1 MongoDB的安装 216
4.3.2 MongoDB基础入门 217
4.3.3 Go访问MongoDB 223
4.4 Go的常见ORM库 237
4.4.1 什么是ORM 237
4.4.2 Gorm(性能极好的ORM库)的安装及使用 238
4.4.3 Beego ORM——Go语言的ORM框架 242
4.5 小结 247

第3篇 Go Web高级应用

第5章 Go高级网络编程 250
5.1 Go Socket编程 250
5.1.1 什么是Socket 250
5.1.2 客户端Dial()函数的使用 254
5.1.3 客户端DialTCP()函数的使用 256
5.1.4 UDP Socket的使用 261
5.1.5 【实战】用Go Socket实现一个简易的聊天程序 265
5.2 Go RPC编程 270
5.2.1 什么是RPC 270
5.2.2 Go RPC的应用 271
5.3 微服务 277
5.3.1 什么是微服务 277
5.3.2 【实战】用gRPC框架构建一个简易的微服务 281
5.4 小结 286

第6章 Go文件处理 287
6.1 操作目录与文件 287
6.1.1 操作目录 287
6.1.2 创建文件 292
6.1.3 打开与关闭文件 293
6.1.4 读写文件 294
6.1.5 移动与重命名文件 299
6.1.6 删除文件 299
6.1.7 复制文件 301
6.1.8 修改文件权限 304
6.1.9 文件链接 306
6.2 处理 XML 文件 307
6.2.1 解析XML文件 307
6.2.2 生成XML文件 310
6.3 处理JSON 文件 313
6.3.1 读取JSON文件 313
6.3.2 生成JSON文件 315
6.4 处理正则表达式 316
6.4.1 正则表达式简介 316
6.4.2 使用Go正则表达式 322
6.5 【实战】从数据库中导出一个CSV文件 329
6.6 处理Go日志记录 332
6.7 小结 335

第7章 Go并发编程 336
7.1 并发与并行 336
7.2 进程、线程和协程 338
7.3 Go并发模型简介 340
7.4 用goroutine和通道实现并发 341
7.4.1 goroutine简介 341
7.4.2 通道 343
7.5 用sync包实现并发 351
7.5.1 竞态 351
7.5.2 互斥锁 352
7.5.3 读写互斥锁 354
7.5.4 sync.Once结构体 358
7.5.5 同步等待组sync.WaitGroup 361
7.5.6 竞态检测器 364
7.6 用Go开发并发的Web应用 366
7.6.1 【实战】开发一个自增整数生成器 366
7.6.2 【实战】开发一个并发的消息发送器 366
7.6.3 【实战】开发一个多路复合计算器 367
7.6.4 【实战】用select关键字创建多通道监听器 368
7.6.5 【实战】用无缓冲通道阻塞主线 370
7.6.6 【实战】用筛法求素数 371
7.6.7 【实战】创建随机数生成器 372
7.6.8 【实战】创建一个定时器 373
7.6.9 【实战】开发一个并发的Web爬虫 374
7.7 小结 377

第8章 Go RESTful API接口开发 378
8.1 什么是RESTful API 378
8.2 Go流行Web框架的使用 382
8.2.1 为什么要用框架 382
8.2.2 Gin框架的使用 382
8.2.3 Beego框架的使用 395
8.3 【实战】用Gin框架开发RESTful API 412
8.3.1 路由设计 412
8.3.2 数据表设计 412
8.3.3 模型代码编写 412
8.3.4 逻辑代码编写 413
8.4 【实战】用Go开发OAuth 2.0接口 417
8.4.1 OAuth 2.0简介 417
8.4.2 用Go开发OAuth 2.0接口的示例 418
8.5 小结 423


第4篇 Go Web项目实战

第9章 【实战】开发一个B2C电子商务系统 426
9.1 需求分析 426
9.2 系统设计 427
9.2.1 确定系统架构 427
9.2.2 制定系统流程 428
9.3 设计软件架构 429
9.4 设计数据库与数据表 430
9.5 搭建系统基础架构 431
9.6 前台模块开发 441
9.6.1 首页模块开发 443
9.6.2 注册登录模块开发 450
9.6.3 用户中心模块开发 463
9.6.4 商品展示模块开发 469
9.6.5 购物车模块开发 474
9.6.6 收银台模块开发 481
9.6.7 支付模块开发 489
9.7 后台模块开发 493
9.7.1 登录模块开发 493
9.7.2 商品模块开发 495
9.8 小结 499

第10章 用Docker部署Go Web应用 500
10.1 了解Docker组件及原理 500
10.1.1 什么是Docker 500
10.1.2 为什么用Docker 502
10.1.3 Docker引擎 502
10.1.4 Docker构架 503
10.1.5 Docker核心概念 503
10.1.6 Docker常用命令 504
10.2 安装Docker 509
10.2.1 Linux Docker 安装 509
10.2.2 Windows Docker 安装 510
10.2.3 Mac OS X Docker 安装 511
10.3 【实战】用Docker运行一个Go Web 应用程序 512
10.3.1 为什么使用Docker运行Go Web应用程序 512
10.3.2 创建Go Web应用程序 512
10.3.3 用Docker运行一个Go Web应用程序 513
10.4 【实战】通过Docker-Compose快速部署 515
10.4.1 Docker-Compose 简介 515
10.4.2 通过Docker-Compose实战部署 516
10.5 【实战】将Docker容器推送至服务器 520
10.5.1 到Docker Hub官网注册账号 520
10.5.2 同步本地和Docker hub的标签(tag) 520
10.5.3 推送镜像到Docker Hub 521
10.5.4 访问Docker Hub镜像 521
10.5.5 使用发布的Docker Hub镜像 522
10.6 小结 523


读者评论

相关图书

亿级流量系统架构设计与实战

李琛轩 (作者)

本书涵盖了亿级用户应用后台通用的技术和系统架构设计思路,在内容结构上分为三大篇:架构知识篇(第1~3章),作为全书的基础知识篇,首先介绍后台的关键组件构成以及机...

 

算法笔记(第2版)

刁瑞 谢妍 (作者)

ChatGPT掀起了现象级的风暴,赶超ChatGPT潮流,算法突破是关键。 本书介绍了若干常见算法,涉及排序、哈希、动态规划与近似算法、高斯消去法、图论与线性...

 

看漫画学Python:有趣、有料、好玩、好用(全彩修订版)

关东升 赵大羽 (作者)

ython是一门既简单又强大的编程语言,被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要,成为国家计算机等...

 

Linux从入门到精通

张启玉 (作者)

本书以CentOS 7.8为演示系统,以阿里云为演示服务器,从Linux常用命令入手,从一毕业就要入职公司的上手要求出发,重实战、轻原理,目的就是要带领读者从一...

 

Knative最佳实践

Jacques Chester (作者) 赵吉壮 杨云锋 (译者)

本书主要围绕 Knative 进行展开,主要作者是 Knative 专家(社区作者)Jacques Chester ,先后从 Knative 构建、扩缩容、事件...

¥118.00

看漫画学Python 2:有趣、有料、好玩、好用(全彩进阶版)

关东升 ,赵大羽 (作者)

本书是《看漫画学Python》的进阶版本,继续秉承有趣、有料、好玩、好用的理念,并继续采用《看漫画学Python》一书中3个不同的漫画人物角色,通过这3个角色之...