学Go语言,不少人倒在了工具选得不对这一步,装个开发环境就踩了一堆坑,写个简单的demo却报出满屏错误,查文档全是英文直接劝退,刷题时又发现根本追不上面试的难度,最后干脆来一句算了,不学了,默默关掉了编辑器。
真相就是:绝大部分人不是学不会Go,而是被一堆杂乱无章的工具链,把耐心都消磨没了。
工具选对了,Go 不是变简单,而是你终于有力气学下去了。
下面这6个工具网站,包含了写代码、跑调试、查文档、管依赖,还有版本控制、刷面试题等方面,都给人们安排好了,每一个都是挺适合新手去运用的,使用方法可以达到「顺着鼠标就能轻松入门」那样的程度,用起来既叫人省心又高效。
核心前言:别被“工具门槛”劝退
新手学习Go的时候,最普遍的低效循环情况是,环境没有配置好→报错了却不晓得是怎么回事→找不到文档→想要询问问题的时候,连代码都没有办法分享出去。工具使用得比较差,就容易怀疑“是不是我不适合写代码”。
- 编写代码的时候,编辑器,不存在补全功能、不存在高亮显示、也不存在自动格式化,每一行都仿佛是在“手搓石器时代”。
- 想要尝试一个想法,本地还没有安装环境,下载并且配置好一套弄完,兴致会消磨掉一半。
- 当打开全英文的官方文档时,立刻就出现读不进去的状态,去寻觅找中文资料吧,却是这里一块那儿一块的,而且版本还有可能是已经陈旧的。
新手阶段,你最不具备的并非是决心,而是“顺手的体验”。那所以这,篇就不再和你探讨什么哲学、心态,直接给你一套,能够马上付诸行动的工具组合,有6个工具,从0到面试,你要是按照使用,踩坑的情况会大大减少。
分工具详解(6个核心工具)
代码编写工具:VSCode加上Go插件VSGoLand学生
写Go代码,肯定要有一个「能帮你看语法、自动排版、还能顺便调试」的编辑器。对于新手来讲,推荐两条途径,轻便的VSCode和Go插件,或者全方位的GoLand学生版,对新手来讲,推荐两条途径,轻便VSCode加Go插件,或者全方位GoLand学生版。
真实的生产力,不是你书写得多么迅速,而是编辑器帮你减少多少失误。
适用场景怎么选
- 要是你是学生群体,想要「零成本+全家桶级Go支持」,开启GoLand学生版,大体上开启就能使用,调试以及重构之类的都比较流畅。
- 要是你你同时还写前端其他语言,或者电脑配置不怎么,加上官方Go插件的VSCode,使用起来挺轻巧,而且能够兼容好几种语言。
VSCode加上Go插件:从安装一直到调试,一条龙
- 安装VSCode,直接前往官方网站去进行下载安装,它是免费的,不管运用什么样的系统,都有对应的版本。
- 安装Go插件,在左侧的扩展栏里搜索Go,找到由作者是golangMicrosoft的官方插件,然后直接一键安装就行。
- 开启自动格式化,开启设置(Ctrl+,),寻得并搜索FormatOnSave,勾选之后,每次保存就,会自动借助gofmt或者gopls来给你进行排版,代码一下子就让整洁强迫症上线。
- 调试代码,新建一个main.go文件,接着写一行代码fmt.Println(HelloGo,在左侧点击运行和调试,接着创建配置文件,选取Go,在代码行号左边点一下来设置断点,接着按下F5,便可以一步步,开展调试、查看变量以及调用栈。
GoLand学生版:懒人福音版全自动Go开发环境
- 官网申请教育许可,使用学校邮箱注册或上传学生证,审核通过后即可免费使用全部JetBrainsIDE,包括GoLand。
- 安装完成之后创建Go项目,选择NewProject,接着挑选GoSDK版本,然后就一直按下一步操作就行。
- GoModules自动配置,新建项目,默认就是采用gomodules,不用你去操心GOPATH这类陈旧的概念。
- 调试更直观,右键点击main.go然后选择Debug,界面,当中存在变量面板、调用栈、表达式求值,对于新手理解程序流程是非常友好的。
要是你是新手同时也是学生的话,那就仅有一个办法,运用GoLand,别在环境方面费劲去折腾,把更多的精力放到代码本身上面。
在线运行工具:GoPlayground(官方)
编辑
没安装开发环境,不想费劲打开集成开发环境,还想尝试几行Go代码,官方的GoPlayground就是你的“随身沙箱”。它会在服务端替你进行编译、运行,之后将输出给到你,连Go都不需要在本地安装。
要是你尝试让想法运用起来越发顺手,你就更有很大可能多写一行代码,这便是进步的资本。
适用场景
- 还没把本地环境配置好,就只是想体会一下Go语言的语法什么样。
- 在群里问问题,把代码贴个链接就完事。
- 验证一些小逻辑,比如切片、映射、循环这类,没必要特意为这弄个完整项目。
实战操作:3步跑起来
- 打开GoPlayground,访问https,go.devplay(要是在国内不稳定就去搜索「GoPlayground镜像」)。
- 在左侧的编辑器当中修改代码,比如说打印一句话、编写一个小函数。
- 点击顶部的Run按钮,右边立刻就能够看见到输出结果。
- 若想要分享,点击Share,它会生成一个唯一的链接,把这个链接发送给他人,他人便能够直接打开来使用。
和国内镜像的区别
| 对比项 | 官方Playground | 国内镜像(如部分社区站点) |
|---|---|---|
| 优点 | 官方来,维护、没有广告、Go版本比较能紧跟 | 加载速度比较稳,或许还能额外支持一些依赖 |
| 缺点 | 国内有的时候访问比较迟缓,还限制第三方依赖 | 版本更新往往慢半拍 |
建议:语法标准库验证的话,优先用官方的;需要运用第三方,包来访问且更稳定的话→选国内镜像。
文档查询工具:Go官方文档加上Go中文网
学一门语言,最顶尖的老师,始终是“官方文档+好用的中文站”。pkg.go.dev是Go的官方文档,是权威的词典,像Go中文网这类社区站点将它翻译整理成更易被人接受的形式。
要真正从能写变为会写,依靠的就是查阅文档的次数。
用官方文档查标准库
-
想学哪一个包的话就搜索哪一个,比如说sort、nethttp。
-
点进包详情页,可以看到:
- 包介绍
- 类型、函数列表
- 每个函数下面都有使用说明和示例代码
大量示例,还直接支持「在Playground运行」。这就好比「官方说明书+可运行Demo」,对新手格外友好。
英文吃力?上中文站兜底
-
打开Go中文类站点的标准库页面,比如说像以studygolang为代表的文档导航。
-
左边按照包名来划分,像nethttp、fmt这类,点击进去就能看见:
- 简明中文解释
- 常用函数说明
- 示例代码,能够直接复制到本地或者Playground运行
英文官方+中文社区,怎么搭配?
- 遇到新的包、刚接触某个概念的时候→先看中文,快速弄清楚大概意思。
- 要是在细节、版本更新、新特性这类方面遇到阻碍,那就回到官方文档,去查看最新的、最具权威性的说明。
记住,百度能够用来搜索问题,官方文档才是“最终裁判”。
依靠管理工具:GoModules(官方内置)
运用Go来进行项目开发,早晚得引入第三方库,比如说gin、gorm这类的,要是不想让自己把事情搞糟的话,那么对于依赖管理就得弄清楚。好消息是,Go官方已经将依赖管理内置成了GoModules,不用再去安装额外的工具。
那些不了解使用GoModules的人,就总是处于「别人的项目能运行,自己这里却出问题」的糟糕情况。
什么时候必须用GoModules
- 新建任何Go项目,要是需要使用第三方库的话,那就必定要开启。
- 想要固定依赖版本,不要让自己因为升级出现问题,避免“升级把自己搞挂”。
- 想要将项目发送给他人,期望对方可以一键把依赖安装完毕。
三个核心命令,记住就够用了
- 初始化项目:在项目根目录打开终端,执行gomodinit这个模块名称,举个例子就是gomodinitgithub.comyournamehello-go。
- 安装依赖:比如说安装gin的话,那就是通过goget的方式获取,github.com/gin-gonic/gin这个软件包且是最新版本的。安装完毕之后go.mod会自动新增一行依赖声明,代码里导入「github.comgin-gonicgin」就能够直接使用。
- 同步依赖(别人拉你的代码时):在项目的根目录,当中执行gomodtidy,它会自动把go.mod里所书写的内容全都拉取过来,同时还会顺带着清理掉没有用处的依赖。
为啥不建议再碰Dep这类旧工具
- 早些时候,还真流行过Dep、Glide这类第三方依靠管理工具。
- 但是Go官方目前统一推广GoModules,社区里的新项目,几乎都已经全面转移过去了。
- 旧工具里面有很多都已经不再维护了,对于新版本的特性,的支撑都不太理想。
记一句就行:Go1.11及以上版本,只学GoModules,其他的都当老古董看待。
版本控制工具:Git+GitHub
学Go要是不用Git,就如同会做饭却不会打包外卖这样你创作出来的东西,就仅仅在你电脑里存放着。Git用来管理版本,GitHub用来进行托管,这就是目前绝大多数Go开源项目的标配组合。
要是想进入互联网公司的话,GitHub就是你的“公开作品集”。
日常都用来干嘛
- 给自身的代码弄后悔药:要是不小心改坏了或者删文件了,都能够回滚。
- 用于在公司团队协作时,查看谁修改了哪一行,以及何时提交的。
- 到GitHub上面看看优异的Go项目源代码,比如各类Web框架、中间件这类的。
新手用5个步骤,将本地Go项目推送到GitHub
-
安装Git,直接从官网下载就可以,安装好后在终端配置用户名和邮箱:
- gitconfig--globaluser.name你的名
- gitconfig--globaluser.email你的邮
-
在GitHub上新建仓库,也就是点击Newrepository,然后填写仓库名,随后点击创建就可以了。
-
在本地项目目录:
- gitinit初始化仓库
- gitadd.将当前所全部文件加入暂存区
- gitcommit-m「第一次提交,完成HelloGo功能」将代码提交至本地仓库
-
关联到远程仓库:gitremoteaddoriginhttps,//github.com/yourname/仓库名.git
-
推送:gitpush-uoriginmain(第一次,可能需要登录或者配置SSH)
为什么,更倾向于使用Git搭配GitHub,而并非是SVN?
- Git,它是分布式的,每个人在本地都拥有完整的仓库,即便处于离线状态仍然可以提交,这是开源社区的标准配置。
- SVN:是集中式的,更像是老式公司内网工具,如今大多存在于传统项目当中。
想要做Go开发,Git和GitHub是必定得学习的课程,并非那种可选择并不选择的课程。
面试刷题工具:LeetCodeGo题库
撰写业务代码是一回事,能不能经受住面试不是另一回事。很多Go岗位会对算法以及语言特性开展考查,LeetCode的Go,题库乃是最为贴近面试实战的一处训练场。
会写CRUD不并不等于能通过技术面,刷题是作为一种“面试体能训练”。
几类典型使用场景
- 刚学完语法,想要通过做题来巩固for、slice、map、struct这类基础的内容。
- 面试前集中刷Go标签+高频算法题,找找语言感觉,提升解题速度。
- 看看他人的Go代码解法,学学怎样弄出更简洁、更正宗的风格。
实操路径:从注册到提交
-
访问LeetCode网站,注册账号。
-
点“题库”,筛选:
- 语言选择Go
- 难度先选“简单”能够优先去刷经典题目,比如两数之和、有效的括号,、反转链表这类高频率的题目。
-
做题流程:
- 打开题目,在右侧语言切换成Go
- 写完代码先点“执行代码”跑用例
- 通过后点“提交”,看用时、内存表现
进阶用法:学会“抄作业+反思”
-
看“题解”里的Go标签答案,重点关注:
- 有没有更巧的内置函数用法
- 切片map有没有更优写法
- 并发channel题目当中,其他人是怎样,设计goroutine的
-
不要单纯复制,试着关掉题解自身重新写一回,写完再对比才能提高本领。
刷题的目的,并非是为了获取通过那两个字,而是促使自身运用Go语言去解决问题,而且从更出色的解法里学习办法。
总结:新手工具使用优先级
工具不是越多越好,而是要“阶段匹配,少而精”。
入门阶段(0–1个月)
- VSCode+Go插件→负责写代码
- GoPlayground→用于快速测试语法,询问问题时分享代码
- Go中文文档站→看中文解释建立直觉
- GoModules→按照指令来使用,养成从一开始就把依赖管理好的习惯
进阶阶段(1–3个月)
- 开始运用Git搭配GitHub来管理全部的Go项目
- 去LeetCode做简单题,一边做一边查官方文档
面试阶段(3–6个月)
- LeetCode上攻克中等和困难的题目,重点是以Go来实现
- 要是你是学生,那就切换到GoLand学生版,在大型项目中依靠重构、调试功能来提高效率
工具的最终意义,是让你把精力从环境配置焦虑转移到「把Go学精、把项目做好」上面去。不要再纠结「要不要把所有工具都摸透」,对于新手来讲,当前你需要做的便是一件事,先把这6个工具的最核心用法,练习熟练,用到顺手,这就已经比80%只会装环境的同学,厉害很多。
声明一下,这文章里有九成是我本人原创的,有极少部分素材是借助AI来弄的,而且所有内容我都仔仔细细检查过了,图片素材,全都是来自真实的或者AI原创的,这文章就是想要传播积极向上的力量,不存在那类低俗不良的引导,期望读者可以理解。
- code.visualstudio.com/docs/langua…
- marketplace.visualstudio.com/items?itemN…
- github.com/golang/vsco…
- www.youtube.com/watch?v=DcU…
- go.dev/play/
- learn.microsoft.com/en-us/azure…
- mdaverde.com/posts/golan…
- appmaster.io/blog/go-mod…
- stackoverflow.com/questions/8…
- github.com/microsoft/v…