golang开发者的初始工作(持续更新中...)

54 阅读5分钟

✅ Homebrew

Homebrew是一款自由及开放源代码的软件包管理系统,用以简化macOS系统上的软件安装过程。

官方文档:brew.sh/zh-cn/

安装

参考:developer.aliyun.com/mirror/home…

✅ SSH与Git

安装

brew install git

配置

ssh keys生成

ssh-keygen -t ed25519 -C "你的邮箱@example.com"

# 将公钥配置到git后台
cat ~/.ssh/id_ed25519.pub

git配置

配置的内容保存在~/.gitconfig文件

git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
  • autocrlf

Git 中用于自动处理不同操作系统间换行符(行结束符)差异的配置选项

git config --global core.autocrlf input
操作系统推荐设置命令
Windowstruegit config --global core.autocrlf true
Linuxinputgit config --global core.autocrlf input
macOSinputgit config --global core.autocrlf input

✅ oh-my-zsh

zsh增强工具包主题管理器。仓库地址:github.com/ohmyzsh/ohm…

选择zsh作为默认的shell

# 查看是否已经安装了zsh
cat /etc/shells

# 修改默认shell为zsh
chsh -s /bin/zsh

# 查看当前使用shell
echo $SHELL

安装oh-my-zsh

  • 官方脚本一键安装

国内用这个脚本安装大概率超时

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • 官方提供的一键安装脚本(国内版)
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"

主题修改

  • 修改.zshrc里的ZSH_THEME即可

  • 常用主题推荐:

    • amuse
    • bureau

✅ gvm

通常在日常工作或学习中,我们的go项目都会有各种各样的版本,这就需要我们经常切换golang的版本,gvm就起到了这一作用

github仓库地址:github.com/moovweb/gvm

安装

通过官方脚本安装

# 安装bison
sudo apt-get install bison
# mac使用brew安装
brew install bison

# 执行脚本一键安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)"

手动安装

    1. 安装bison
    # 安装bison
    sudo apt-get install bison
    # mac使用brew安装
    brew install bison
    1. 将仓库整个clone下来,clone到~/.gvm目录下

我根据个人使用习惯,fork了一份: github.com/lewislk/gvm 主要改动为共用GOPATH,新增gvm_proxygvm_noproxy两个全局方法

# 切换到用户目录下
cd ~
# 下载源码 个人定制版安装:git@github.com:lewislk/gvm.git
git clone git@github.com:moovweb/gvm.git
# 移动到.gvm目录
mv gvm .gvm
# 删除版本控制
rm -rf .gvm/.git
    1. 执行如下脚本,初始化
GVM_NAME=".gvm"
echo "export GVM_ROOT=$HOME/$GVM_NAME" > "$HOME/$GVM_NAME/scripts/gvm"
echo ". \$GVM_ROOT/scripts/gvm-default" >> "$HOME/$GVM_NAME/scripts/gvm"
echo "[[ -s \"$HOME/$GVM_NAME/scripts/gvm\" ]] && source \"$HOME/$GVM_NAME/scripts/gvm\"" >> ~/.zshrc
source ~/.zshrc

切换下载源

如果不想换源,https://go.dev/dl也能正常下载,只是下载速度没这么快

参考源码:github.com/moovweb/gvm…

image.png

  • 执行如下命令更换下载源
export GO_BINARY_BASE_URL="https://mirrors.aliyun.com/golang"
# 或者使用
export GO_BINARY_BASE_URL="https://golang.google.cn/dl"

常用命令

# 查看已安装的版本
gvm list

# 查看可安装的版本,这个是查询github仓库的分支,有些时候github访问不通,有概率查询不到
gvm listall

# 安装某个版本(用-B会安装得更快)
gvm install go1.21.0 -B

# 临时使用某个版本
gvm use go1.21.0

# 更改默认版本
gvm use go1.21.0 --default

卸载gvm

  1. 删除~/.gvm目录
  2. 修改~/.zshrc,将gvm的导入脚本删除

✅ golang

安装

使用前面提到的gvm进行安装即可

配置

GOROOT 和 GOPATH 不用单独配置,gvm切换版本的时候,会自动修改这两个值

通过go env -w写入的配置,在Mac OS系统上,会保存到目录$HOME/Library/Application Support/go/env,在Linux系统上,会保存到$HOME/.config/go/env

    # 开启Go Mudule
    go env -w GO111MODULE=on
    # 设置依赖库的代理服务器
    go env -w GOPROXY="https://goproxy.cn,direct"
    # 控制私有库不走代理,同时不参与校验,没有可以不配置
    # go env -w GOPRIVITE="*.your_web_sit"
    # 校验的国内服务器
    go env -w GOSUMDB="sum.golang.google.cn"

✅ GoLand

jetbrains系列的go语言开发工具,大部分主流公司用这个

下载地址:www.jetbrains.com.cn/go/

常用插件

  • Translation: 翻译插件
  • Thrift Support(fork): Thrift插件
  • Trae AI: 字节出品的AI编程插件

配置

goimports(建议)

code-> style选择goimports,并勾选上Move all imports to a single declarationGroup packages from Go SDK->Move all packages to a single group

image.png

常用快捷键(Mac系统)

  • 格式化代码: Command + Option + L
  • 代码阅读Go Back: Command + Option +
  • 代码阅读Go Forward: Command + Option +
  • 删除当前行: Command + Del
  • 复制当前行: Command + D
  • 跳转到指定行: Command + L
  • 搜索文件: Command + Shift + O
  • 搜索内容: Command + Shfit + F

✅ VsCode

VsCode(Visual Studio Code)是一款由微软开发的免费、开源的代码编辑器,支持多种编程语言和开发环境

下载地址: code.visualstudio.com/

如果下载很慢,可以将下载链接中的 https://az764295.vo.msecnd.net 替换为 https://vscode.cdn.azure.cn

常用插件

  • Go: golang插件
    • 标识符: golang.go
  • Material Icon Theme: 文件图标插件
    • 标识符: pkief.material-icon-theme
  • Code Runner: 一键运行代码片段
    • 标识符: formulahendry.code-runner
  • GitLens: 非常好用的vscode git插件
    • 标识符: eamodio.gitlens
  • IntelliJ IDEA Keybindings: Jetbrains用户必备,快捷键统一
    • 标识符: k--kato.intellij-idea-keybindings
  • Go Mod Explorer: go依赖包查看
    • 标识符: r3inbowari.gomodexplorer
  • Draw.io: 画图工具
    • 标识符: hediet.vscode-drawio

配置

配置code命令

安装好之后,在vscode中,按下Command + Shift + P,输入Install 'code' command in Path方便终端通过code命令打开vscode

配置golang相关

1.安装Go 扩展依赖工具

‼️注意:通过这种方式只能安装最新版本的,不一定兼容你当前的go版本

  • 1、在 VSCode 中打开任意 .go 文件,右键选择 Go: Install/Update Tools
  • 2、在弹出的工具列表中,勾选按需勾选选项(包括 goplsdlvgoimportsgofumpt 等)
  • 3、点击“OK”,等待终端窗口显示 All tools successfully installed 提示
  • 4、按下 Cmd+Shift+P,输入 Go: Current GOROOT 和 Go: Current GOPATH 并回车,确认路径均正确
2.手动安装go扩展依赖工具
  1. 基础工具(必须):

    • gopls(语言服务器)
      • 安装命令 go install golang.org/x/tools/gopls@latest
    • dlv(调试器)
      • 安装命令 go install github.com/go-delve/delve/cmd/dlv@latest
    • goimports(代码格式化)
      • 安装命令 go install golang.org/x/tools/cmd/goimports@latest
  2. 开发效率工具(推荐):

    • gotests(测试生成)
      • 安装命令 github.com/cweill/gotests/gotests@latest
    • impl(接口实现)
      • 安装命令 go install github.com/josharian/impl@latest
    • staticcheck(代码检查)
      • 安装命令 go install honnef.co/go/tools/cmd/staticcheck@latest
  3. 辅助工具(可选):

    • goplay(代码片段测试)
      • 安装命令 go install golang.org/x/playground/cmd/goplay@latest

🌟🌟🌟以上都是给出的都是安装最新版的安装命令,那么如何找到适配当前golang版本的tool版本号呢,这里我以gopls为例,其余的触类旁通即可:

  1. 访问**golang.org/x/tools/gop…**
  2. 访问源码,如下图

image.png 3. 从高往低找到第一个go.mod是你需要的golang版本号的,就是你需要安装的版本了

image.png

3.设置当前项目使用的golang版本
  • 在项目根目录下,新增.vscode/settings.json,修改内容如下:
{
    "go.goroot":"/Users/lewis/.gvm/gos/go1.18.10",
    "go.gopath":"配置成你自己的GOPATH,如果不配置,读取环境变量中的GOPATH"
}
4.设置go的安全漏洞检查功能

按下Command + Shift + P,输入Open User Settings JSON,修改或添加如下内容 "go.diagnostic.vulncheck": "Imports"

4.配置启动&Debug
  • 1.切换到调试面板,根据提示创建一个launch.json文件
  • 2.选择 GO: Launch Package
  • 3.按F5启动运行/调试
  • 4.如果dlv版本太高,不兼容,可以去GOPATH里把dlv删除,重新安装一个适配版本的dlv,去github上 (github.com/go-delve/de…) 查看各个版本的go.mod中的go版本,下载适合的版本,比如我这里选择v1.21.0(这个版本适用最低g1.18版本的运行),执行 go install github.com/go-delve/delve/cmd/dlv@v1.21.0 安装即可

常用快捷键(Mac系统)

  • 列选: Command + Shift + L
  • 光标移动到每行最后: Option + Shift + I
  • 格式化代码: Option + Shift + F
  • 代码阅读Go Back: Control + -
  • 代码阅读Go Forward: Control + Shift + -
  • 搜索文件: Command + P
  • 搜索内容: Command + F
  • 搜索内容(全局): Command + Shift + F
  • 跳转到指定行: Control + G