时间飞逝 如一名携带信息的邮差 但那只不过是我们的比喻 人物是杜撰的 匆忙是假装的 携带的也不是人的讯息 为什么使用grpc 主要包括以下两点原因: protocl buffer一种高效的序列化结构。 支持http 2.…
标签:go
go-callvis 代码分析工具
go-callvis 发现这个不错的工具,然后尝试用了一下,还有很多的问题,这篇文章,主要是讲解怎么使用。 go-callvis 是一个开发工具,其目的是通过使用来自函数调用关系图的数据及其与包和类型的关系来对程序进行可…
go test的坑
众所周知,golang自带了单元测试,写的程序都会先进行一遍单元测试。最近在写微信分享的是,签名参数中用到了时间戳,下面的代码,在命令行执行go test -v filename_test.go,每次打印出来的时间戳将会…
Go总结(2)
struct go中struct结构默认字段都会有零值,故不能用nil来判断struct是否为空,可通过额外的字段来判断struct是否填充或为空 type Demo struct{ ready bool name st…
go module,使用gitlab私有仓库作为项目的依赖包
自从golang 1.11推出go moudle机制来更好的管理项目依赖后,就开始小范围尝试使用go mod来替换曾经的dep,实话实说还不错,很稳定,比起dep以及第三方的govendor来说也更加方便和快速。 在曾经…
go新手容易犯的三个致命错误
前言 最近因为以前一些重要且古老的go项目基本没有人专职维护了,所以被安排去熟悉这些项目的代码,所以看了大量go的代码。历史原因,这些代码中或多或少有一些刚刚从PHPer转过来的Gopher去设计和开发的,自然有不少是在…
golang 并发编程基础篇(一)
channel的阻塞的情况 无缓冲channel的阻塞 阻塞是一个听上去逼格很高的一个词,其实就是程序停了,杵在那儿等待程序继续运行的条件,这个条件不发生的话,程序就死翘翘了。 无缓冲channel阻塞的例子之常见的ch…
Float的基本介绍
关于浮点数,为什么它生来就可能存在误差?带着好奇查阅了一些介绍,然后做了简单汇总。这只是一段知识的开始,后续还会继续完善。(很难过,这里的MarkDown不支持编辑公式。请移驾本人的博客地址: http://neojos…
go语言的 slice切片不是纯引用类型
总结 如果改变了原本的值,切片的值也会跟着变,如果改变了切片的值,原本的值也会跟着变,所以有指针特性,其实slice的底层存储就是数组。go语言的slice是并不是纯引用类型,而是一种包含指针的聚合类型,类似 type …
go依赖管理 govendor使用
安装 go get -u github.com/kardianos/govendor 初始化vendor #首先进入自己的项目,比如 项目是flame 目录在/home/flame/go/src/flame cd /ho…
go 通道的阻塞测试
go版本 go version go1.11.2 linux/amd64 无缓冲通道 测试样例 package main import "fmt" func main(){ naturals:=make(chan int…
关于MongoDB唯一索引(Unique)的那些事
写在前面 关于什么是索引以及唯一索引这里就不做说明了,不清楚的可以自行谷歌或者百度。是什么引起我写这篇文章呢,这来自于之前项目中的一个问题。 我们用的是MongoDB数据存储用户信息,用户表中曾经用户注册是通过手机号注册…