之前使用的是goland,定位代码、代码补全、代码测试、git版本管理一应俱全,使用方便,但是奈何内存占用太大,平时使用的的项目又比较多,所以决定转战vscode。文章来源:https://www.toymoban.com/news/detail-456508.html
在使用vscode开发的过程,目前碰到了三个问题:文章来源地址https://www.toymoban.com/news/detail-456508.html
- 查看源码时,无法根据接口定义查找到所有的实现。
- goland的imports顺序是可以设置的,而vscode只能用goimports的残废设置,不会自动分组
- go的imports顺序在goland中可以通过
设置-Editor-Go-Imports
对引入进行配置。 - 我理想的go引入分组是:标准库-本地包-golang包-第三方(包括重命名的)-公司包。(其实goland也做不到)
- 所以,我目前定下一个小目标,闲下来时开发一个vscode的插件,功能是当文件保存时自动分组imports(base on
Group Imports for Go
)打算自己fork做一个,然后也给源插件提个pull request。
- go的imports顺序在goland中可以通过
- 在公司使用golang进行开发,需要单元测试保证代码质量。
- 由于单元测试有的函数需要mock,一部分的mock工具在go test时需要使用
-gcflags=-N -l
的运行标识表明运行不需要重排序。 - 但是由于vscode使用的test工具在运行时也会设置
build-flags
,有可能会覆盖用户设置的标识(github有相关的话题:vscode设置gcflags无效的问题),所以一个很奇怪的点是,明明复制go test指令到bash可以直接运行,但是t’m’d点Test方法隔壁的箭头就是不能运行。
解决: - 所以我也很t’m无语,目前用vscode就只能先点箭头,然后复制指令到bash运行了。
- 由于单元测试有的函数需要mock,一部分的mock工具在go test时需要使用
到了这里,关于使用vscode写golang的一些大坑(单元测试、goimports、接口实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!