D、GO、Rust 谁会在未来取代 C?为什么?每一个语言都有一些基础优势(我称之为“十倍优势”,因为在一定的基准上比较其他确实效率更高)和数个挑战。这些语言在未来能否取代 C 语言取决于它们如何利用它们的十倍优势,并且如何克服他们的数个挑战。 我要晨读

已有1997人晨读

关于Go错误处理的资料和视频已有许多,Go authors们也在官方Articles和Blog上多次提到过一些Go error handling方面的一些tips和best practice,这里仅仅算是做个收集和小结,尽视野所及。 我要晨读

已有1459人晨读

本文分析了Golang的socket文件描述符和goroutine阻塞调度的原理。代码中大部分是Go代码,小部分是汇编代码。完整理解本文需要Go语言知识,并且用Golang写过网络程序。更重要的是,需要提前理解goroutine的调度原理。 我要晨读

已有1626人晨读

开源项目 分布式 NewSQL 数据库 TiDB 和 分布式缓存 Codis 的 创始人 刘奇,给代价本介绍一下 NewSQL 与 TiDB 的设计实现, 未来的一些 Roadmap 以及 一些做开源项目的心得。 我要晨读

已有2243人晨读

Go以简洁著称,但简洁中不乏值得玩味的小细节。这些小细节不如goroutine、interface和channel那样"高大上","屌 丝"得可能不经常被人注意到,但它们却对理解Go语言有着重要作用。关于Go,你可能不注意的7件事:本文较Low,适合初学者,高手可飘过:) 我要晨读

已有2007人晨读

Golang在京东列表页实践总结:描述了目前的状况和为什么选择Go语言作为服务端语言。给出了一些设计架构图、遇到的一些问题和解决方案等。虽然没有过多的细节,但也值得一读。 我要晨读

已有2894人晨读

var a, b, c = f() + v(), g(), sqr(u()) + v(); func f() int {return c}.... 这样一个复杂的变量初始化语句之后,a、b、c三个变量的值是多少呢?如果感觉迷惑,可以来看看这篇post:“理解Golang语句中的求值顺序”。 我要晨读

已有891人晨读

Go语言最有用的特性是将并发作为第一支持的语言,使用协程goroutine,非常容易实现代码的并发,这使得Go成为网络类应用的重要选择,本文以银行转账为例,阐述了Go1.5新版本中如何使用协程实现并发。该文还指出了在Go1.5版本之前默认所有协程只是运行在单个进程,并不支持多核CPU并行计算,1.5以后提升到支持多核。 我要晨读

已有2636人晨读

Go 1.5中加入了一个experimental feature: vendor/。这个feature不是Go 1.5的正式功能,但却是Go Authors们在解决Go被外界诟病的包依赖管理的道路上的一次重要尝试。本文和大家一起来理解下vendor这个新feature。 我要晨读

已有2234人晨读

是否担心自己的Go服务挂掉?supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。当然也可以用来管理golang的进程。本文介绍如何使用 supervisor 管理 golang 进程。 我要晨读

已有2038人晨读

Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案相比,Consul的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案等。本文是Consul的入门介绍,并用一些例子说明如何使用Consul实现服务的注册和发现。 我要晨读

已有2343人晨读

无论使用任何编程语言开发应用,都离不开配置数据。配置数据提供的形式有多样,不外乎命令行选项(options)、参数(parameters),环境 变量(env vars)以及配置文件等。Golang也不例外。本文带领大家小结Golang程序配置方案。 我要晨读

已有1169人晨读

在一般人的眼中,“并行”就是并行,即你干你的,我干我的,两个“并行”的执行过程可能是两条毫无瓜葛的平行线,也可能是有交叉,但瞬即分开的两条线。不 过在程序员的世界里,有关“并行”的概念却有两个单词:Concurrency和Parallelism,对应的比较主流的中文翻译为并发 (Concurrency)和并行(Parallelism)。结合现实例子谈并发和并行。 我要晨读

已有1115人晨读

超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定。HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的传输。HTTPS不应与在RFC 2660中定义的安全超文本传输协议(S-HTTP)相混。本文讲解https原理以及golang基本实现。 我要晨读

已有1949人晨读

在GopherCon2015开幕之 际,Google Go Team终于放出了Go 1.5Beta1版本的安装包。因为Go 1.5变动太大,需要更多时间来准备这次发布(fix bug, Write doc)。关于Go 1.5的变化,之前Go Team staff在各种golang技术会议的slide 中暴露不少。这篇文章就想和大家一起浅显地体验一下go 1.5都给gophers们带来了哪些变化吧。 我要晨读

已有1838人晨读

Go1.5 改进摘要:纯Go(+少量汇编)实现 runtime 和 编译器、改进 垃圾回收器, 支持 并发 (有个指标好像是 停顿在 10 毫秒以内)、GOMAXPROCS 默认值改为 CPU 核数 等,更多改进和变化,查看文章。 我要晨读

已有1301人晨读

一致性哈希可用于解决服务器均衡问题。用Golang简单实现了下,并加入了权重。可采用合适的权重配合算法使用。本文基本是代码,有兴趣的或需要的拿走…… 我要晨读

已有2226人晨读

image/draw 包仅仅定义了一个操作:通过可选的蒙版图(mask image),把一个原始图片绘制到目标图片上,这个操作是出奇的灵活,可以优雅和高效的执行很多常见的图像处理任务。 draw包提供了图片的生成方法,或者绘制方法.其使用方法只需导入响应的包即可"import image/draw"。 我要晨读  相关阅读: 网页链接 

已有773人晨读

jpg和png 图片很常见,Go 编程中可能需要读取或生成这些类型的图片。Go 标准库提供了相应的包来处理这些问题。本文介绍 golang中image/jpeg包和image/png包用法。 我要晨读

已有1542人晨读

golang中sync包实现了两种锁Mutex (互斥锁)和RWMutex(读写锁),其中RWMutex是基于Mutex实现的,只读锁的实现使用类似引用计数器的功能。本文介绍golang中sync.RWMutex和sync.Mutex区别。 我要晨读

已有959人晨读