这篇原来是给公司里使用go开发的交流用的,主要是工具的安装,用markdown写的,发布了内部gitlab上,仓促发布到blog上面,也没改啥格式,现在整理一下,然后增加一点说明

基础开发工具

sublime text2下载

为何使用sublime text2?相信很多喜欢轻量级工具,开大量chrome网页以及使用大量小而精软件的开发者都喜欢editor吧,当然最主要是vim mode!

安装package control

打开后,按ctrl + ~打开命令行,或者在view->show console,复制如下代码,执行

import urllib2,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')

安装gosublime,配置

作为在st上开发go的基础,必装,然后在settings-user里写上如下配置,设定一个golang的workspace,这样就可以自动提示import包里的方法了

{
"env": {
"GOPATH": "~/workspace:$GS_GOPATH"
},
"autocomplete_builtins": true,
"autocomplete_suggest_imports": true
}

安装golint

golint用于检测语法问题,类似于jslint,但是它提示最多的无非是变量名不要用下划线啊,然后给出一个建议的变量名,要写注释啊...当然,写了注释之后,使用godoc -http=:8081 (端口随意)就可以在浏览器里看到刚才辛苦写的注释已经生成了文档

go get github.com/golang/lint
golint filename1 filepath1//可以使用多个参数指定目录或者文件

可将其部署到gosublime或者fswatch中去

安装goimporter

这是一个比gofmt更厉害一点的工具,它会自动修改import里的包,还是十分实用的,不会因为import里的东西没用,或者用了某一个package而没有import导致的错误提示,这是节省时间的好东西,积小成多

go get code.google.com/p/go.tools/cmd/goimports

编译好之后,设置一个ln -s到$GOBIN目录(或者复制过去),并且将gosublime的user-setting添加一行,好东西啊~

"fmt_cmd": ["goimports"]

注:ln -s 需要绝对路径

fswatch热编译

go get github.com/codeskyblue/fswatch

同样build好之后连接到$GOBIN下,或者/usr/bin之类目录,windows用户那建议放到$GOBIN下,编译的时候直接go build,不要对单独的fswatch.go编译,因为有多个package main文件

在需要目录执行fswatch,自动生成.fswatch.json
然后在command里写需要执行的命令,参考如下

{
"paths": [
"."
],
"depth": 2,
"exclude": [],
"include": [
"\\.(go|py|php|java|cpp|h|rb)$"
],
"command": [
"bash",
"-c",
"pgrep server | xargs kill && golint ./ && go build server.go && ./server"
],
"env": {
"POWERD_BY": "github.com/codeskyblue/fswatch"
},
"kill-signal": "KILL"
}

注意:command是自己写的,因为这个工具在我的Mac不能杀掉启动的进程,因此就手动加了kill的命令,具体如何修复还在研究源代码中~~

将golint并入到监控目录中去,方便修改内容

supervisor

[program:vehiclestat]
command=~/workspace/yourprogram
autostart = true
autorestart = true
startsecs = 5
user = root
redirect_stderr = true
stdout_logfile = /var/log/supervisord/yourprogram.log

比较实用的监控进程的工具,相比较用nohup ./xxx &还是比较放心的

其它

设置当前目录为$GOPATH

alias gopath='export GOPATH=`pwd` && echo $GOPATH'

尤其适合多个不同目录下的go项目,在每个项目下运行一次gopath,就设置好了当前的gopath,十分方便

总结:

不知为何,我前一版本居然被移出首页,说是要原创,这东西就是我原创的啊,虽然工具都是别人的,但整合这些东西也是花了一定精力的啊!!!

虽然有idea + goplugin比较好的方案,但还是比较喜欢手动配置,这样整一套下来,go的开发环境比较完整了,还有一个蛋疼的就是调试,难道调度还要不停地log.Println()吗???

打造完美的go开发环境的更多相关文章

  1. Vagrant - 打造跨平台的一致开发环境

    官网 参考资料 借助 Vagrant ,可以使用 Vagrantfile 文件自动化虚拟机的安装和配置流程,方便快速的打造跨平台的统一开发环境. 1. Vagrant 是啥 Vagrant 用于构建及 ...

  2. VS Code打造一个完美的Springboot开发环境

    对于使用Springboot环境开发java应用,首选IDE还是IntelliJ IDEA(2018),当前版本已经很流畅了,现在开发用的电脑配置基本都能够很6的跑起来,IDEA用起来真心爽啊,比Ec ...

  3. 利用 WSL 在 Windows下打造高效的 Linux 开发环境

    WSL-Windows Subsystem for Linux 介绍 The Windows Subsystem for Linux lets developers run Linux environ ...

  4. 造完美的go开发环境

    http://www.cnblogs.com/qgymje/p/3912259.html   这篇原来是给公司里使用go开发的交流用的,主要是工具的安装,用markdown写的,发布了内部gitlab ...

  5. 打造Ubuntu下Java开发环境

    一.了解JDK 不同的java软件和类库对jdk有不同要求,在了解如何安装Java之前,让我们快速地了解JRE.OpenJDK和Oracle JDK之间的不同之处. JRE(Java Runtime ...

  6. 打造万能的Python开发环境

    一.下载与安装 python的版本众多,主流的分2和3,还有各种小版本. django等也有众多版本. 在我们开发过程中,为使用不同的版本测试,在一台电脑上进行只能进行替换. 为了简化.我们使用con ...

  7. [ubunut]打造Ubuntu下Java开发环境 (转)

    http://www.cnblogs.com/wufengtinghai/p/4542366.html 遇到困难: A Java Runtime Environment (JRE) or Java D ...

  8. 搭建Android手机系统开发环境(转)

    Android作为近来表现十分强劲的手机操作系统,越来越受到开发人员的青睐,本篇文章将带领大家从零开始打造属于自己的开发环境. 一.JDK下载安装 JDK全称是Java Development Kit ...

  9. 打造TypeScript的Visual Studio Code开发环境

    打造TypeScript的Visual Studio Code开发环境 本文转自:https://zhuanlan.zhihu.com/p/21611724 作者: 2gua TypeScript是由 ...

随机推荐

  1. YII学习,实现基于数据库的后台登录,用户体系.

    上次研究Yii框架写到了要完成用户登陆系统.这次接着上次的写. 参考官方权威指南和参考手册,外加各种博客文章.历尽千辛万苦,数遍天上滴星星.完成了后台用户登录.这里用到了YII框架的 CUserIde ...

  2. SQL Server 引起磁盘IO的原因

    1. 要访问的数据不在内存中.这会引起IO 2. update/delete/insert 会把变化写入数据文件.还要记录日志 : 3. checkpoint 4. lazy writer 5. db ...

  3. docker 镜像管理

    docker:/root# docker search centos NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official bui ...

  4. 12款最佳Linux命令行终端工具

    12款最佳Linux命令行终端工具 如果你跟我一样,整天要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件,那你真是找对了文章.我这里搜集了一些非常有趣的终端软件 ...

  5. wireshark 过滤条件汇总

    原文地址:http://blog.const.net.cn/a/9340.htm 一.针对wireshark最常用的自然是针对IP地址的过滤.其中有几种情况: (1)对源地址为192.168.0.1的 ...

  6. win7 Visual Studio 2008 安装程序时出现“ 加载安装组件时遇到问题。取消安装。”处理方法

    win7 Visual Studio 2008 安装程序时出现“ 加载安装组件时遇到问题.取消安装.”处理方法 vs2008试用期到期,卸载.重新安装都会出现“ 加载安装组件时遇到问题.取消安装.”无 ...

  7. Python sql数据的增删改查简单操作

    1.insert import mysql.connector import os import codecs #设置数据库用户名和密码 user='root';#用户名 pwd='root';#密码 ...

  8. AJAX提交到Handler.ashx一般处理程序返回json数据 (字符串拼接方式)

    <%@ WebHandler Language="C#" Class="Handler" %> using System; using System ...

  9. react-native 自己搭建热更新服务器

    使用到的框架是 react-native-update react-native-update-cli 这个应该执行热更新的时候的终端命令. 通过这个,自己搭建一个热更新的服务器.

  10. windows平台HTTP代理server搭建(CCproxy)

    HTTP代理(CCproxy) 一.拓扑图 二.CCproxy的安装和配置 1.安装CCproxy (1)下载CCproxy无线破解版(没破解的都仅仅支持最多三个用户同一时候连接). (2)按说明安装 ...