文档章节

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

jackblues
 jackblues
发布于 2016/08/08 15:27
字数 385
阅读 40
收藏 1
点赞 0
评论 0
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
博文 28
码字总数 9669
作品 0
深圳
技术主管
分布式大规模图数据处理引擎--Graph Engine

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

红薯 ⋅ 2015/05/22 ⋅ 0

Red language 0.5.3 发布,优化编译速度

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

oschina ⋅ 2015/04/27 ⋅ 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

Scala入门之工具篇

我初次接触Scala时,由于对Scala相关的工具不够熟悉,学习的效率低下。所以本文主要介绍Scala编程所必备的工具。一般而言,我们接触一门编程语言,都需要接触这门语言的编译器、REPL、构建工...

碎镜 ⋅ 2017/11/29 ⋅ 0

Gradle学习(一)——简介

基础 依赖管理是基于apache Ivy的,任务和构建是基于ant的,脚本是用groovy的,如果你之前已经非常了解这三样的话,那么你已经学会了30% 优点 比之前的构建系统更优的有几点: 1. 更为强大的...

lastsweetop ⋅ 2017/12/19 ⋅ 0

开源公司黄页之 Google 开源软件推荐

在企业使用开源和贡献开源方面,Google一直是行业的典范。一直以来,Google都在极力推广和倡导开源,并发布了一系列开源项目。如果没有开源软件,Google也难以达到今日的成功。开源中国社区目...

oschina ⋅ 2016/07/08 ⋅ 13

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

安装目录 假设安装目录为 /home/user/soft/ lua语言安装 lua包管理器安装luarocks(https://github.com/keplerproject/luarocks/wiki) lua项目构建 更详细配置,参见 lua测试工具安装 安装bus...

jackblues ⋅ 2016/08/02 ⋅ 0

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

构建工具安装stack 文档说明 快捷安装 或者下载压缩包安装 项目构建 环境参数配置 全局~/.stack/config.yaml 具体配置_ 默认仓库 清华仓库源镜像

jackblues ⋅ 2016/08/03 ⋅ 0

Google正式推出Dart,结构化的Web编程语言

Google在官方博客正式宣布推出Dart语言,Google称之为早期预览版(early preview)。 Chrome浏览器V8 JavaScript引擎的创造者,也是Dart语言项目的领导者Lars Bak在今天于丹麦举行的Goto会议...

DustLeon ⋅ 2011/10/12 ⋅ 0

号称“编程语言年”的 2017 ,都发生了哪些大事?

Infoworld 消息, 2017 年,Java、JavaScript、Kotlin、TypeScript 、 C ++ 等编程语言的特性都迎来了较大变化。总的来说,这一年不管是老牌的语言,还是新兴语言,都有了不同程度的改进。 ...

王练 ⋅ 01/03 ⋅ 13

没有更多内容

加载失败,请刷新页面

加载更多

下一页

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 16分钟前 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 48分钟前 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部