golang
文章平均质量分 52
CasterOxfd
厚积薄发
展开
-
golang 一些通用的单元测试模板
以下模板参考了下 elasticsearch 包里的单元测试, 可以很方便的接入到各种单元测试函数中,后续增加案例也很方便假设待测试的函数如下://校验字符串是否为数字func IsInteger(s string) bool { if len(s) == 0 { return true } b, _ := regexp.MatchString("...原创 2018-06-26 13:11:13 · 1283 阅读 · 0 评论 -
gob 的深度拷贝
项目中用了protobuf 做 RPC 协议,然后据说 gob 的encoder 和 decoder 比 protobuf 效率更高,于是写了一个用于 protobuf 结构体的深度拷贝库函数func DeepCopy(dst, src interface{}) error { var buf bytes.Buffer if err := gob.NewEncoder(...原创 2018-06-19 19:52:11 · 1467 阅读 · 0 评论 -
Go性能优化小结
1.内存优化1.1 小对象合并成结构体一次分配,减少内存分配次数1.2 缓存区内容一次分配足够大小空间,并适当复用1.3 slice和map采make创建时,预估大小指定容量1.4 长调用栈避免申请较多的临时对象1.5 避免频繁创建临时对象2 并发优化2.1 高并发的任务处理使用goroutine池2.2 避免高并发调用同步系统接口2.3 高并发时避免共...转载 2018-07-03 10:53:23 · 515 阅读 · 0 评论 -
ProtoBuffer Encoding 原理解析
ProtoBuffer Encoding 原理解析准备工作Base 128 Varints 编码proto 的消息结构和数据类型其他的数据类型有符号数的 ZigZag 编码非 varints 编码的数值类型字符串类型嵌入结构optional 和 repeatedPacked Repeated Fieldsfiled_number 和 field order...原创 2018-08-09 13:01:31 · 1380 阅读 · 0 评论 -
TLS with Go
TLS with Go公私钥的加解密数字签名生成自签名证书模拟CA颁发证书如何让客户端信任服务器双向认证:让服务器信任客户端TLS with Go原文见:https://ericchiang.github.io/post/go-tls/虽然之前也接触一些 openssl 的编程,但是对证书颁发,证书链的一些细节依然有些似懂非懂。完成这篇文章之后解决了...原创 2018-08-07 14:04:57 · 2956 阅读 · 1 评论 -
go 获取证书信息
GO 获取 pem 证书信息GO 获取 pem 证书信息openssl 客户端查看证书信息:[root@dnsserver test]# openssl x509 -noout -text -in ./client-release.pemCertificate: Data: Version: 3 (0x2) Seria...原创 2018-08-07 14:28:27 · 8837 阅读 · 0 评论