6 个 Go 新手必备工具,用对了真的能少走一年弯路

127 阅读13分钟

学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插件:从安装一直到调试,一条龙

  1. 安装VSCode,直接前往官方网站去进行下载安装,它是免费的,不管运用什么样的系统,都有对应的版本。
  2. 安装Go插件,在左侧的扩展栏里搜索Go,找到由作者是golangMicrosoft的官方插件,然后直接一键安装就行。
  3. 开启自动格式化,开启设置(Ctrl+,),寻得并搜索FormatOnSave,勾选之后,每次保存就,会自动借助gofmt或者gopls来给你进行排版,代码一下子就让整洁强迫症上线。
  4. 调试代码,新建一个main.go文件,接着写一行代码fmt.Println(HelloGo,在左侧点击运行和调试,接着创建配置文件,选取Go,在代码行号左边点一下来设置断点,接着按下F5,便可以一步步,开展调试、查看变量以及调用栈。

GoLand学生版:懒人福音版全自动Go开发环境

  1. 官网申请教育许可,使用学校邮箱注册或上传学生证,审核通过后即可免费使用全部JetBrainsIDE,包括GoLand。
  2. 安装完成之后创建Go项目,选择NewProject,接着挑选GoSDK版本,然后就一直按下一步操作就行。
  3. GoModules自动配置,新建项目,默认就是采用gomodules,不用你去操心GOPATH这类陈旧的概念。
  4. 调试更直观,右键点击main.go然后选择Debug,界面,当中存在变量面板、调用栈、表达式求值,对于新手理解程序流程是非常友好的。

要是你是新手同时也是学生的话,那就仅有一个办法,运用GoLand,别在环境方面费劲去折腾,把更多的精力放到代码本身上面。

在线运行工具:GoPlayground(官方)

编辑

没安装开发环境,不想费劲打开集成开发环境,还想尝试几行Go代码,官方的GoPlayground就是你的“随身沙箱”。它会在服务端替你进行编译、运行,之后将输出给到你,连Go都不需要在本地安装。

要是你尝试让想法运用起来越发顺手,你就更有很大可能多写一行代码,这便是进步的资本。

适用场景

  • 还没把本地环境配置好,就只是想体会一下Go语言的语法什么样。
  • 在群里问问题,把代码贴个链接就完事。
  • 验证一些小逻辑,比如切片、映射、循环这类,没必要特意为这弄个完整项目。

实战操作:3步跑起来

  1. 打开GoPlayground,访问https,go.devplay(要是在国内不稳定就去搜索「GoPlayground镜像」)。
  2. 在左侧的编辑器当中修改代码,比如说打印一句话、编写一个小函数。
  3. 点击顶部的Run按钮,右边立刻就能够看见到输出结果。
  4. 若想要分享,点击Share,它会生成一个唯一的链接,把这个链接发送给他人,他人便能够直接打开来使用。

和国内镜像的区别

对比项官方Playground国内镜像(如部分社区站点)
优点官方来,维护、没有广告、Go版本比较能紧跟加载速度比较稳,或许还能额外支持一些依赖
缺点国内有的时候访问比较迟缓,还限制第三方依赖版本更新往往慢半拍

建议:语法标准库验证的话,优先用官方的;需要运用第三方,包来访问且更稳定的话→选国内镜像。

文档查询工具:Go官方文档加上Go中文网

学一门语言,最顶尖的老师,始终是“官方文档+好用的中文站”。pkg.go.dev是Go的官方文档,是权威的词典,像Go中文网这类社区站点将它翻译整理成更易被人接受的形式。

要真正从能写变为会写,依靠的就是查阅文档的次数。

用官方文档查标准库

  1. 访问pkg.go.dev/

  2. 想学哪一个包的话就搜索哪一个,比如说sort、nethttp。

  3. 点进包详情页,可以看到:

    • 包介绍
    • 类型、函数列表
    • 每个函数下面都有使用说明和示例代码

大量示例,还直接支持「在Playground运行」。这就好比「官方说明书+可运行Demo」,对新手格外友好。

英文吃力?上中文站兜底

  1. 打开Go中文类站点的标准库页面,比如说像以studygolang为代表的文档导航。

  2. 左边按照包名来划分,像nethttp、fmt这类,点击进去就能看见:

    • 简明中文解释
    • 常用函数说明
    • 示例代码,能够直接复制到本地或者Playground运行

英文官方+中文社区,怎么搭配?

  • 遇到新的包、刚接触某个概念的时候→先看中文,快速弄清楚大概意思。
  • 要是在细节、版本更新、新特性这类方面遇到阻碍,那就回到官方文档,去查看最新的、最具权威性的说明。

记住,百度能够用来搜索问题,官方文档才是“最终裁判”。

依靠管理工具:GoModules(官方内置)

运用Go来进行项目开发,早晚得引入第三方库,比如说gin、gorm这类的,要是不想让自己把事情搞糟的话,那么对于依赖管理就得弄清楚。好消息是,Go官方已经将依赖管理内置成了GoModules,不用再去安装额外的工具。

那些不了解使用GoModules的人,就总是处于「别人的项目能运行,自己这里却出问题」的糟糕情况。

什么时候必须用GoModules

  • 新建任何Go项目,要是需要使用第三方库的话,那就必定要开启。
  • 想要固定依赖版本,不要让自己因为升级出现问题,避免“升级把自己搞挂”。
  • 想要将项目发送给他人,期望对方可以一键把依赖安装完毕。

三个核心命令,记住就够用了

  1. 初始化项目:在项目根目录打开终端,执行gomodinit这个模块名称,举个例子就是gomodinitgithub.comyournamehello-go。
  2. 安装依赖:比如说安装gin的话,那就是通过goget的方式获取,github.com/gin-gonic/gin这个软件包且是最新版本的。安装完毕之后go.mod会自动新增一行依赖声明,代码里导入「github.comgin-gonicgin」就能够直接使用。
  3. 同步依赖(别人拉你的代码时):在项目的根目录,当中执行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

  1. 安装Git,直接从官网下载就可以,安装好后在终端配置用户名和邮箱:

    • gitconfig--globaluser.name你的名
    • gitconfig--globaluser.email你的邮
  2. 在GitHub上新建仓库,也就是点击Newrepository,然后填写仓库名,随后点击创建就可以了。

  3. 在本地项目目录:

    • gitinit初始化仓库
    • gitadd.将当前所全部文件加入暂存区
    • gitcommit-m「第一次提交,完成HelloGo功能」将代码提交至本地仓库
  4. 关联到远程仓库:gitremoteaddoriginhttps,//github.com/yourname/仓库名.git

  5. 推送:gitpush-uoriginmain(第一次,可能需要登录或者配置SSH)

为什么,更倾向于使用Git搭配GitHub,而并非是SVN?

  • Git,它是分布式的,每个人在本地都拥有完整的仓库,即便处于离线状态仍然可以提交,这是开源社区的标准配置。
  • SVN:是集中式的,更像是老式公司内网工具,如今大多存在于传统项目当中。

想要做Go开发,Git和GitHub是必定得学习的课程,并非那种可选择并不选择的课程。

面试刷题工具:LeetCodeGo题库

撰写业务代码是一回事,能不能经受住面试不是另一回事。很多Go岗位会对算法以及语言特性开展考查,LeetCode的Go,题库乃是最为贴近面试实战的一处训练场。

会写CRUD不并不等于能通过技术面,刷题是作为一种“面试体能训练”。

几类典型使用场景

  • 刚学完语法,想要通过做题来巩固for、slice、map、struct这类基础的内容。
  • 面试前集中刷Go标签+高频算法题,找找语言感觉,提升解题速度。
  • 看看他人的Go代码解法,学学怎样弄出更简洁、更正宗的风格。

实操路径:从注册到提交

  1. 访问LeetCode网站,注册账号。

  2. 点“题库”,筛选:

    • 语言选择Go
    • 难度先选“简单”能够优先去刷经典题目,比如两数之和、有效的括号,、反转链表这类高频率的题目。
  3. 做题流程:

    • 打开题目,在右侧语言切换成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原创的,这文章就是想要传播积极向上的力量,不存在那类低俗不良的引导,期望读者可以理解。

  1. code.visualstudio.com/docs/langua…
  2. marketplace.visualstudio.com/items?itemN…
  3. github.com/golang/vsco…
  4. www.youtube.com/watch?v=DcU…
  5. go.dev/play/
  6. learn.microsoft.com/en-us/azure…
  7. mdaverde.com/posts/golan…
  8. appmaster.io/blog/go-mod…
  9. stackoverflow.com/questions/8…
  10. github.com/microsoft/v…