单例模式回顾 以前在做java的时候,经常会用到设计模式,如单例模式、工厂模式、观察者模式等。其实设计模式和语言无关,先简单回顾下单例模式吧,单例模式是一种用在特定场景的设计模式。比如,读取程序的配置文件的时候就会用到单…
分类:go教程
如何管理 Goroutine
为什么需要管理Goroutines 有效利用资源 虽然在Golang程序中,使用go func的方式开启一个goroutine协程是非常轻量级的操作。但是,完全不管理的任意创建,会造成很多资源的浪费。虽然golang本身…
golang类和结构体
golang结构体和类 golang中并没有明确的面向对象的说法,实在要扯上的话,可以将struct比作其它语言中的class。 类声明 type Poem struct { Title string Author st…
golang 更友好的格式化输出
源码地址 安装 # 稳定版本 go get -u -v gopkg.in/ffmt.v1 # 最新版本 go get -u -v github.com/go-ffmt/ffmt 用法 API 文档 示例 package …
Go语言的错误处理
序言 错误处理在每个语言中都是一项重要内容。众所周知,通常写程序时遇到的分为异常与错误两种,Golang中也不例外。Golang遵循『少即是多』的设计哲学,错误处理也力求简洁明了,在错误处理上采用了类似c语言的错误处理方…
golang源码安装时fatal error: MSpanList_Insert错误
原本使用的golang是1.9版本,今天想升到最新的1.11。遇到如下错误 failed MSpanList_Insert 0x905000 0x9b51f3c97b8 0x0 0x0 fatal error: MSpa…
Golang memory model
Introduction The Go memory model specifies the conditions under which reads of a variable in one goroutine can…
NSQ 源码阅读(三)TCP Handler
tcp handler tcp handler 处理每一个tcp connection type tcpServer struct { ctx *context } func (p *tcpServer) Handle(…
(一)golang工作区
环境变量介绍 GOROOT:Golang的安装路径。 GOPATH:可以理解为工作目录或者工作区,也是平时接触最多的一个变量。它可以是一个目录,可以是多个目录路径,每个目录代表一个工作区。这些目录用于放置Go语言的源码文…
用consul做grpc的服务发现
用consul做grpc的服务发现与健康检查 consul 服务发现与负载均衡 当server端是集群部署时,client调用server就需要用到服务发现与负载均衡。通常有两总方式: 一种方式是在client与serv…
Mac OS 10.9 [Mavericks] 编译支持 ZeroMQ 4.0.1 版本的 gozmq
下载 4.0.1 版本的 ZeroMQ 代码后解压到任意目录。 tar -xzvf zeromq-4.0.1.tar.gz cd zeromq-4.0.1 ./configure --prefix=/usr make m…
gorose orm+dotweb框架快速构建go web网站实战(一)
网站功能结构规划和基础服务安装 为了快速的构建一个go web网站, 在这里, 我们采用 飞哥(fizzday) 的 gorose orm 组件和 devfeel 的 dotweb 框架来做go web网站实战. 首先,…