摘要:
Golang踩坑 内存溢出 GC回收时,无法实现100%的回收 有goroutine泄漏,zombie goroutine没有结束,这个时候在这个goroutine上分配的内存对象将一直被这个僵尸goroutine引用着,进而导致gc无法回收这类对象,内存泄漏。 有生命周期和程序一样长的的数据结构意 阅读全文
摘要:
Golang代码案例 这是很久之前我在学习Golang中挨个敲过的一部分代码案例,基本上如果在看Golang的书时敲了书上的代码,再敲这些案例之后就差不多入门了. References 工作中遇到的问题,测试小demo go by example 4天掌握GO语言密码学 Code Recipes P 阅读全文
摘要:
GoLang常用第三方扩展 包与下载方式 之前自己写框架的时候经常会用到的第三方包,这里记录一下. goimports: 自动地添加或删除 import 声明 easyjson 一个json处理包,比原版性能好很多 zap: 非常好用的一个日志包,可以分级 sirupsen/logrus: 也是一个 阅读全文
摘要:
Golang的tag语法 谢谢慕课网精英讲师"cap1537" 我们可以通过Tag来增强结构体的定义,Tag会带上一些meta信息,在本文中我们将通过几个例子来深入了解Tag的用法。 结构 Struct是由一组field组成,每个field包括了名字(可选)和字段类型 package main im 阅读全文
摘要:
Golang的interface及duck typing鸭子类型 “当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。” 意思就是: 一个东西究竟是不是鸭子,取决于它能不能满足鸭子的工作。 duck typing 多见于动态语言,例如PHP,Python等. 在静 阅读全文
摘要:
Golang 模板(template)的基本语法 说明 这个是之前跟慕课网精英老师"Cap1537"学的时候抄的,只要抄一次就有印象了,用的时候忘了再来翻. 在写动态页面的网站的时候,我们常常将不变的部分提出成为模板,可变部分通过后端程序的渲染来生成动态网页,golang提供了html/templa 阅读全文
摘要:
Golang单例模式实现 go语言做开始的必然是并发业务,所谓的单例模式也必须加锁否则会不断生成新的实例,不加锁的部分就不写了. 直接记录几个能用的到的单例模式,由浅入深. 普通加锁 package pattern import "sync" type singleton struct{} var 阅读全文
摘要:
Golang面试题 所有题目,一行一行敲过亲自反复验证后.100%没有问题.里面加了一些自己的测试结果和理论,应该都是对的. 这一套题最棒的地方在于可以学习到很多书上没有的东西,有很多平时注意不到的地方这里都提到了, 不光是在准备面试,同时也有很多应用非常巧妙的地方可以在工作中借鉴. 这一套题是我在 阅读全文
摘要:
VisualStudioCode 下golang必备插件 在使用VisualStudioCode编写go程序的时候会发现首次保存文件提示安装扩展,但是肯定会安装失败. 点开右下角提示,细看有10几个扩展全部安装失败,我们可以自己装 gocode godef golint go-find-refere 阅读全文
摘要:
Golang测试用例和基准测试注意事项 老生常谈了,这里主要记录一下,测试用例(test)和压力测试(benchmark)中的注意事项 test测试用例 测试用例的文件名必须以XXX_test.go的格式. 文件名的XXX不必一定和被测试文件的名称一样,但是保持一致是一个很好的习惯. 测试用例中的测 阅读全文
摘要:
Go语言web开发学习 写的比较早, 当时的理解可能不到位,有不对的地方,请评论告知. 主要是看的<go web编程>这本书 项目代码在这里 部分内容和我的另一个笔记<Golang学习笔记>有点重合,就当复习了. 基本上没有什么难度,主要内容就是些WEB方面老生常谈的东西: http协议 web服务 阅读全文
摘要:
依赖管理以及goget包管理工具被墙办法 其实我是很喜欢golang这门语言的,易开发,易维护,社区庞大且相对成熟,不过可惜它是谷歌的. 其实谷歌也没什么,主要是谷歌的东西容易用着用着就不能用了. 最早之前用golang的时候,就发现go get这个命令安装东西时如果有golang官方的依赖就会发现 阅读全文
摘要:
Golang学习笔记 这个学习笔记是最早在1.初,版本左右的时候写的,和当前最新的版本可能会有较大的差异. 因为成文比较早,文章里面又有很多自己的见解,有些东西当时理解的不太透彻可能写错了.已经对部分地方做出了补充和修改, 有遗漏的地方,海涵. 该笔记是根据<学习go语言>和<go语言实战>两本书看 阅读全文
摘要:
Golang对称加密-AES 代码 没啥好说的,直接上代码吧! package encrypt import ( "bytes" "crypto/aes" "crypto/cipher" "encoding/base64" "errors" ) //aes(高级加密标准) //加密秘钥, 长度分别是 阅读全文
摘要:
Golang一致性hash代码 服务代码 package common import ( "errors" "hash/crc32" "sort" "strconv" "sync" ) //声明新的切片类型 type units []uint32 //返回切片长度 func (x units) Le 阅读全文
摘要:
Golang并发编程之互斥锁、读写锁详解 谢谢慕课网cap1537老师,写的不错. 我们对Go语言所提供的与锁有关的API进行说明。这包括了互斥锁和读写锁。我们在第6章描述过互斥锁,但却没有提到过读写锁。这两种锁对于传统的并发程序来说都是非常常用和重要的。 一、互斥锁 互斥锁是传统的并发程序对共享资 阅读全文
摘要:
GoLang构造函数 具体代码位置 构造函数 我之前的的另一个学习项目 另一篇笔记 Golang学习笔记 中的构造函数和复合声明部分也有描述和简单的实例 写这个笔记的原因,是因为前一阵子过同事的goLang代码, 看到他写的构造函数深感无奈.所以在这里记一下,我之前的案例. 构造函数源码 代码案例1 阅读全文
摘要:
Golang性能分析 pprof web查看必备工具 brew install graphviz sudo apt install graphviz sudo yum install graphviz # 验证是否安装成功 dot -version http://localhost:6010/deb 阅读全文