Go Web编程pdf

图书网 2021年1月23日20:28:2641.5K1
摘要

Go语言通过提供整洁快速的编译代码、垃圾回收、简单的并发Go模型以及丰富的标准库来满足人们对于可扩展、高性能Web 应用的需求,这种语言非常适用于编写微服务,又或者用于构建可扩展且可维护的系统。
本书将教读者运用现代化设计理念构建Go Web应用的方法。阅读本书能让读者学会如何通过依赖注入设计模式来编写测试替身,如何在Web应用中使用并发特性,还有如何在Web服务中创建以及处理JSON数据和XML数据。除此之外,读者还将学会如何尽可能地减少应用对外部框架的依赖,并了解大量与应用测试以及应用部署有关的有价值的生产技术。
本书主要内容
● 基础知识。
● 功能测试和基准测试。
● 并发特性的使用方法。
● 将应用部署到独立服务器、PaaS云端以及 Docker 的方法。
● 大量提示、窍门以及技巧。
本书假设读者熟悉Go语言的基本语法并了解Web 开发的一般概念。

Go Web编程 作者:[新加坡] 郑兆雄(Sau Sheong Chang)

Go Web编程 出版社:人民邮电出版社

Go Web编程 内容简介

本书全面介绍使用Go语言开发Web应用所需的全部基本概念,并详细讲解如何运用现代设计原则使用Go语言构建Web应用。本书通过大量的实例介绍核心概念(如处理请求和发送响应、模板引擎和数据持久化),并深入讨论更多高级主题(如并发、Web应用程序测试以及部署到标准系统服务器和PaaS提供商)。

本书以一个网络论坛为例,讲解如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件构建一个Go Web应用,然后在这一应用的基础上,构建出相应的Web服务。值得一提的是,本书在介绍Go Web开发方法时,基本上只用到Go语言自带的标准库,而不会用到任何特定的Web框架,读者学到的知识将不会局限于特定的框架,即使将来需要用到现成的框架或者自行构建框架,仍然会从本书中获益。本书除了讲解具体的Web开发方法,还介绍如何对Go Web应用进行测试,如何使用Go的并发特性提高Web应用的性能,以及如何在Heroku、Google App Engine、Digital Ocean等云平台上部署Go Web应用;此外,书中还传授一些Go Web开发方面的经验和提示。这些重要的实践知识将帮助读者快速成为真正具有生产力的Go Web开发者。

阅读本书需要读者具备基本的Go语言编程技能并掌握Go语言的语法。本书适合所有想用Go语言进行Web开发的读者阅读,无论是Web开发的初学者还是入行已久的开发者都会在阅读本书的过程中有所收获。

Go Web编程 目录

第一部分 Go与Web应用

第1章 Go与Web应用

1.1 使用Go语言构建Web应用

1.2 Web应用的工作原理

1.3 HTTP简介

1.4 Web应用的诞生

1.5 HTTP请求

1.6 HTTP响应

1.7 URI

1.8 HTTP/2简介

1.9 Web应用的各个组成部分

1.10 Hello Go

1.11 小结

第2章 ChitChat论坛

2.1 ChitChat简介

2.2 应用设计

2.3 数据模型

2.4 请求的接收与处理

2.5 使用模板生成HTML响应

2.6 安装PostgreSQL

2.7 连接数据库

2.8 启动服务器

2.9 Web应用运作流程回顾

2.10 小结

第二部分 Web应用的基本组成部分

第3章 接收请求

3.1 Go的net/http标准库

3.2 使用Go构建服务器

3.3 处理器和处理器函数

3.4 使用HTTP/2

3.5 小结

第4章 处理请求

4.1 请求和响应

4.2 Go与HTML表单

4.3 ResponseWriter

4.4 cookie

4.5 小结

第5章 内容展示

5.1 模板引擎

5.2 Go的模板引擎

5.3 动作

5.4 参数、变量和管道

5.5 函数

5.6 上下文感知

5.7 嵌套模板

5.8 通过块动作定义默认模板

5.9 小结

第6章 存储数据

6.1 内存存储

6.2 文件存储

6.3 Go与SQL

6.4 Go与SQL的关系

6.5 Go与关系映射器

6.6 小结

第三部分 实战演练

第7章 Go Web服务

7.1 Web服务简介

7.2 基于SOAP的Web服务简介

7.3 基于REST的Web服务简介

7.4 通过Go分析和创建XML

7.5 通过Go分析和创建JSON

7.6 创建Go Web服务

7.7 小结

第8章 应用测试

8.1 Go与测试

8.2 使用Go进行单元测试

8.3 使用Go进行HTTP测试

8.4 测试替身以及依赖注入

8.5 第三方Go测试库

8.6 小结

第9章 发挥Go的并发优势

9.1 并发与并行的区别

9.2 goroutine

9.3 通道

9.4 在Web应用中使用并发

9.5 小结

第10章 Go的部署

10.1 将应用部署到独立的服务器

10.2 将应用部署到Heroku

10.3 将应用部署到Google App Engine

10.4 将应用部署到Docker

10.5 部署方法之间的对比

10.6 小结

附录 安装和设置Go

Go Web编程 精彩文摘

Web应用是当今使用最为广泛的一类软件应用,连接至互联网的人们基本上每天都在使用Web应用。因为很多看上去像是原生应用的移动应用都在内部包含了使用Web技术构建的组件,所以使用移动设备的人们实际上也是在使用Web应用。

因为编写Web应用必须对HTTP有所了解,所以接下来的两章将对HTTP进行介绍。除此之外,我们还会了解到使用Go语言编写Web应用的优点,并且实际使用Go语言来构建一个简单的网上论坛,然后鸟瞰Web应用的各个组成部分。

本章主要内容

·Web应用的定义

·使用Go语言编写Web应用的优点

·Web应用编程的基本知识

·使用Go语言编写一个极为简单的Web应用

Web应用在我们的生活中无处不在。看看我们日常使用的各个应用程序,它们要么是Web应用,要么是移动App这类Web应用的变种。无论哪一种编程语言,只要它能够开发出与人类交互的软件,它就必然会支持Web应用开发。对一门崭新的编程语言来说,它的开发者首先要做的一件事,就是构建与互联网(internet)和万维网(World Wide Web)交互的库(library)和框架,而那些更为成熟的编程语言还会有各种五花八门的Web开发工具。

Go是一门刚开始崭露头角的语言,它是为了让人们能够简单且高效地编写后端系统(back end system)而创建的。这门语言拥有众多先进的特性,并且密切关注程序员的生产力以及各种与速度相关的事项。和其他语言一样,Go语言也提供了对Web编程的支持。自从问世以来,Go语言在编写Web应用以及“×即服务系统”(*-as-a-service system)方面就受到了热烈追捧。

本章接下来将列举一些使用Go编写Web应用的优点,并介绍一些关于Web应用的基本知识。

“为什么要使用Go语言编写Web应用呢?”作为本书的读者,我想你肯定很想知道这个问题的答案。本书是一本教人们如何使用Go语言进行Web编程的图书,而作为本书的作者,我的任务就是向你解释为什么人们会使用Go语言进行Web编程。本书将在接下来的内容中陆续介绍Go语言在Web开发方面的优点,我衷心地希望你也能够对这些优点有感同身受的想法。

Go是一门相对比较年轻的编程语言,它拥有繁荣并且仍在不断成长的社区,并且它也非常适合用来编写那些需要快速运行的服务器端程序。因为Go语言提供了很多过程式编程语言的特性,所以拥有过程式编程语言使用经验的程序员对Go应该都不会感到陌生,但与此同时,Go语言也提供了函数式编程方面的特性。除了内置对并发编程的支持之外,Go语言还拥有现代化的包管理系统、垃圾收集特性以及一系列包罗万象、威力强大的标准库。

虽然Go自带的标准库已经非常丰富和宏大了,但Go仍然拥有许多质量上乘的开源库,它们可以对标准库不足的地方进行补充。本书在大部分情况下都会尽可能地使用标准库,但是偶尔也会使用一些第三方开源库,以此来展示开源社区提供的一些另辟蹊径并且富有创意的方法。

使用Go语言进行Web开发正变得日益流行,很多公司都已经开始使用Go了,其中包括Dropbox、SendGrid这样的基础设施公司,Square和Hailo这样的技术驱动的公司,甚至是BBC、纽约时报这样的传统公司。

图书网:Go Web编程pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

数学

吴军:你最喜欢的数字是什么?《数学之美》PDF

数学之美 作者:吴军 数学之美 出版:人民邮电出版社 数学之美 内容简介 你最喜欢的数字是什么?几年前,“数学之美”系列文章原刊载于谷歌黑板报,获得上百万次点击,得到读者高度评价。读者说,读了“数学之...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:4   其中:访客  4   博主  0
    • ujin
      ujin 9

      看看

      • 百年孤独
        百年孤独 0

        这个真的很有用,非常的感谢这个网站

        • adb
          adb 0

          包含中文的回复

          • ettele@
            ettele@ 0

            用心回复才能留余香