文档章节

几种语言原生开发环境构建之--Go语言

jackblues
 jackblues
发布于 2016/08/08 15:27
字数 385
阅读 46
收藏 1
Go

go安装

安装gvm版本管理工具

$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
$ gvm install go1.7
$ go version

安装构建工具

安装gb工具

$ go get github.com/constabulary/gb/...
$ mkdir src && mkdir src/someuser && mkdir src/someuser/gofirst  # someuser是用户名称, gofirst是项目名称

编写代码

  • 源码
//vi   src/someuser/gofirst/main.go  源码
package main

import (
	"fmt"
	"github.com/tabalt/gracehttp"
	"net/http"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "hello world")
	})

	err := gracehttp.ListenAndServe(":8080", nil)
	if err != nil {
		fmt.Println(err)
	}
}
  • 测试代码
 //vi   src/someuser/gofirst/main_test.go  测试代码
package main

import (
	"errors"
	"testing"
 )

func Division(a, b float64) (float64, error) {
	if b == 0 {
		return 0, errors.New("除数不能为0")
	}

	return a / b, nil
}
func Test_Division_1(t *testing.T) {
	if i, e := Division(6, 2); i != 3 || e != nil { //try a unit test on function
		t.Error("除法函数测试没通过") // 如果不是如预期的那么就报错
	} else {
		t.Log("第一个测试通过了") //记录一些你期望记录的信息
	}
}

安装glide包管理工具

$ curl https://glide.sh/get | sh

项目构建

  • 目录结构
   |-bin
   |-pkg
   |---linux-386
   |-----github.com
   |-------tabalt
   |-----wooz
   |-------http
   |---------vendor
   |-----------github.com
   |-------------tabalt
   |---------------gracehttp
   |-src
   |---wooz
   |-----http
   |-----somes
   |-------test
   |-vendor
   |---github.com
   |-----tabalt
   |-------gracehttp
   |---------gracehttpdemo
   |---src
  • 构建
$ glide init #初始化依赖到glide.yaml文件,并get依赖到vendor目录
$ glide   --debug up    #更新依赖
$ mkdir vendor/src  
$ mv vendor/g* vendor/src/
$ gb build #构建
$ gb test  -v # 测试或则 go  test src/test/*
  • 配置文件glide.yaml
package: .
import:
- package: github.com/tabalt/gracehttp
testImport:
- package: github.com/smartystreets/goconvey
  version: ^1.6.2
  subpackages:
  - convey
ignore:
   - wooz/somes     #此处忽略没有git管理的本地包名,让glide不用去github获取代码

项目源代码

© 著作权归作者所有

共有 人打赏支持
jackblues
粉丝 16
博文 33
码字总数 9669
作品 0
深圳
技术主管
私信 提问
W3C宣布HTML5规范正式定稿,跨平台开发还在路上

2012年12月19号,W3C宣布HTML5规范正式定稿。真是让人泪奔,千呼万唤始出来。。。给我们搞跨平台开发得注入了一针强心剂。 去年移动发布了统一开发环境UDE,一款跨平台开发的工具。这里跟大家...

且听风吟abby
2012/12/28
429
3
分布式大规模图数据处理引擎--Graph Engine

Graph Engine 是一个基于内存的分布式大规模图数据处理引擎,能够帮助用户更方便地构建实时查询应用和高吞吐量离线分析平台。在此之前,它在学术界更广为人之的名称是 Trinity。 Graph Engi...

红薯
2015/05/22
1K
0
Flutter与Dart 入门

Flutter简介 Flutter是google推出的,一个使用Dart语言开发的跨平台移动UI框架,通过自建绘制引擎,能高性能、高保真地进行Android和IOS开发。 Flutter是什么 Flutter是谷歌的移动UI框架,可...

JadePeng
08/10
0
0
Red language 0.5.3 发布,优化编译速度

Red language 0.5.3 发布,此版本加快了编译的速度;扩展了 vector! 数据类型;引入了 Redbin,现在支持三种格式:MOLD,MOLD/ALL,Redbin;可以从 Redbol 工作台编译;还有一些 bug 修复。详...

oschina
2015/04/27
1K
4
Red language 0.6.1 发布,Reactive 编程

Red language 0.6.1 发布,带来了通用的reactive编程框架及修复了大量bug。 增加的主要功能如下: 面向对象的reactive编程模型 Time! 数据类型 更新 View 引擎 更新 Draw DSL 更新 VID DSL ...

我不是AI
2016/06/30
2.5K
2

没有更多内容

加载失败,请刷新页面

加载更多

对接比特币钱包的PHP开发包

BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性: 利用第三方服务获取指定地址的utxo集合 离线生成消费裸...

汇智网教程
17分钟前
1
0
【自用】 VHD to VHDX

VHDX: 在VHD 2TB 的基础上提供 64TB的容量。 支持逻辑扇区大小为 4KB,和每块的大小为 256MB,来优化虚拟磁盘性能。 比VHD提供更高的安全性、可靠性和性能。 convert-VHD –path d:\Hyper-v...

Tensor丨思悟
30分钟前
1
0
30 岁转行做Python开发晚吗?而且是零基础

最近有小伙伴问小编,30 岁转行做Python开发晚吗? 小编想说,其实无论男女,只要想学,有这个动力,就直接去行动。无论年龄,无论性别,只要你想一直勇往直前,那么想做的就去做吧~这里有一...

糖宝lsh
40分钟前
10
0
详解Spring中的Profile

前言 由于在项目中使用Maven打包部署的时候,经常由于配置参数过多(比如Nginx服务器的信息、ZooKeeper的信息、数据库连接、Redis服务器地址等),导致实际现网的配置参数与测试服务器参数混淆...

watermelon11
55分钟前
4
0
phper必知必会(二)

  1.说说你对进程,线程以及协程的理解      进程:是系统进行资源分配和调度的基本单位,是基本操作系统结构的基础。进程是程序基本执行的实体。进程与进程之间是独立的,拥有完全独立...

SEOwhywhy
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部