纵享丝滑之用Goland远程开发

纵享丝滑之用Goland远程开发

不知道各位在win下写go的小伙伴有没有遇到过这样的问题,每次用goland写完代码后,编译运行都要等很久!但哪怕我本地开linux的虚拟机都比本地直接编译快很多!这让我很不爽,所以我也转用goland来远程开发(也就是在本地用IDE写代码,在服务器上编译运行)。经过一番尝试之后,现在go写起来简直不要太丝滑!所以把我的一些Goland配置的一些经验分享给大家。

为什么我这么钟意远程开发呢?自从在长亭实习leader告诉我可以VScode用ssh远程写代码之后,我就再也回不去了。因为很多时候开发的项目是需要跑在特定的环境里的。这时候就需要把整个项目打包迁移过去,有时本地代码稍作了改动又得把修改后的代码弄过去,这样非常麻烦。我印象很深刻,当时写基线检查的时候,因为特定环境的需要,项目代码是跑在虚拟机的docker里的,只能先把docker里的项目路径挂载到虚拟机里,再用VScode远程写代码,不过确实方便了很多!

这里我先说一下我的环境配置,因为既然是远程开发,就会有Client和Server。

  • 本地windows环境 Goland
  • 服务端 Centos
  • 两端同时安装golang,最好是相同版本

因为我原本的想法是用golang写一些Web Server的东西,可能会占带宽一点,所以我就用的腾讯云的轻量应用服务器,我个人蛮推荐香港节点的,30m的带宽而且价格便宜。最重要的是腾讯云的香港轻量是直连的,没有绕路延迟很低!

我个人通常用的是LAMP的环境。轻量服务器的最大的好处就是开箱即用,轻运维把主要的时间放在自己需要用到的业务即可。

先说一下服务端的配置,直接用yum安装golang。

yum install -y golang

Golang 国内加速镜像.

众所周知,国内网络访问国外资源经常会出现不稳定的情况。 Go 生态系统中有着许多中国 Gopher 们无法获取的模块,比如最著名的 golang.org/x/…。并且在中国大陆从 GitHub 获取模块的速度也有点慢。这里linux和windows上的操作是一样的。

# 启用 Go Modules 功能
go env -w GO111MODULE=on

# 配置 GOPROXY 环境变量,以下三选一

# 1. 七牛 CDN
go env -w  GOPROXY=https://goproxy.cn,direct

# 2. 阿里云
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

# 3. 官方
go env -w  GOPROXY=https://goproxy.io,direct

通常我是会建一个专门写go的项目目录,这里就叫golab吧。并且采用go mod 来进行包管理。

mkdir ~/golab && cd ~/golab
go mod init golab

此时服务端的配置就完成了,接下来是goland的配置了。在win上安装golang的过程就不说了。另外用go mod来管理包就不用管gopath什么的了。

在设置中找到Go modules给勾选上。

我是用E:/golab来作为本地的项目路径。所以接下来就是配置ssh了,通过ssh连接服务器。

然后再配置我们的sftp,这样就可以让本地和服务器同步代码文件了。

指定目录映射。因为上面在Root Path那里指定了/root/golab。那么在映射的时候把Deployed path设为/即可。

配置好后,别忘了点右下角的Apply让其生效!然后在Tools中点start session就能进入我们的服务器终端了。

把自动上传勾选后每次切换到终端时就自动同步到服务器了非常方便!

接下来的就是让远程开发更加丝滑的小技巧了,设置快捷键。这里是我日常使用总结出来的。因为远程开发每次写了代码都要切换到ssh终端里编译运行。如果直接用ctrl+tab来切换是非常不爽的。

我个人推荐把terminal的快捷键设置为Alt+Z,个人使用习惯而定。还有设置连接ssh的快捷键。

一定要设置了这两个快捷键,别问为什么。试了你就知道用Goland远程开发有多么丝滑了。golang的代码直接在服务器上秒编译运行。而且远程开发有个好处就是项目代码在服务器上,哪怕我换了个办公环境,只要装好goland,永远都是同步的。

自从这样配置之后,我每天写golang代码不知道有多丝滑,根本停不下来。所以推荐各位写go的小伙伴也试试。最后再推荐搭配腾讯云的轻量服务器,项目写好无需再部署直接跑起来,实在是太香了!

赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。