
效率还是折腾
不能安心的写代码,还能干什么?
不知道为什么,当要认真的去写点代码的时候,总会被杂七杂八的事情打扰,或许习惯了一种工作模式后,就很难去改变。
事情的原委是这样的,我开始用go写代码的时候,发现原来在VS Code下使用GO的插件非常好用,配合使用TabNine写代码真的会飞。结果,插件告诉我没能更新gopls,需要更新后才能进行代码提示,so,我去更新gopls,这个我知道是必须翻墙才能更新的,而google已经在github上有镜像,目前不能翻墙只能依赖github才能更新,郁闷的是在镜像下使用了mod模式,使用go build命令都会报以下错误:
go: github.com/sergi/go-diff@v1.0.0: Get "https://proxy.golang.org/github.com/sergi/go-diff/@v/v1.0.0.mod": dial tcp [2404:6800:4008:802::2011]:443: i/o timeout
原来即使使用了镜像,模块的加入还是去找golang.org去了,那怎么办呢?居然有镜像就不怕,不就是用模块的思路去解决好了,修改go.mod文件。
module golang.org/x/tools
go 1.11
replace (
golang.org/x/net => github.com/golang/net latest
golang.org/x/mod => github.com/golang/mod latest
golang.org/x/sync => github.com/golang/sync latest
golang.org/x/xerrors => github.com/golang/xerrors latest
)
require (
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee
golang.org/x/net v0.0.0-20190620200207-3b0461eec859
golang.org/x/sync v0.0.0-20190423024810-112230192c58
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898
)
加入replace方式,将golang.org替换为github就可以了。
编译完成后,打开VS Code后,以为能开始快速编码了,结果提示了这个错误:
按照原来的经验,就是把错误读一读,错误的提示让我去看如何在项目中设置模块,Go Modules。我读了,我发现我的配置没有错误啊,是正确的呀,还将配置文件修改了一下:
GO111MODULE="auto"
为了验证问题,我设置将模块设置为了不可用:
GO111MODULE="off"
结果问题依旧,所以就怀疑GO插件的配置问题,在配置文件中加入了GOPATH后,依然报错,猛的发现,会不会是插件的一个bug呢?因为一直提示,不能关闭,而且对于我这种有洁癖的人来说,一定要把这个问题解决,写代码才会舒服。去github上查阅了一把issues3055,还真的有,我去,甚至也有关闭的issues3076。对此,也给go的官方提出了这个问题issues37279。对此,知道了这个问题的原由,好吧,我今天还真不能解决了。
突然,发现我今天要写的代码还没写呢?怎么时间就这样过去了。原来我去折腾了一把IDE的问题了,在此中途的时候,我就使用emacs来写代码了,感觉沉浸在代码中,虽然没有那么强的代码提示,但是TabNine的插件也能正常使用。我想,为什么会那么依赖IDE的功能呢?是什么原因?是习惯,还是懒惰?这个来回折腾了一下午,是对还是错?
写代码真的需要这些功能吗?我不断问自己。这些插件功能的确在效率上有一定的提升,但是过分依赖就是病了,是不是没有这个功能就不能写代码了,这个才是问自己的,所以折腾得建立在一个时间线上,如果不能完成规定的时间任务,那么折腾就是浪费时间。关注点应该在优先级高的任务上,突然也让我想起一个事情,本来想用c++写个hello world,发现去安装各种依赖关系,最后对c++非常郁闷,为什么会那么难?不就入门的代码就要折腾了一天,才发现基础的搭建会那么浪费时间。
所以,说什么简单不简单,先源码下载下来,编译通过了在说。然后在去耗这个时间,如果刚刚开始就困难重重,就换一种方式吧,体验感真的很重要!