《Go Web编程实战派》简介:
《Go Web编程实战派——从入门到精通》涵盖从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章 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
· · · · · ·