手记

go开发,装个beego,安装下vscode

今天当我完成一个小地方的改动时。我静静坐下来,想把windows环境弄好。也回顾下beego的开发。之前我用linux虚拟机的开发环境。不方便,起初我认为需求少,写不了太多,再加上,没有IDE,能让我更熟悉代码。想法是不对的,还是需要IDE提升开发效率,虽然你会开发,但是IDE还是会让你更加记得清楚。

windows
命令行环境用的CMD、GitBash
编辑器 vscode 1.30.1
go version 1.8.3

装个beego

设置环境变量

GOROOT go的安装目录

GOBIN go的bin目录(存放编译后可执行文件,比如:安装beego框架的bee工具,bee执行文件会放到这里)

GOPATH 工作空间

比如我把:GOPATH设置成了

export GOPATH=/f/iProject/gopath #用这种方式可以灵活设置GOPATH。

安装框架

go get github.com/astaxie/beego

安装bee工具

image.png

创建项目

blog项目

bee new blog

跑起来

bee run,看到如下一行

 http server Running on http://:8080

修改端口号

额,由于我本地装了jekins ,它用的8080端口,我没有看到beego页面。另外8080也有可能是tomcat的端口。

那,最好别跟流行的端口重复,比如我们用1010。

ctrl+shift+f(也可以点放大镜) 搜 8080,能看到两个conf文件app.confconfig.go。能看出来我们改app.conf,这个文件是应用配置文件。config.go是框架配置文件。我们凭多年使用框架的嗅觉就能知道改app.conf了。

app.conf文件内容

appname = blog
httpport = 8080
runmode = dev

改成 1010即可。再次bee run

ok,我们访问到了

http://127.0.0.1:1010/

Ctrl+Space

有些人找不到settings.json。在你的右下角齿轮点击,选择设置。在设置界面不同版本可能界面不一样。我的版本,在右上角{},找到这一对括号,点击即可。

安装vscode go扩展

ctrl+shift+x 搜 go

image.png

安装完,右下角会提示你安装一些工具。点击install all

Installing 9 tools at F:\iProject\gopath\bin
  gocode
  gopkgs
  go-outline
  go-symbols
  guru
  gorename
  dlv
  godef
  goreturns

这些小工具是干啥的。

名称作用
github.com/nsf/gocodegolang 语言提示
github.com/uudashr/gopkgs/cmd/gopkgsgopkg是提供可以导入的可用go包列表的工具
github.com/ramya-rao-a/go-outline用于提取go源文件中声明的JSON表示形式的简单实用程序。
github.com/acroca/go-symbols用于从go source树中提取包符号的JSON表示的实用程序。如果名为src的目录位于该目录下,则该目录将被遍历以获取源代码,否则将遍历整个树。
golang.org/x/tools/cmd/guru回答有关go源代码问题的工具
github.com/sqs/goreturns此工具为不完整的Go返回语句添加零值返回值,以节省编写Go时的时间
golang.org/x/tools/cmd/gorenamegorename命令对go源代码中的标识符执行精确的类型安全重命名。。
github.com/rogpeppe/godef godef在Go source中查找符号信息, 给定源文件中的表达式或位置

在 安装的过程中发现只有一两个成功了,其他的失败,而且报了很多错。

Installing github.com/nsf/gocode SUCCEEDED
Installing github.com/uudashr/gopkgs/cmd/gopkgs FAILED
Installing github.com/rogpeppe/godef FAILED
…………………… 省略之后的报错信息

为什么会下载失败呢?

失败信息中你能看到  golang.org/x 这样的字符串。其实,需要科学上网(用代理)。OK!我之前配置过。有两种方案。

1.在你的命令行下载。比如:git bash可以。https_proxy='127.0.0.1:1080' go get -u -v  golang.org/x/tools/cmd/guru (https_proxy 为啥不是http_proxy呢?因为golang.org 是https)

2.我们把代理配置到vscode中,那这是最方便的,以后就OK了。

 {
    ……  "http.proxy": "http://user:pass@proxy.com:8080",  "https.proxy": "http://user:pass@proxy.com:8080",  "http.proxyStrictSSL": false
  ……
}

那我的就是

 "http.proxy":"127.0.0.1:1080",
 "https.proxy":"127.0.0.1:1080",

配置好之后,我们点开小铃铛,哪里有vscode 通知,有之前提示你安装的信息,点击下 install all。

image.png

但还是发现有三个安装失败了

Installing github.com/derekparker/delve/cmd/dlv FAILED
Installing github.com/rogpeppe/godef FAILED
Installing github.com/sqs/goreturns FAILED

我在命令行再试一个

$ go get -u -v  github.com/rogpeppe/godef
github.com/rogpeppe/godef (download)
github.com/rogpeppe/godef/vendor/golang.org/x/tools/go/internal/gcimporter# github.com/rogpeppe/godef/vendor/golang.org/x/tools/go/internal/gcimporterF:\iProject\task\src\github.com\rogpeppe\godef\vendor\golang.org\x\tools\go\internal\gcimporter\bexport.go:212: obj.IsAlias undefined (type *types.TypeName has no field or method IsAlias)

我在这个issue(https://github.com/golang/lint/issues/421)找到了原因,1.8版本不支持。

我在lint travis.yml看到 1.8跟1.9不在支持了。

image.png

不管了去官网下载了下载了go1.11.4。安装后,重新安装那些工具,ok,成功。这里注意一点重装之后GOPATH变了。但是当前的会话中都是可以用原来的。

对了,安装完毕的都会放在GOBIN中。即使你升级go版本,里面的第三方执行文件都会在(当然装的go.exe,gofmt.exe,godoc.exe是会重新安装一份)。

image.png

我们想要的功能。

ctrl+鼠标点击跳转到对应的代码。没问题有的。
ctrl+space 提示函数的参数,ok,没问题。 这里有个细节会跟语言切换的快捷键冲突哈。在vscode 敲着个快捷键不会切换语言,但是有函数参数的提示。

有些快捷键不好使可能是冲突的,还有一些插件的配置。可以看 《使用visual studio code开发Go程序 》

有个细节

安装的工具,源文件都会放到我的GOPATH下面的src中

image.png



作者:言十年
链接:https://www.jianshu.com/p/e2118c96feca



1人推荐
随时随地看视频
慕课网APP