)
文档教程【免费下载链接】build-web-application-with-golangA golang ebook intro how to build a web with golang项目地址https://gitcode.com/gh_mirrors/bu/build-web-application-with-golang点击查看免费下载本指南对应《Build Web Application with Golang》俄文版第一章ru/01.0.md 及同章 01.1–01.5系统讲解在 Linux / macOS / Windows 上安装 Go、配置$GOPATH工作区、编译运行第一个包与应用、掌握go命令行工具集以及选用 LiteIDE、Vim、Emacs、Eclipse、IntelliJ IDEA、VS Code 等开发环境的完整流程。读完本文你将拥有一个可独立编译、测试、安装远程依赖并随时验证的 Go 开发环境为后续章节中编写 HTTP 服务、Web 框架等内容打好地基。为什么选择 Go第一章开篇的语言特性第一章以一个总览性问题开场为什么值得把 Go 作为 Web 开发语言。书中归纳了 Go 的几项核心特征见 ru/01.0.md大型项目几秒内完成编译——编译速度快是 Go 相对许多解释型语言的重要优势。开发模型清晰易懂——Go 避免了 C 语言风格头文件带来的大部分麻烦。静态类型但类型层次扁平——系统类型不强调层级关系用户不必花时间纠结类型之间的继承关系Go 因此更像一门轻量级面向对象语言。内置垃圾回收与并发支持——原生支持并发和通信协议goroutine 与 channel并专门为多核处理器设计。编译型语言定位——Go 结合了解释型/动态类型语言的高开发效率与静态类型语言的安全性目标是成为现代多核、网络化计算场景下的理想选择。为了达成这一目标Go 需要解决一套综合性难题丰富、表达力强且轻量的类型系统开箱即用的并发执行支持以及可精确调控的垃圾回收。书中特别指出此前在别的语言中往往找不到能以务实方式同时解决这些问题的现成方案——这正是 Go 诞生的原因。这段论述构成了全书技术取向的起点一个快、稳、易并发的静态编译型语言。而本章的使命就是先把运行它的环境搭起来。本章路线图从安装到第一个 Go 程序01.0.md明确了本章的实操范围安装并配置 Go 开发环境。具体拆解为五个小节对应仓库中的五个文件1.1 安装——三种安装方式源码编译、官方安装包、第三方工具。1.2 $GOPATH 与工作目录——理解 GOROOT 与 GOPATH搭建src/pkg/bin工作区编译首个包与应用。1.3 Go 命令行工具——go build、go clean、go fmt、go get、go install、go test、godoc等。1.4 Go 开发工具——LiteIDE、Sublime Text、Vim、Emacs、Eclipse、IntelliJ IDEA、VS Code 的配置。1.5 章节小结——回顾与衔接第二章语言入门。仓库中还附带了配套可运行代码包源码 en/code/src/mymath/sqrt.go 与应用入口 en/code/src/apps/ch.1.2/main.go以及一份关于工作区设置的说明 en/code/readme.md建议对照阅读。三种方式安装 Go书中给出三种主流的安装路径可任选其一书中示例版本为 go1.4.2属本书写作年代当前安装请以官方最新发布版本为准下文命令与流程仍通用。方式一从源码编译安装Go 自身部分用 Plan 9 C 与 ATT 汇编编写因此编译源码前必须准备 C 编译器macOS安装 Xcode 即自带编译器。Unix/Linux用包管理器安装 gcc 等例如 Ubuntu 下执行sudo apt-get install gcc libc6-devWindows需先安装 MinGW 提供 gcc若为 64 位系统请安装 64 位版本装完后记得配置环境变量。然后拉取源码并编译源码会下载到当前所在目录如需安装到别处请先cd过去git clone https://go.googlesource.com/go cd go/src ./all.bash安装成功时脚本末尾会输出ALL TESTS PASSED.。Windows 下对应运行all.bat。Windows 安装器会自动配置环境变量Unix 系则需要手动设置若 Go 版本高于 1.0$GOBIN会自动等于$GOROOT/bin可不再单独设置export GOROOT$HOME/go export GOBIN$GOROOT/bin export PATH$PATH:$GOROOT/bin验证方法在终端输入go。若看到用法Usage信息即安装成功见下图若提示 no such command说明$PATH中尚未包含 Go 安装目录请检查环境变量。方式二使用官方标准安装包Go 为各主流操作系统提供了免编译安装包默认安装到/usr/local/goWindows 为c:\Go。更改安装路径也可以但必须同步修改上文所示的环境变量。下载前先确认系统位数Windows按WinR打开命令行运行systeminfo在输出中找到 system type——若显示 x64-based PC 则为 64 位否则为 32 位。macOS官方已不再支持 32 位处理器请一律选用 64 位包。Linux终端执行uname -a。64 位系统输出形如... x86_64 x86_64 x86_64 GNU/Linux部分发行版如 Ubuntu 10.04 只显示x86_64 GNU/Linux32 位系统输出形如... i686 i686 i386 GNU/Linux。各平台安装步骤macOS下载go1.4.2.darwin-386.pkg32 位或go1.4.2.darwin-amd64.pkg64 位一路点击下一步安装完成后~/go/bin会被自动加入$PATH。打开终端输入go验证。Linux下载go1.4.2.linux-386.tar.gz32 位或go1.4.2.linux-amd64.tar.gz64 位。假设安装到$GO_INSTALL_DIR解压并配置 PATHtar zxvf go1.4.2.linux-amd64.tar.gz -C $GO_INSTALL_DIR export PATH$PATH:$GO_INSTALL_DIR/go/binWindows下载go1.4.2.windows-386.msi32 位或go1.4.2.windows-amd64.msi64 位一路下一步安装完成后c:/go/bin被加入$PATH输入go验证。方式三使用第三方工具GVMGo Version Manager类似 Ruby 的 rvm适合需要在一台机器上维护多个 Go 版本的用户书中评价其为解决多版本共存的最佳工具。安装后通过gvm install go1.4.2与gvm use go1.4.2即可完成安装与切换。apt-getUbuntu通过官方 PPA 安装sudo add-apt-repository ppa:gophers/go sudo apt-get update sudo apt-get install golang-stableHomebrewmacOS一条命令完成brew install go$GOPATH 与 Go 工作区所有 Go 命令都依赖环境变量$GOPATH。注意它不是$GOROOT——后者保存 Go 安装路径而$GOPATH指向你的 Go 工作目录书中的示例路径为/home/apple/mygo可按自己的目录结构替换。Unix 系设置export GOPATH/home/apple/mygoWindows 设置新建环境变量GOPATH值为c:\mygo取决于工作目录位置。多路径$GOPATH可以包含多个目录Unix 用:分隔、Windows 用;分隔执行go get时内容会保存到第一个路径。目录三件套$GOPATH下必须有三个目录——src存放.go、.c、.g、.s源码、pkg存放编译产物.a文件、bin存放可执行文件。本章后续统一以mygo作为唯一 GOPATH 路径。仓库的示例代码目录 en/code/readme.md 也印证了这一约定它要求把GOPATH指向该目录以便在任何子目录下开发调试。创建包目录在$GOPATH/src下为每个包创建同名目录支持多级结构。例如创建目录$GOPATH/src/mymath并写入sqrt.go实现一个牛顿迭代法求平方根的包与仓库示例 en/code/src/mymath/sqrt.go 一致// 源码位于 $GOPATH/src/mymath/sqrt.go package mymath func Sqrt(x float64) float64 { z : 0.0 for i : 0; i 1000; i { z - (z*z - x) / (2 * x) } return z }包名建议与目录同名便于管理。多级目录同样合法例如$GOPATH/src/github.com/astaxie/beedb包名取路径最后一段beedb。编译包与创建应用编译包有两种等价方式进入包目录执行go install或直接go install mymath。完成后在$GOPATH/pkg/${GOOS}_${GOARCH}例如linux_amd64、darwin_amd64下可以看到生成的mymath.a。接着创建应用mathapp来使用这个包入口代码与仓库示例 en/code/src/apps/ch.1.2/main.go 一致// 源码位于 $GOPATH/src/mathapp/main.go package main import ( mymath fmt ) func main() { fmt.Printf(Hello, world. Sqrt(2) %v\n, mymath.Sqrt(2)) }在$GOPATH/src/mathapp下执行go install可执行文件mathapp会出现在$GOPATH/bin/。运行./mathapp终端输出Hello world. Sqrt(2) 1.414213562373095安装远程包go getgo get用于获取远程包支持 GitHub、Google Code、BitBucket、Launchpad 等主流开源社区go get github.com/astaxie/beedb更新已安装的远程包用go get -u ...会顺带安装所有附加依赖。不同平台依赖不同版本控制系统GitHub 用gitGoogle Code 用hg等使用前需先安装对应工具并配置好$PATH。安装后目录结构为$GOPATH/src/github.com/astaxie/beedb源码$GOPATH/pkg/${GOOS}_${GOARCH}/github.com/astaxie/beedb.a编译产物。其实质是先克隆源码到$GOPATH/src再自动执行go install。远程包与本地包用法相同import github.com/astaxie/beedb。完整目录结构按上述步骤操作后工作区应呈现如下结构可清晰对照bin可执行文件、pkg编译产物、src源码三大区域$GOPATH ├── bin/ │ └── mathapp ├── pkg/ │ └── ${GOOS}_${GOARCH}/ │ ├── mymath.a │ └── github.com/ │ └── astaxie/ │ └── beedb.a └── src/ ├── mathapp/ │ └── main.go ├── mymath/ │ └── sqrt.go └── github.com/ └── astaxie/ └── beedb/ ├── beedb.go └── util.goWindows 下环境变量写作%GOPATH%本书以 Unix 风格为主Windows 读者自行替换即可。Go 命令行工具集终端执行go即可看到完整工具列表见下图每个工具都有对应的go help 工具名查阅详细说明。go build编译对非main包如 1.2 节的mymathgo build只做编译检查、不产出.a文件需要生成$GOPATH/pkg下的.a时应改用go install。对main包go build会在当前目录生成可执行文件希望输出到$GOPATH/bin则用go install或go build -o 路径/a.exe。目录内有多个文件只想编译单个时追加文件名go build a.go不加参数则编译目录内全部文件。可用-o指定输出名如go build -o astaxie.exe默认输出名main包取第一个源文件名否则取目录名。注意包名以源文件首行的package声明为准未必与目录名相同但默认可执行文件名仍取目录名。go build会忽略以_或.开头的文件。支持平台后缀文件名如array_linux.go、array_darwin.go、array_windows.go、array_freebsd.gogo build只编译与当前 OS 匹配的那一个其余忽略。go clean清理编译产物删除编译器生成的所有文件典型包括_obj/ // Makefiles 生成的旧 object 目录 _test/ // Makefiles 生成的旧 test 目录 _testmain.go // gotest 生成的旧文件 test.out // test 输出 build.out // test 输出 *.[568ao] // Makefiles 生成的目标文件 DIR(.exe) // go build 生成 DIR.test(.exe) // go test -c 生成 MAINFILE(.exe) // go build MAINFILE.go 生成书中作者的习惯是在上传 GitHub 前用它清空测试产物——这些文件对测试有用但对版本控制无意义。go fmt 与 gofmt统一代码风格Go 只有一种官方代码风格如左花括号必须放在行尾否则编译报错无需像 C/C 那样争论 KR 还是 ANSI 风格。go fmt 文件名.go自动格式化代码它本质是gofmt -l -w对 import 路径指定包的别名。实际更常用gofmt -w直接覆写源文件go fmt不重写源码gofmt -w src可格式化整个工程多数现代编辑器在保存时也会自动执行。go get获取远程包详见上文需提前装好各平台的版本控制工具BitBucket 需 Mercurial/Git、GitHub 需 git、Google Code 需 Git/Mercurial/Subversion、Launchpad 需 Bazaar并正确配置$PATH。该命令同样支持非标准域名更多细节可查阅go help importpath。go install编译并安装编译所有包、生成对应产物并移动到$GOPATH/pkg库包或$GOPATH/bin可执行程序。go test运行测试加载所有名为*_test.go的测试文件编译并执行输出形如ok archive/tar 0.011s FAIL archive/zip 0.022s ok compress/gzip 0.033s ...默认处理全部测试文件详细参数见go help testflag。godoc内置文档工具Go 无需第三方文档工具即可查阅标准库文档godoc builtin查看内建包、godoc net/http查看 http 包、godoc fmt Printf查看函数说明、godoc -src fmt Printf直接查看源码。运行godoc -http:8080后浏览器访问127.0.0.1:8080即可看到本地版 golang.org 文档站除标准库外还包含$GOPATH/pkg中的本地包。其他常用工具go fix // 将 go1 之前的代码升级到 go1 之后的新写法 go version // 查看已安装的 Go 版本 go env // 查看 Go 相关环境变量 go list // 列出已安装的全部包 go run // 编译到临时文件并直接运行细节均可通过go help 工具名查询。常用的 Go IDE 与编辑器本章还系统演示了主流编辑器/IDE 的 Go 环境配置均跨平台配置步骤大同小异。LiteIDE专为 Go 设计的轻量开源 IDEvisualfc 开发特征包括跨平台Windows/Linux/Mac、支持交叉编译与多套编译环境、基于$GOPATH的工程/文档/API 管理、完整 gocode 自动补全、F1查看表达式、F2跳转函数声明、GDB 调试、gofmt 自动格式化、Markdown 实时预览与 HTML/PDF 导出等。配置要点先安装 Go再下载对应系统的 LiteIDE 包解压安装补全引擎go get -u github.com/nsf/gocode然后在Opinion→LiteEnv中按系统选择环境文件。64 位 Windows 选择win64.envGOROOTc:\go GOBIN GOARCHamd64 GOOSwindows CGO_ENABLED1 PATH%GOBIN%;%GOROOT%\bin;%PATH%把GOROOT改成实际安装路径并保存若装了 MinGW64把c:\MinGW64\bin加入 PATH 以支持 cgo。64 位 Linux 选择linux64.envGOROOT$HOME/go GOBIN GOARCHamd64 GOOSlinux CGO_ENABLED1 PATH$GOBIN:$GOROOT/bin:$PATH同样替换GOROOT后保存。$GOPATH的查看与修改非常直观菜单View - Setup GOPATH命令行下也可用go help gopath查看说明。Sublime TextSublime Text 2 GoSublime gocode MarGo 的组合提供智能补全、自动格式化、工程管理、语法高亮等功能。安装流程先安装 Package Control通过Ctrl打开命令面板执行安装脚本重启后可在 Preferences 菜单看到 Package Control再按CtrlShiftP输入pcipPackage Control: Install Package依次安装 GoSublime、SidebarEnhancements、Go Build重启后打开main.go输入import验证补全输入import fmt后敲fmt.验证函数补全。若补全失效多半是$PATH未配置好 gocode在终端执行gocode检查。VimVim 是程序员常用的编辑器配合 gocode 可获得智能补全、编译与错误跳转能力。步骤# 1. 安装 Go 语法高亮 cp -r $GOROOT/misc/vim/* ~/.vim/ # 2. 启用语法高亮写入 ~/.vimrc filetype plugin indent on syntax on # 3. 安装 gocode默认安装到 $GOBIN go get -u github.com/nsf/gocode # 4. 配置 gocode 的 vim 集成 cd $GOPATH/src/github.com/nsf/gocode/vim ./update.bash gocode set propose-builtins true gocode set lib-path /home/border/gocode/pkg/linux_amd64 gocode setgocode 两项关键配置的含义propose-builtins决定是否启用内建函数智能补全默认 falselib-path用于追加包搜索路径——gocode 默认在$GOPATH/pkg/$GOOS_$GOARCH与$GOROOT/pkg/$GOOS_$GOARCH中查找该设置用于补充额外路径。完成后:e main.go即可开始编码。EmacsEmacs 常被称作神的编辑器通过 go-mode 与 gocode 构成强大 Go IDE。步骤把$GOROOT/misc/emacs/*拷到~/.emacs.d/安装 gocode 并同样执行update.bash与gocode set配置下载安装 auto-completemake install DIR$HOME/.emacs.d/auto-complete在~/.emacs中启用 auto-complete 与 go-mode并配置快捷键、Imenu/Speedbar、Outline 及 Go tools 菜单含go run、gofmt、go fix辅助函数。启用 Speedbar 需取消;;(speedbar 1)一行的注释或执行M-x speedbar。EclipseEclipse 同样可用作 Go 开发环境安装 Eclipse 后下载 goclipse 插件安装 gocodeWindows 需先装 git通常用 msysgitWindows 下还需安装 MinGW随后在Windows - Preferences - Go中依次配置 Go 编译器路径、gocode.exe 路径可选、gdb.exe 路径可选最后新建 Go 工程与hello.go在控制台验证运行。IntelliJ IDEA熟悉 Java 的开发者对此 IDE 不陌生通过插件支持 Go 语法高亮与智能补全Ultimate 与 Community 版均可在File - Settings - Plugins - Browser repo中搜索golang双击安装后重启新建 Go 工程时在下一步填入 Go SDK 位置通常为$GOROOT。Visual Studio CodeVS Code 是编辑器形态、IDE 能力的现代选择安装 Go 插件左侧扩展面板或CTRLSHIFTX搜索 Go前提是 Go 已装好且 GOROOT/GOPATH 已配置打开任意.go文件后右下角会提示 Analysis Tools Missing点击即可自动安装缺失的辅助工具随后即可创建 Go 工程。章节小结与下一步本章完成了 Go 环境从零到可用的全过程三种安装方式源码编译、标准安装包、第三方工具、$GOPATH工作区配置与目录结构、从包编译到应用运行再到远程依赖获取的完整链路、覆盖编译/清理/格式化/测试/文档的go工具集以及 LiteIDE、Sublime Text、Vim、Emacs、Eclipse、IntelliJ IDEA、VS Code 等多套开发环境配置。你可以任选其中一种编辑器正式进入 Go 世界。环境就绪后下一步进入 第二章Go 语言入门开始编写第一个 Hello, Go 程序并学习语言基础。若需随时回看本章可回到 俄文版目录 或 英文版目录英文版还附带 可运行示例代码 用于验证工作区配置。本文所有命令与配置均以当前仓库文档ru/01.1.md、ru/01.2.md、ru/01.3.md、ru/01.4.md与配套源码为准版本号示例来自本书写作年代的 go1.4.2实际安装请使用官方最新发布版本。赞分享文档教程【免费下载链接】build-web-application-with-golangA golang ebook intro how to build a web with golang项目地址https://gitcode.com/gh_mirrors/bu/build-web-application-with-golang点击查看免费下载相关推荐用 Go 构建 Web 应用一开发环境配置与 GOPATH 工作区完整搭建指南用 Go 构建 Web 应用一开发环境配置与 GOPATH 工作区完整搭建指南 本篇文章聚焦《用 Go 构建 Web 应用》Build Web Appl文档教程《Go Web 编程》第一章回顾Go 开发环境搭建全景指南安装 · GOPATH · 常用命令 · 开发工具《Go Web 编程》第一章回顾Go 开发环境搭建全景指南安装 · GOPATH · 常用命令 · 开发工具 本文是开源仓库 build web appl文档教程Cosmos 仓库 Go 开发环境安装指南GOPATH 配置、工具链搭建与算法源码运行实战Cosmos 仓库 Go 开发环境安装指南GOPATH 配置、工具链搭建与算法源码运行实战 本指南面向希望在 Cosmos 开源算法库 https://lin教程示例工程上一篇lz4-java安全最佳实践避免常见压缩漏洞与内存溢出风险下一篇Neorg 终极指南如何在 Neovim 中高效组织你的数字生活创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考