Go Web 编程

本书全面介绍使用Go语言开发Web应用,通过实例讲解核心概念,如处理请求、响应、模板引擎和数据持久化,深入探讨高级主题如并发、测试和部署。适合有一定Go语言基础的读者,旨在培养真正具有生产力的Go Web开发者。
摘要由CSDN通过智能技术生成
内容简介

本书全面介绍使用 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 开发的初学者还是入行已久的开发者都会在阅读本书的过程中有所收获。

作者简介

郑兆雄 Sau Sheong Chang, 既是新加坡能源有限公司的数字技术总裁,也是 Ruby 社区以及 Go 社区的活跃贡献者,著有《Go Web 编程》《R 和 Ruby 数据分析之旅》等 4 部著作。

本书内容
前言

自互联网从20世纪90年代中期诞生以来,Web 应用就以这样或那样的方式存在了。虽然 Web 应用在最初只能传输静态网页,但它很快就升级和演变成了一个令人眼花缭乱、能够传输各种数据以及实现各种功能的动态系统。无独有偶,本人也是从20世纪90年代中期开始接触 Web 应用开发的,在迄今为止的职业生涯当中,我把大部分时间都花费在了大规模 Web 应用的设计、开发以及团队管理上面,并且在这期间还使用过多种不同的编程语言和框架,其中包括 Java、Ruby、Node.js、PHP、Perl、Elixir 甚至是 Smalltalk。

几年前,我因为一次偶然的机会接触到了 Go 语言,并迅速被它的简单和清爽直率所吸引,而当我意识到只使用 Go 的标准库就可以快速地构建完整、高效并且可扩展的 Web 应用和服务时,我对 Go 的喜爱又更进了一步。使用 Go 语言编写的代码不仅易懂、直截了当,而且还能够快速、简单地编译成一个独立的可部署二进制文件。更关键的是,我不必投入大量服务器就可以让自己的 Web 应用变得可扩展且具备生产能力。很自然地,所有的这些优点都使 Go 成为了我在 Web 应用开发方面最新的心头好语言。

从当初传输静态内容到现在通过 HTTP 传输动态数据,从当初使用服务器传输 HTML 内容,到现在使用客户端单页应用去处理通过 HTTP 传输的 JSON 数据,Web 应用的开发方式已经发生了翻天覆地的变化。几乎就在 Web 应用闪亮登场的同时,Web 框架也应运而生,并使程序员可以更为容易地去开发 Web 应用。这二十多年以来,绝大多数编程语言都会有至少一个 Web 应用框架,其中很多语言甚至会有一大堆框架可用,而当今出现的绝大多数应用都是 Web 应用。

尽管 Web 应用框架的风靡使开发 Web 应用变得更加容易了,但这些框架在带来方便的同时也隐藏了大量的细节——Web 应用开发者对于万维网的运作方式知之甚少甚至一窍不通,这样的情况正在变得越来越常见。幸运的是,通过 Go 语言,我发现了一种正确地教授 Web 应用开发基础知识的绝佳工具,它能够让 Web 应用开发重新回到简单直接的状态:程序需要考虑的就是如何处理 HTTP 协议,以及如何通过 HTTP 协议传输内容和数据,并且满足这两个要求只需要用到 Go 语言本身提供的工具——不需要用到外部库,也不需要用到外部的依赖。

在拿定主意之后,我就向 Manning 出版社提交了一个撰写 Go 语言编程书籍的构思,这个构思关注的是如何在只使用标准库的情况下,向读者传授从零开始构建 Web 应用的方法,而 Manning 出版社也很快就同意了我的构思并开启了这个项目。尽管本书的撰写工作持续了一段时间才得以完成,但是在写作的过程中,抢先预览版带来的反馈总是不断地鼓舞着我。最后,我希望读者能够像我享受创作本书的过程一样,享受阅读本书的过程,并且在这个过程中能够有所收获。

致谢

本书最初的想法是在只使用标准库的情况下教授基本的 Go Web 编程知识。说实在的,刚开始的时候我并不确定这个想法是否能够行得通,但那些花费自己血汗钱来购买本书抢先预览版的读者给了我鼓励和动力来实现这个想法,因此在这里我要向我的读者们致以诚挚的感谢!

写书是一项团队协作活动,尽管本书的封面上只记载了我一个人的名字,但实际上大量幕后人员也为这本书付出了自己的心血,他们分别是:

  • Marina Michaels,来自地球另一侧的一位勤劳且高效的编辑,她总是不知疲倦地配合我的工作,并且为了我们之间巨大的时差而不断地调整自己的日程表;

  • Manning 出版社的相关工作人员:文字编辑 Liz Welch 和校对 Elizabeth Martin,他们的火眼金睛让错误无处可藏,负责营销和推广本书的 Candace Gillhoolley 和 Ana Romac,以及将我的原稿变为本书的 Kevin Sullivan 和 Janet Vail;

  • Jimmy Frasché 对我的原稿进行了一次完整的技术校对,而我的审稿人 Alex Jacinto、Alexander Schwartz、Benoit Benedetti、Brian Coo

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值