Skip to content

Files

Latest commit

d71eae6 · Jan 10, 2022

History

History
120 lines (62 loc) · 6.96 KB

2.md

File metadata and controls

120 lines (62 loc) · 6.96 KB

二、这本电子书是给谁看的?

这本书是为任何对 Go 编程语言有基本熟悉并对使用 Go 编写 web 应用程序感兴趣的开发人员编写的。

如果你能用 Go 编写简单的控制台应用程序,那么理解这本简短的电子书的内容应该不会有任何问题。

如果你正在寻找一个语言本身的入门,我可以谦虚地推荐我的书简明围棋,它将带你从零到……嗯,如果不是完全精通,到对围棋编程语言的欣赏和理解。它还为您提供了其他资源的链接,有助于您熟悉围棋。

和 Syncfusion 的简洁系列的所有电子书一样,你可以从 Syncfusion 网站免费下载 Go 简洁

为什么使用 Go 进行网页开发?

Go 是编写 web 应用程序的优秀语言,尤其是针对 web 服务。事实上,它是专门为网络设计的。毕竟,任何现代编程语言如果忽视网络,都很难获得吸引力。

那么,Go 编程语言的哪些特性对 web 开发特别有用呢?这里有几个:

并发

任何合适大小的 web 服务器都需要同时运行成千上万个任务。并发在许多语言中都很复杂和困难,因为它通常是事后才实现的。然而,并发性是内置在 Go 语言中的。事实上,并发性是 Go 语言旨在解决的主要问题之一。

在 Go 中,并发是通过使用 Goroutines 来实现的,Goroutines 是轻量级线程,允许开发人员异步执行多个操作。这些在 web 应用程序中非常有用。例如,当用户连接到您的网络服务器时,您可以简单地生成一个 Goroutine 来处理与该客户端的任何交互。这很容易做到——只需在函数调用前加上go关键字。更好的是,Goroutine 的扩展性非常好,您的 Go 网络应用程序在服务成千上万的用户时会非常愉快地运行。

模块性

像许多其他现代应用程序一样,Web 应用程序通常会包含大量代码。保持这些代码的组织性和高效性,使其易于理解和维护,是当今开发人员面临的一个挑战。当几个开发人员在同一个应用程序上工作,并且每个开发人员的代码格式不同时,情况尤其如此。

Go 通过强加一种结构化和格式化代码的特定方法消除了许多这样的问题。函数、变量、常数和类型声明都应该在可预测的地方,Go 要求它们都以特定的方式编码。

如果 Go 在这方面听起来很严厉,考虑一下这个——你在言论自由中失去的,你在可预测性中获得的;一切都在你所期望的地方,格式完全相同。

Go 通过为您提供fmt包,使您能够轻松满足其代码格式规则,您可以将该包构建到您的工作流中,以自动 Go-ify 您的代码。

汇编

与许多最近的 web 开发服务器端语言不同,Go 编程语言是编译的。这意味着诸如运行时错误之类的问题可能很难追踪,而是在编译步骤中被捕获。Go 的静态打字系统还可以帮助您在开发过程中发现错误,否则这些错误可能会泄漏到生产中。

net/http 包

Go 的net/http包非常优秀,使得在完全控制接受请求和发送响应的同时启动网络服务器变得非常容易。路由由多路复用器处理。您可以采用标准库中的一个,也可以从几个第三方选项中进行选择。在本书中,我们将从使用 Go 的DefaultServeMux开始,然后我们将考虑一个非常有能力的替代方案:gorilla/mux

设置您的开发环境

我不会在这里深入研究设置,因为我将假设您有一些使用 Go 的经验。然而,如果你需要重述,我建议参考我的电子书简洁地去或者访问官方的 Golang.org“入门”页面:https://golang.org/doc/install

设置环境的步骤包括:

  • 安装 Go 工具。
  • 创建工作空间并设置GOPATH环境变量。

安装 Go 工具

您需要遵循的确切步骤取决于您使用的平台。Go 二进制文件适用于 Windows、Mac OS X 和*nix 平台。

你可以在这里下载:https://golang.org/dl/,如图 1 所示。

图 Golang 下载网页

| | 提示:如果要升级到更高版本的 Go,必须先卸载以前的版本。 |

Windows 操作系统

在 Windows 中安装 Go 工具最简单的方法是下载 MSI 安装程序,启动它,然后按照提示进行操作。默认情况下,Go 安装C:\Go中的所有内容,然后将C:\Go\bin添加到您的 PATH 环境变量中。

或者,如果您希望对环境变量有更多的控制,可以下载。压缩文件并将其解压到您选择的目录中。在这种情况下,您需要自己配置环境变量。

您可以通过系统控制面板的“高级”选项卡上的“环境变量”按钮来设置环境变量。某些版本的 Windows 通过系统控制面板中的高级系统设置选项提供此控制面板。

图 2:在窗口中设置 Go 环境变量

为了使更改生效,您可能需要关闭并重新打开任何命令行会话。

Mac OS X

下载.pkg文件,按照提示操作。该软件包将 Go 发行版安装到/usr/local/go并将/usr/local/go/bin添加到您的PATH中。

Linux、Unix 和 FreeBSD

你会注意到,基于nix 的系统对你的期望更高。但是作为一个nix 用户,你完全可以接受这个挑战。

下载.tar.gz文件,以 root 用户身份解压到/usr/local,或者通过sudo获取:

sudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz

接下来你需要将/usr/local/go/bin永久添加到你的PATH中。在你的/etc/profile(适用于所有用户)或~/.profile(仅适用于你)中放入以下一行,使其成为永久的东西:

export PATH=$PATH:/usr/local/go/bin

自定义安装位置

这些方法决定了围棋的安装位置。如果你不喜欢被这样颐指气使,你必须通过设置GOROOT环境变量告诉 Go 去哪里找自己。如果你对默认位置满意,那就不要指定GOROOT。你只会混淆视听。

创建工作空间

最后一步是告诉 Go 你写的任何代码,以及你用go get下载的任何第三方库将驻留在哪里。通过使用上述相同的技术设置GOPATH环境变量来实现。

Go 将在此位置创建binpkgsrc文件:

  • bin:包含可执行文件
  • pkg:包含包对象
  • src:包含 Go 源代码

代码示例

本书中的所有代码示例都可以在位于https://github.com/marklewin/go-web-succinctly.git的 GitHub 上找到。

图 3:本电子书代码示例的 Github 存储库

在这本电子书中,你可以通过匹配的章节和主题来识别每个样本。

您可以单独下载每个文件,也可以使用以下命令克隆存储库:

$ git clone git://github.com/marklewin/go-web-succinctly.git

$ git pull origin