开发系统: Mac OS X 10.11.5 EI Capitan 开发工具:node
基本想法就是:在集成开发环境下写代码比较轻松,可以自动完补定位什么的,愈发检查经过了之后,再在特权容器里编译测试运行,甚至,经过IDEA远程调试,就是gdbserver那一套。linux
想得简单,实际作了一下,出了gdb remote之外都还行,可是也有些不爽的地方。golang
用IntelliJ IDEA打开docker源码目录,剩下来的他怎么提醒就怎么作。docker
随便一打开一个go文件,它就提醒安装golang插件。那就点击安装。api
####而后提示没有Go SDK,那就安装Go SDK到本机:工具
brew install golang
而后把SDK路径配制成 /usr/local/Cellar/go/1.6.3/libexec
。 开发工具
####而后Go插件唧唧歪歪说缺乏GOPATH环境变量。 这就是恶心的地方了,这还算好的了,之前还须要另外一个GOROOT变量,通过进化,终于省掉了一个,但是还留着尾巴。别想这垃圾了,随便设定一个就好了。 测试
这个GOPATH其实至关于NodeJS的NPM管理包的node_modules目录。gradle
Docker的编译环境里甚至用的是export GOPATH="$(mktemp -d)"
,临时目录。你说这东西能有什么名堂,干脆都这样搞算了,就像Xcode那样,每一个Project见一个临时目录在外面,干干净净。插件
因此这东西压根就是多虑产生的废物,最简单的方法是在用户的环境变量里设定成~/go
之类的(目录本身先建一下),再多虑的那就在Project设定里本身指定一个目录。
####而后,就会发现源码里处处红色错误说import失败。 解决方法就是,IntelliJ一向的做风:在错误的地方点一下,行头会漂浮出一个解决方案,哈,就是下载软件包,固然不用每一个相同的错误都一个个点过去,而是执行漂浮菜单里的那个个“所有搞定”的命令。
####最后仍是有东西红色错误,说什么container.Container不存在。 Mac里没有的东西,只有linux/unix有,因此得把golang的编译器设定成linux。 就改一点:
####这下都安静了。
这个IntelliJ IDEA虽然吃内存启动慢,可是机器好时都不是问题,很智能,写起代码很舒服。
####Remote gdb呢? 没想到的是, IntelliJ IDEA虽然能轻松的调试本地的Go代码,但不能像Java那样远程调试到别的机器里的。
暂时也没找到远程gdb插件。仍是手动gdb命令行搞算了。
####看来Go语言的开发环境还处在初级阶段。 1.却少Java里相似于gradle之类的统一天下的自动加载package的机制。 2.却少remote debug,不利于调试容器中的东西。 3.垃圾环境变量GOPATH还没消除,至少搞成可选配置也好啊。要是没这强制要求估计自动package加载就行了,反正go get都有了。
总之让人上手就得折腾就很差。
不过golang自己不错,虽然丑陋可是把它想象成C语言的升级版就很以为赚大了。
2016/07/27:想起IntelliJ IDEA还有一个分支是C/C++开发环境,叫作CLion,里面极可能有gdb remote debug功能,回头试试看。