您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Go语言

全流程开发 GO实战电商网站高并发秒杀系统

时间:2022-09-18 10:52:53  来源:网易号  作者:月初影视解说

第一章 Go语言基础

 

1.1 开发环境搭建
1.1.1 Go语言下载安装

 

下载地址:https://go.dev/dl/

下载对应的安装包,没有合适可以下载go的源码,这里以windos为例;

下载好后,按照提示进行安装;

也可以自定义安装位置;

 

1.1.2 配置全局变量
linux

 

1.下载cd /opt/softsudo wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz2.解压sudo tar -xzvf go1.18.1.linux-amd64.tar.gz3.进入解压后的go目录cd go4.创建GOPATH目录mkdir GOPATH5.配置环境变量打开家目录下的.bashrc文件vim ~/.bashrc添加两行配置export GOPATH=/opt/soft/go/GOPATH export PATH=$PATH:$GOPATH:/opt/soft/go/bin1.加载环境变量到内存source ~/.bashrc2.查看go安装版本go version

 

windos:

 

安装go已自动配置全局变量,如需手动配置如下:找到:我的电脑,右键,打开“属性”选择“高级系统设置”弹出以下对话框,选择“高级”标签:点击“环境变量”按钮,弹出变量设置窗口:“新建”系统变量:设置变量名GOROOT,变量值D:huanjinggo(安装目录)修改系统变量Path,添加D:huanjinggobin1.1.3 go工具命令go veroin 查看go当前版本;

go run 编译并执行mAIn包(程序入口点);go build 编译程序,并不会执行;(默认生成的二进制文件包含调试信息和字符表,文件会变大)go build -dflags "-w -s" 从二进制文件剥离部分信息;./xxx 执行程序;doc fmt 自动检索包文档go get 一键获取代码、编译并安装

 

  1.  

 

go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 App 一样简单。这个命令可以动态获取远程代码包,目前支持的有 BitBucket、Githubgoogle Code 和 Launchpad。在使用 go get 命令前,需要安装与远程包匹配的代码管理工具,如 Git、SVN、HG 等,参数中需要提供一个包名。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行 go install。下载源码包的 go 工具会自动根据不同的域名调用不同的源码工具,对应关系如下:
BitBucket (Mercurial Git)GitHub (Git)Google Code Project Hosting (Git, Mercurial, Subversion)Launchpad (Bazaar)
所以为了 go get 命令能正常工作,你必须确保安装了合适的源码管理工具,并同时把这些命令加入你的 PATH 中。其实 go get 支持自定义域名的功能。参数介绍:-d 只下载不安装-f 只有在你包含了 -u 参数的时候才有效,不让 -u 去验证 import 中的每一个都已经获取了,这对于本地 fork 的包特别有用-fix 在获取源码之后先运行 fix,然后再去做其他的事情-t 同时也下载需要为运行测试所需要的包-u 强制使用网络去更新包和它的依赖包-v 显示执行的命令
远程包的路径格式Go语言的代码被托管于 Github.com 网站,该网站是基于 Git 代码管理工具的,很多有名的项目都在该网站托管代码。其他类似的托管网站还有 code.google.com、bitbucket.org 等。这些网站的项目包路径都有一个共同的标准.远程包路径格式远程包路径是 Go语言的源码,这个路径共由 3 个部分组成:网站域名:表示代码托管的网站,类似于电子邮件 @ 后面的服务器地址。作者或机构:表明这个项目的归属,一般为网站的用户名,如果需要找到这个作者下的所有项目,可以直接在网站上通过搜索“域名/作者”进行查看。这部分类似于电子邮件 @ 前面的部分。项目名:每个网站下的作者或机构可能会同时拥有很多的项目,图中标示的部分表示项目名称。go get+ 远程包默认情况下,go get 可以直接使用。例如,想获取 go 的源码并编译,使用下面的命令行即可:$ go get github.com/davyxu/cel.NET获取前,请确保 GOPATH 已经设置。Go 1.8 版本之后,GOPATH 默认在用户目录的 go 文件夹下。cellnet 只是一个网络库,并没有可执行文件,因此在 go get 操作成功后 GOPATH 下的 bin 目录下不会有任何编译好的二进制文件。需要测试获取并编译二进制的,可以尝试下面的这个命令。当获取完成后,就会自动在 GOPATH 的 bin 目录下生成编译好的二进制文件。$ go get github.com/davyxu/tabtoygo get 使用时的附加参数使用 go get 时可以配合附加参数显示更多的信息及实现特殊的下载和安装操作,详见下表所示。go get 使用时的附加参数附加参数备 注-v显示操作流程的日志及信息,方便检查错误-u下载丢失的包,但不会更新已经存在的包-d只下载,不安装-insecure允许使用不安全的 HTTP 方式进行下载操作

 

 
 
1.1.4 开发工具

 

以Goland为例下载安装包,进行安装;

 

1、Go Reviverevive

 

是一个 Go 语言的代码质量检测工具(Linter for Go),具有快速、可配置、可扩展、灵活和美观等特性,可作为 golint 的替代方案。虽然 golint 很受欢迎,但是 revive 提供了更多新功能,值得你去花时间研究,例如,它运行得更快(最高可达6x!),允许使用 TOML 文件配置 linting 规则,并提供更多规则。

 

2、Goland

 

Goland 是一个Go语言IDE, 大名鼎鼎的JetBrains公司开发, JetBrains是IDE开发专家, 推出的个个是精品, 例如phpStorm, PyCharm, JetBrains有自己的一套IDE开发哲学, 用顺了它家公司的产品, 用来做Goland开发也是很不错的.只不过跟其他产品一样,它家是收费的, 要找破解,需要费点心思

 

3、Go Callvis

 

一定要收藏这个可视化工具,你可以使用 Go Callvis 来可视化 Go 程序的调用图。这个开发工具有一个使用HTTP服务器的交互式视图。来自 GitHub 上 的介绍:”这个工具的目的是通过使用来自函数调用关系图的数据及其与包和类型的关系来对程序进行可视概览。这在你只是试图理解别人的代码结构,或在代码复杂性增加的大型项目中特别有用。4. IntelliJ + Go 插件这是老牌的IDE了, 也是由JetBrains公司出品, 其本身是支持JAVA的, 要用作Go语言开发,就需要加上Go插件, 其插件支持基本的开发功能, 例如编译,调试, 语法高亮,代码补全, 以及对引入库的管理,等等,

 

5、Gaia
6、LiteIDE

 

跟Goland一样, 这可是专属Go语言的IDE,所有开发功能它都齐备了,最关键的是,人家可是免费的.

 

7、RealizeRealize

 

是一个 Go 工具,专注于加快和改善开发人员的工作流程,自动化用户的工作流程,集成第三方的其他工具,定义自定义 cli 命令,并在每次更改时重新加载项目,而不必停止编写代码。

 

8、Eclipse+ Go插件

 

作为开放式IDE的鼻祖,Eclipse怎么可能少了对Go语言的支持,把GoEclipse插件注册进去,其完整的开放功能就马上配备好。

 

9、Gotestsgotests

 

使编写 Go 测试变得容易。它是一个 Golang 命令行工具,它根据目标源文件的功能和方法签名生成表驱动测试。你有很多不同的插件可供选择,包括:Emacs、Vim、Atom编辑器、Visual Studio代码、IntelliJ Goland和Sublime Text 3 插件。

 

10、VS Code+ Go插件

 

VSCode支持大部分语言, 所以也支持了Go, 你只需要把Go相关插件集成进去即可, 再关联上git等, 一个完整的Go开发环境就搭建起来了。



Tags:GO   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
机械设备B2B工厂外贸网站如何做Google谷歌SEO优化关键字排名?
在今天的全球化市场中,机械设备行业正面临着激烈的竞争。要在这一领域脱颖而出,拥有一个优化良好的B2B外贸网站至关重要。通过精准的谷歌SEO关键字排名,您的网站可以吸引更多海...【详细内容】
2024-04-08  Search: GO  点击:(6)  评论:(0)  加入收藏
Google搜索引擎索引的网页数量有多少?谷歌官方提供数据进行参考
Google搜索引擎索引的网页数量有多少?二十世纪九十年代,网页的索引数量成了一个各大搜索引擎相互对比的指标。小编记得2000年谷歌搜索引擎的首页搜索框上方,还标记着谷歌索引的...【详细内容】
2024-03-27  Search: GO  点击:(15)  评论:(0)  加入收藏
在Java应用程序中释放峰值性能:配置文件引导优化(PGO)概述
译者 | 李睿审校 | 重楼在Java开发领域,优化应用程序的性能是开发人员的持续追求。配置文件引导优化(Profile-Guided Optimization,PGO)是一种功能强大的技术,能够显著地提高Ja...【详细内容】
2024-03-18  Search: GO  点击:(27)  评论:(0)  加入收藏
宝藏级Go语言开源项目——教你自己动手开发互联网搜索引擎
DIYSearchEngine 是一个能够高速采集海量互联网数据的开源搜索引擎,采用 Go 语言开发。Github 地址:https://github.com/johnlui/DIYSearchEngine运行方法首先,给自己准备一杯...【详细内容】
2024-03-12  Search: GO  点击:(24)  评论:(0)  加入收藏
Go Gin框架实现优雅地重启和停止
在Web应用程序中,有时候我们需要重启或停止服务器,无论是因为更新代码还是进行例行维护。在这种情景下,我们需要保证应用程序的可用性和数据的一致性。这就需要优雅地关闭和重...【详细内容】
2024-01-30  Search: GO  点击:(68)  评论:(0)  加入收藏
如何让Go程序以后台进程或daemon方式运行
本文探讨了如何通过Go代码实现在后台运行的程序。最近我用Go语言开发了一个WebSocket服务,我希望它能在后台运行,并在异常退出时自动重新启动。我的整体思路是将程序转为后台...【详细内容】
2024-01-26  Search: GO  点击:(60)  评论:(0)  加入收藏
深入Go底层原理,重写Redis中间件实战
Go语言以其简洁、高效和并发性能而闻名,深入了解其底层原理可以帮助我们更好地利用其优势。在本文中,我们将探讨如何深入Go底层原理,以及如何利用这些知识重新实现一个简单的Re...【详细内容】
2024-01-25  Search: GO  点击:(69)  评论:(0)  加入收藏
支付宝宣布更换Logo
鞭牛士 1月19日消息,今日,支付宝宣布更新Logo,此次最大的变化在于去掉了外框与文字,仅保留最具辨识度的“支”字标识。据了解,这是支付宝时隔4年再次更换Logo。支付宝App目前已用...【详细内容】
2024-01-19  Search: GO  点击:(72)  评论:(0)  加入收藏
Go 内存优化与垃圾收集
Go提供了自动化的内存管理机制,但在某些情况下需要更精细的微调从而避免发生OOM错误。本文将讨论Go的垃圾收集器、应用程序内存优化以及如何防止OOM(Out-Of-Memory)错误。Go...【详细内容】
2024-01-15  Search: GO  点击:(63)  评论:(0)  加入收藏
Go函数指针是如何让你的程序变慢的?
导读Go 语言的常规优化手段无需赘述,相信大家也能找到大量的经典教程。但基于 Go 的函数值问题,业界还没有太多深度讨论的内容分享。本文作者根据自己对 Go 代码的使用与调优...【详细内容】
2024-01-15  Search: GO  点击:(89)  评论:(0)  加入收藏
▌简易百科推荐
宝藏级Go语言开源项目——教你自己动手开发互联网搜索引擎
DIYSearchEngine 是一个能够高速采集海量互联网数据的开源搜索引擎,采用 Go 语言开发。Github 地址:https://github.com/johnlui/DIYSearchEngine运行方法首先,给自己准备一杯...【详细内容】
2024-03-12  OSC开源社区    Tags:Go语言   点击:(24)  评论:(0)  加入收藏
Go Gin框架实现优雅地重启和停止
在Web应用程序中,有时候我们需要重启或停止服务器,无论是因为更新代码还是进行例行维护。在这种情景下,我们需要保证应用程序的可用性和数据的一致性。这就需要优雅地关闭和重...【详细内容】
2024-01-30  源自开发者  微信公众号  Tags:Go   点击:(68)  评论:(0)  加入收藏
如何让Go程序以后台进程或daemon方式运行
本文探讨了如何通过Go代码实现在后台运行的程序。最近我用Go语言开发了一个WebSocket服务,我希望它能在后台运行,并在异常退出时自动重新启动。我的整体思路是将程序转为后台...【详细内容】
2024-01-26  Go语言圈  微信公众号  Tags:Go程序   点击:(60)  评论:(0)  加入收藏
深入Go底层原理,重写Redis中间件实战
Go语言以其简洁、高效和并发性能而闻名,深入了解其底层原理可以帮助我们更好地利用其优势。在本文中,我们将探讨如何深入Go底层原理,以及如何利用这些知识重新实现一个简单的Re...【详细内容】
2024-01-25  547蓝色星球    Tags:Go   点击:(69)  评论:(0)  加入收藏
Go 内存优化与垃圾收集
Go提供了自动化的内存管理机制,但在某些情况下需要更精细的微调从而避免发生OOM错误。本文将讨论Go的垃圾收集器、应用程序内存优化以及如何防止OOM(Out-Of-Memory)错误。Go...【详细内容】
2024-01-15  DeepNoMind  微信公众号  Tags:Go   点击:(63)  评论:(0)  加入收藏
Go函数指针是如何让你的程序变慢的?
导读Go 语言的常规优化手段无需赘述,相信大家也能找到大量的经典教程。但基于 Go 的函数值问题,业界还没有太多深度讨论的内容分享。本文作者根据自己对 Go 代码的使用与调优...【详细内容】
2024-01-15  腾讯云开发者  微信公众号  Tags:Go函数   点击:(89)  评论:(0)  加入收藏
Go编程中调用外部命令的几种场景
在很多场合, 使用Go语言需要调用外部命令来完成一些特定的任务, 例如: 使用Go语言调用Linux命令来获取执行的结果,又或者调用第三方程序执行来完成额外的任务。在go的标准库...【详细内容】
2024-01-09  suntiger    Tags:Go编程   点击:(109)  评论:(0)  加入收藏
Go 语言不支持并发读写 Map,为什么?
Go语言的map类型不支持并发读写的主要原因是并发读写会导致数据竞态(data race),这意味着多个 goroutine 可能同时访问并修改同一个 map,从而引发不确定的结果。在Go语言的设计...【详细内容】
2024-01-05  Go语言圈  微信公众号  Tags:Go 语言   点击:(81)  评论:(0)  加入收藏
Go微服务入门到容器化实践
Go微服务入门到容器化实践Go 是一门高效、现代化、快速增长的编程语言,非常适合构建 Web 应用程序。而 Docker 是一种轻量级的容器化技术,能够使得您的应用程序在任何地方运行...【详细内容】
2024-01-01  大雷家吃饭    Tags:Go微服务   点击:(64)  评论:(0)  加入收藏
你是否想知道如何应对高并发?Go语言为你提供了答案!
并发编程是当前软件领域中不可忽视的一个关键概念。随着CPU等硬件的不断发展,我们都渴望让我们的程序运行速度更快、更快。而Go语言在语言层面天生支持并发,充分利用现代CPU的...【详细内容】
2023-12-29  灵墨AI探索室  微信公众号  Tags:Go语言   点击:(110)  评论:(0)  加入收藏
站内最新
站内热门
站内头条