再论 golang 环境配置建议
摘要
在之前的实践中满足开发环境所有特征的情况下进行了大量方式上的升级。经过8
次的版本升级,调整,爬坑,终于觉得这次版本升级足够有意义替代之前版本的建议。
我总觉得花一少部分的时间调整开发工具让自己的工作效率更高是非常值得的。
本次祭出大招Docker
来作为项目开发的主要脚手架。
并且我现在认为一个好的开发工具应该满足:
- 项目管理
- 快速文件跳转
- 自动语法检查
- 自动补全
- 查找定义
- 启动速度快
- 如果自己有需求的话插件可以随便写
- 灵活的运行配置
但是根据10个月的开发实践,除了上面这些之外还需要兼顾:
- 国内的网络环境
- 升级方便
- 随时随地快速部署自己的开发环境
- 能在线上服务器进行开发,随时随地升级版本修改代码。
Docker Registry
docker pull index.tenxcloud.com/philo/golangdev:1.2.1
docker pull lijianying10/golangdev:1.2.1
如果你还不会docker请参考这里。
Dockerfile
升级日志
1.2.1
- 修复vim下escape有时间延迟(解决方法见.vimrc最后一行)
- Ctrl+s保存的时候添加代码格式检查(其实就是追加命令 :GoMetaLinter)
- 更新golang到1.5.2 based on Debian 8
特征解释
兼顾国内网络情况
- 使用Dockerfile从国外VPS构建,然后推送到时速云备用。这种构建方式适合调试
- 推荐!如果您在国外没有VPS推荐使用时速云TCE来构建,从香港节点自动化构建随时能看到日志。参考文档。
升级方便
- 直接修改Dockerfile完成升级,调整From就可以调整底层系统使用。
- 可根据您的需要随时定制自己的版本。非常方便
随时能够快速部署
- Docker启动速度非常快
- 如果您没有Image在内网该Image也只有1GB大小可非常快速的传输到您的电脑。
- 国内准备好了加速源,详细查看Docker Registry部分。时速云确实挺快的。
- 如果您的工作站安装的是CoreOS or Rancher这种的Docker Linux 不但安装快,部署开发环境也是一瞬间完成。
能够在线上服务器进行线上代码调整
- 只要部署到线上服务器直接就可以使用。
- 老板再也不用担心我的集成新功能速度太慢了。
使用方法
文件跳转(Command-T)
快捷键: <leader>t
注意:<leader>
在我的vim配置里面是反斜杠,插件快捷键参考官方文档
项目管理(NERD_tree)
快捷键: M-u
注意: 插件快捷键参考官方文档
自动语法检查
触发: 每次保存文件
命令:
:GoMetaLinter, which invokes all possible linters (golint, vet, errcheck, deadcode, etc..) and shows the warnings/errors
例子中:Struct默认要求有注释,不然就会报警。对于常用的拼写比如说ID有严格的检查需要符合大众的拼写习惯。
其他正确性检查这里不再赘述。
自动补全
注意:在最上面会显示API文档,想关闭文档快捷键:M-c
查找定义位置
快捷键:M-n
Outline 快速跳转(Tagbar)
快捷键:M-p
快速关闭文件
快捷键:C-c
文件标签切换
快捷键: M-i
切换到上一个 快捷键: M-o
切换到下一个
保存文件
快捷键 C-s
注意: Stop tty已经被我关闭,不必担心tty被锁。
总结
在上面我总结的全部都是我加的快捷键用起来比较舒服的。如果您需要自己修改快捷键请fork我的github REPO。
如果您有任何改进意见请回复留言给我发Email。先谢过。
vim还有很多默认的快捷键这里就不再多说,最好的学习方法是想到自己有什么习惯或者需要快捷键支持去google找找。
- POCMON [Firefox 42.0|Ubuntu] 2015-12-16 14:58 4 赞 回复
-
这个世界的“大神”们,你们到底在用什么系统?XOS?LINUX?WIN?OTHER...
为什么:
讲LINUX故事,用的是“XOS”
讲WIN故事,用的是“LINUX”
讲XOS故事,用终端
当然,只有讲终端故事的,用的还是终端....