再论 golang 环境配置建议

简介:

再论 golang 环境配置建议


摘要

在之前的实践中满足开发环境所有特征的情况下进行了大量方式上的升级。经过8次的版本升级,调整,爬坑,终于觉得这次版本升级足够有意义替代之前版本的建议。

我总觉得花一少部分的时间调整开发工具让自己的工作效率更高是非常值得的。

本次祭出大招Docker来作为项目开发的主要脚手架。

并且我现在认为一个好的开发工具应该满足:

  1. 项目管理
  2. 快速文件跳转
  3. 自动语法检查
  4. 自动补全
  5. 查找定义
  6. 启动速度快
  7. 如果自己有需求的话插件可以随便写
  8. 灵活的运行配置

但是根据10个月的开发实践,除了上面这些之外还需要兼顾:

  1. 国内的网络环境
  2. 升级方便
  3. 随时随地快速部署自己的开发环境
  4. 能在线上服务器进行开发,随时随地升级版本修改代码。

Docker Registry

  
  
  1. docker pull index.tenxcloud.com/philo/golangdev:1.2.1
  2. docker pull lijianying10/golangdev:1.2.1
AI 代码解读

如果你还不会docker请参考这里

Dockerfile

点击这里查看Dockerfile

升级日志

1.2.1

  • 修复vim下escape有时间延迟(解决方法见.vimrc最后一行)
  • Ctrl+s保存的时候添加代码格式检查(其实就是追加命令 :GoMetaLinter)
  • 更新golang到1.5.2 based on Debian 8

特征解释

兼顾国内网络情况

  1. 使用Dockerfile从国外VPS构建,然后推送到时速云备用。这种构建方式适合调试
  2. 推荐!如果您在国外没有VPS推荐使用时速云TCE来构建,从香港节点自动化构建随时能看到日志。参考文档

升级方便

  1. 直接修改Dockerfile完成升级,调整From就可以调整底层系统使用。
  2. 可根据您的需要随时定制自己的版本。非常方便

随时能够快速部署

  1. Docker启动速度非常快
  2. 如果您没有Image在内网该Image也只有1GB大小可非常快速的传输到您的电脑。
  3. 国内准备好了加速源,详细查看Docker Registry部分。时速云确实挺快的。
  4. 如果您的工作站安装的是CoreOS or Rancher这种的Docker Linux 不但安装快,部署开发环境也是一瞬间完成。

能够在线上服务器进行线上代码调整

  1. 只要部署到线上服务器直接就可以使用。
  2. 老板再也不用担心我的集成新功能速度太慢了。

使用方法

文件跳转(Command-T)

快捷键: <leader>t

注意:<leader>在我的vim配置里面是反斜杠,插件快捷键参考官方文档

项目管理(NERD_tree)

快捷键: M-u

注意: 插件快捷键参考官方文档

自动语法检查

触发: 每次保存文件

命令: 

  
  
  1. :GoMetaLinter, which invokes all possible linters (golint, vet, errcheck, deadcode, etc..) and shows the warnings/errors
AI 代码解读

例子中: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找找。




本文来自云栖社区合作伙伴“Linux中国”

原文发布时间为:2013-04-02.

相关文章
2023年最新无脑安装 Go lang 环境配置并编写、运行、打包第一个 Golang 程序详细步骤,附带图文教程
GO语言也称为Golang,由谷歌出品,随着云计算的发展而不断壮大,近年来,使用GO语言的程序员越来越多,GO程序员一般被称为GOpher。由于博主硬盘空间较为充足,不考虑移动软件安装目录,需要者请自行寻找方法,本文为无脑操作。
469 0
Golang 环境配置与应用编译
这篇文章主要是说一下 Go 的工作目录与编译的规则,初步体验一下 Go 的大道至简的魅力。
330 0
Golang 环境配置与应用编译
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
|
2月前
|
Go 语言入门指南:切片
Golang中的切片(Slice)是基于数组的动态序列,支持变长操作。它由指针、长度和容量三部分组成,底层引用一个连续的数组片段。切片提供灵活的增减元素功能,语法形式为`[]T`,其中T为元素类型。相比固定长度的数组,切片更常用,允许动态调整大小,并且多个切片可以共享同一底层数组。通过内置的`make`函数可创建指定长度和容量的切片。需要注意的是,切片不能直接比较,只能与`nil`比较,且空切片的长度为0。
Go 语言入门指南:切片
|
2月前
|
公司局域网管理系统里的 Go 语言 Bloom Filter 算法,太值得深挖了
本文探讨了如何利用 Go 语言中的 Bloom Filter 算法提升公司局域网管理系统的性能。Bloom Filter 是一种高效的空间节省型数据结构,适用于快速判断元素是否存在于集合中。文中通过具体代码示例展示了如何在 Go 中实现 Bloom Filter,并应用于局域网的 IP 访问控制,显著提高系统响应速度和安全性。随着网络规模扩大和技术进步,持续优化算法和结合其他安全技术将是企业维持网络竞争力的关键。
56 2
公司局域网管理系统里的 Go 语言 Bloom Filter 算法,太值得深挖了
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等