go install 的工作方式

go install 是Go语言提供的非常方便的编译工具。但是最近在项目使用过程中遇到一些问题,在这里记录一下。 问题 通常情况下,修改了代码之后使用go install编译,运行,都能得到正确的结果。 但是有时候发现,修改了源代码,却没有被重新编译,于是导致许多诡异的问题。 为了弄清楚这个问题,下面用一个简单的例子来做个实验。也顺带把go install的工作方式简单介绍一遍。 简单的代码 现在有一个名叫hello的项目,目录在/tmp/gomain/src/hello/hello.go pa...阅读全文

2014-08-13 11:18 tiaotiaoyly
阅读:12848 评论:0

go channel的一些技巧

1. 一个已经被关闭的 channel 永远都不会阻塞。当一个 channel 一旦被关闭,就不能再向这个 channel 发送数据,但仍然可以尝试从 channel 中获取值。 2. 已经被关闭的 channel 会实时返回。 package main import ( "fmt" "sync" "time" ) func main() { const n = 100000 finish := make(chan bool) var done sync.Wai...阅读全文

2013-08-23 14:52 壬癸甲乙
阅读:6271 评论:1

让go语言调用外部程序时支持管道符

有一个需求是用go语言程序调用外部命令时,允许使用管道符,如 ls | wc -l   Go语言对外部命令的调用进行了一定的封装,下面来试一下:   package main      import (    "os"    "os/exec"   )      func main() {    run1()   }      func run1() {    cmd := exec.Command("ls", "|", "wc", "-l")   cmd.Stdout ...阅读全文

阅读:8532 评论:2

goconfig - 课时 1:goconfig 使用解析

注意事项 本博客隶属于 goconfig - 课时 1:goconfig 使用解析 请注意配套使用。 本博文为 goconfig - Go 语言 INI 解析器的配套博客,旨在通过文字结合代码示例对该库的使用方法和案例进行讲解,便于各位同学更好地使用和深入了解。 库简介 goconfig 是一个由 Go 语言开发的针对 Windows 下常见的 INI 格式的配置文件解析器。该解析器在涵盖了所有 INI 文件操作的基础上,又针对 Go 语言实际开发过程中遇到的一些需求进行了扩展。相对于其它 IN...阅读全文

阅读:2585 评论:0

在Go包里添加C代码并且不使用CGO(不需要gcc)

如果go代码里使用了cgo,那么编译的时候电脑上必须按照gcc才能正确编译 这篇文章展示了如何用c写一个包让go调用并且不需要使用cgo A 需要注意的: 1. C代码天生的不安全 2. Go1的兼容性保证不包括C代码 3. C函数不能inline 4. 逃逸分析不能跟踪传递到C函数里的value (逃逸分析:http://kenwublog.com/jvm-optimization-escape-analysis) 5. C编译器(5c,6c,8c)没有对应的Go编译器优化做的好,因此生成的代...阅读全文

阅读:4991 评论:0

使用Golang开发微信公众平台-接入验证

使用Golang开发微信公众平台-接入验证 十二 18 bigwhite技术志 Amazon, DigitalOcean, EC2, Go, Golang, http, linode, PHP, Wechat, 亚马逊, 公众平台, 微信, 测试号, 移动互联网, 订阅号 2 Comments 今年我涉猎的领域有些“广泛”,并且有那么一点“跳跃”:从上半年的终端(游戏)开发到下半年golang、docker以及目前将要提及的微信公众平台 接口开发,似乎有些远离了老本行C以及技术管理的内容。但在这...阅读全文

阅读:22362 评论:4

使用Golang开发微信公众平台-接收加密消息

使用Golang开发微信公众平台-接收加密消息 十二 24 bigwhite技术志 AES, Amazon, base64, CDATA, Debug, EC2, Go, Golang, http, ngrok, Opensource, Tcpdump, Wechat, wireshark, XML, 公众平台, 加密, 开放平台, 开源, 微信, 服务号, 解密, 订阅号, 调试 No Comments 在上一篇“接收文本消息”一文中,我们了解到:公众服务与微信服务器间的消息是“裸奔”的(即明...阅读全文

阅读:7038 评论:1

使用Golang开发微信公众平台-发送客服消息

使用Golang开发微信公众平台-发送客服消息 十二 30 bigwhite技术志 Amazon, CDATA, Debug, EC2, Go, Golang, http, json, marshal, ngrok, Opensource, Tcpdump, unmarshal, Wechat, wireshark, XML, 公众平台, 开放平台, 开源, 微信, 服务号, 编码, 解码, 订阅号, 调试 No Comments 关注并使用过微信“飞常准”公众号的朋友们都有过如下体验:查询一个...阅读全文

阅读:8287 评论:1

Go和HTTPS

转自:http://tonybai.com/2015/04/30/go-and-https/ 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途...阅读全文

2015-06-01 17:38 sevenyuan
阅读:6160 评论:0