go语言工程约定,分包和编译
go-lang已经发布了go1,前段时间看了一下go语言的教程,就喜欢上了这门语言,但使用多个文件编译是碰到一些麻烦,引用出错编译通不过,google之找到了这篇教程https://golang.org/doc/code.html,我按自己的理解记录一下,英文好的童鞋还是看原文吧! go语言可以用makefile,也可以按他的约定来直接编译。约定其实比较简单,go语言是这么来配置他的工程的 prjDir # 工程根目录 bin/ hello ...阅读全文
gopush-cluster 架构
前言 gopush-cluster是一套golang开发的实时消息推送集群,主要分享一下开发这套系统的想法和思路。 架构 主要分为三个模块来开发,comet/web/message。 comet 主要负责消息排队、消息推送以及和客户端的连接维护;整套系统依据是消息ID顺序原则获取消息(客户端本地获取最大的消息是1,那么之后获取的消息就是大于1的,获取离线消息的时候也要从上次最大消息ID来获取),因此消息推送以后需要在comet中排队然后发起RPC给message实现存储。 message 主...阅读全文
Golang的百科全书--the way to go
比较零乱的学了一段时间的golang,一直觉得条理化的信息太少。 最近看到《the way to go》,才发现这就是我所需要的营养大餐,以后再找一本Go的标准库详解就完美了。 本书居然有中文版@无闻 @unkown,这是真正的活雷锋,他还写了个Git服务器–Gogs,我已经在公司里给我个项目使用了。可惜中文版的进度有点慢,一般人等不及 好在此书英文版也不难看,示例代码足够多。另外,亚马逊上的书评也说此书的作者似乎不是以英文为第一母语的,所以里边的文笔不好,而这正好合适我等读者!阅读全文
学点go语言(收集记录)
胡乱中看到go语言作为服务端编程语言,在应付高并发等场景下有自己独特的间接,且作者之一也是c语言的作者,google产出的语言等一堆的理由,让自己不得不禁想学习一下,首先推荐一下许式伟的《go语言编程》了,且作者也是第一个“吃螃蟹”的人,在此还收集了一些电子资源, GoLang.Org: http://go.hatter.me/ Play.GoLang.Org: http://hatter.me/go/play/ http://code.google.com/p/golang-china/ ...阅读全文
windows下用notepad++配置go语言开发环境
我在前一篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/02/09/windowsGo.html)中介绍了怎么在windows下安装go语言,今天我要介绍的是怎么用notepad++配置go语言开发环境。 一、准备工作: 1、安装go语言; 2、将go/bin目录加入环境变量; 3、安装notepad++; 二、配置notepad++支持go语言语法高亮 1、下载notepad++的go语言支持包(http://notepad-pl...阅读全文
以io.Writer为例看go中的interface{}
阅读该文后的一些理解 1 io.Writer接口 io.Writer接口有如下定义 package io type Writer interface { Write(p []byte) (n int, err error) } //根据go中接口的特点,所有实现了Write方法的类型,我们都说它实现了io.Writer接口。 2 somepkg.abc类型实现了io.Writer接口 package somepkg type Abc struct { i...阅读全文
golang 里面使用oracle驱动包访问oracle DB
1.首先在github上面下载包文件 https://github.com/tgulacsi/goracle 2.设置的编译环境 不设置编译环境,不然go build 会出现: # github.com/tgulacsi/goracle/oracle src/github.com/tgulacsi/goracle/oracle/connection.go:23:17: error: oci.h: No such file or directory src/github.com/tgulacsi/...阅读全文
Let's go! (Ubuntu下搭建Go语言环境)
自2009年Go语言发布以来,我一直在关注Go语言,如今Go语言已经发展到1.2版本,而且也收到越来越多的人关注这门语言。Go语言设计的目的就是为了解决执行数度快但是编译数度并不理想(如C++)以及编译速度快但执行效率不佳(.NET、Java),或者开发难度低但执行速度一般的动态语言这一问题。所以说,Go语言的特点是:快速编译,高效执行,易于开发。 好了,跳过那些框框条条的craps, 让我们直接先从Go语言的环境搭建开始,由于最近偏爱Ubuntu,在加上作为一门开源语言,在Linux上从源代码...阅读全文
mgo中DBRef-数据添加测试
2014-1-25 在设计mongo数据库时遇到这样一个问题,日志信息表需要引用人员信息表的数据.如果是结构化数据库,基本上不用想太多的东西.由于刚接触非结构化数据库,按着书上的理解由于日志数量较多,如果采用嵌入式数据的话会产生太多的可变因素(不知道这样说是不是合理,比如说人员经常在各个部门乱跳则会造成数据经常变更 ^_^!),所以需要用到引用数据方式.今天先写了个插入数据的测试DEMO,有时间再补上个查询. package main import ( "crypto/rand" "...阅读全文
go - 变量和常量
1.定义变量 goLang中定义变量的方式很多 先声明再使用;如果定义的变量未使用编译时会报错 a. /*定义单个变量*/ var varName type //定义一个 type 类型的变量 varName varName = value //给变量 varName 赋值 var varName type = value //定义变量并赋初始值 /*定义多个变量*/ var varName1, varName2 type /...阅读全文
golang的apns证书文件转换(P12 to Pem)
golang 不支持p12解析,所以需要转换成pem 网上有一些,但都不能实现自动转换(非交互模式)。以下是非交互模式的转换: //生成临时文件cert.pem,注意passin 和 passout 选项 openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12 -passin pass:P12_PASS //生成临时文件key.pem openssl pkcs12 -nocerts -out key.pem -in cert.p12 ...阅读全文
Ubuntu下安装go语言
Ubuntu下安装go语言 Go语言是Google开发的一个开源项目,目的之一是为了提高开发人员的编程效率。Go语言语法灵活,简洁,清晰,高效。它的并发特性可以方便的用于多核处理器和网络开发,同时灵活新颖的类型系统可以方便的编写模块化的系统。go可以快速编译,同时具有垃圾内存自动回收功能,并且还支持运行时反射。go十一个高效、静态类型,但是邮局有解释语言的动态类型特征的系统级语法。 由于只介绍Ubuntu下386的go语言安装方法,其他平台的可以到http://code.google....阅读全文
Golang学习之GOROOT、PATH、GOPATH及go get
1. GOROOT GOPATH 及 PATH 设置 a.添加系统变量GOROOT:安装完Go第一件事就是设置GOROOT。例如我的Go安装在C:\Go目录,则要设置 GOROOT = C:\Go b.修改环境变量PATH:将%GOROOT%\bin加到环境变量PATH里面,这样就可以直接在dos命令模式下任意目录运行%GOROOT%\bin目录下的程序 如:go.exe godoc.exe c.添加系统变量GOPATH:GOPATH是用来设置包加载路径的重要变量。可以设置多个...阅读全文
【原】Go语言及Web框架Beego环境无脑搭建
本文涉及软件均以截至到2013年10月12日的最新版本为准 1、 相关软件准备: 1) go1.2rc1.windows-386.msi,对应32位windows系统安装使用 下载地址: https://code.google.com/p/go/downloads/detail?name=go1.1.2.windows-386.msi 2) go1.2rc1.windows-amd64.msi,对应32位windows系统安装使用 下载地址: https://code.goog...阅读全文
go语言四——脚本一
工作中用go语言写了点脚本代替python的功能,涉及文件读写,记录如下 package main import ( "os" "os/exec" "log" "bytes" "strings" "bufio" //文件读写 "strconv" // "fmt" ) const pwd = "/usr/local/nginx/htdocs/" func get_logn...阅读全文
go-mysql,一个易用的mysql接口框架实现
介绍 go-mysql是一个用go写的mysql driver,使用接口类似于go自身的database sql,但是稍微有一点不同,现阶段还不支持集成进go database/sql中,但实现难度并不大,后续可能会接入。 go-mysql最先开始于mixer(一个用go实现的mysql proxy)中,随着mixer的演化,我觉得有必要将其mysql模块独立出来使用。对于mixer,后续我会详细介绍。 为什么要自己实现一套新的接口,而不是go自身的sql接口呢?最主要的原因在于我很...阅读全文
webqq go语言的实现
最近开始学习go语言,觉得非常有趣,便从http入手,写了个web挂机程序。适用go版本r59-201108最新版本,低版本编译通不过。 // webQQ.go /* *GO语言讨论群:102319854 *GO语言官网:www.golang.org *作者: 不死爬虫 *主页: http://www.gososo.org http://www.daohang361.com/news/index.html *见证的轨迹 *乱码的解决方法 * 1、dos执行chcp 65001 //...阅读全文