抢占式多任务和一般共享状态结合导致软件开发过程不可管理的复杂性,开发人员可能更喜欢保持自己的一些理智以此避免这种不可管理的复杂性。抢占式调度对于那些真正的并行任务是好的,但是当可变状态通过多并发线程共享时,明确的多任务合作更招人喜欢 。本文介绍 在 Go 语言中,正确的使用并发。 我要晨读

已有680人晨读

几乎每一个程序员都赞同测试是重要的,但测试以多种方式让写测试的人员打退堂鼓。它们可能运行慢,可能使用重复的代码,可能一次测试得太多导致难以定位测试失败的根源。本文介绍如何 构建一个可测试的 Go Web 应用。 我要晨读

已有901人晨读

Golang 性能忽然增加变慢10倍的现象,推测是编译器在spilt stack,导致的问题。对于这个测试和测试结果,你有什么看法、意见,欢迎大家讨论讨论。本文是14年5月发布的,因此,你使用的Go版本可能结果不一样。 我要晨读

已有732人晨读

温故而知新,可以为师矣!在 Go 语言中,如果一个结构体和一个嵌入字段同时实现了相同的接口会发生什么呢?也许你早就知道答案,也许你还不知道。不管怎样,我们一起来温习一下:Go 语言中的方法,接口和嵌入类型,相信会有新的收获。 我要晨读

已有985人晨读

在星型拓扑结构中,网络中的各节点通过点到点的方式连接到一个中央节点(又称中央转接站,一般是集线器或交换机)上,由该中央节点向目的节点传送信息。本文介绍 Golang分布式设计模式之星型拓扑分形设计,更深入的学习思考需要读者自己花心思了。 我要晨读

已有865人晨读

这几天分享一些理论性的东西,关于 Golang 分布式设计模式的,有兴趣的可以看看分布式设计相关的书籍,如:《分布式系统:概念与设计(原书第5版)》今天晨读第一篇:Golang 分布式设计模式之分层设计。 我要晨读

已有1209人晨读

Golang 和 Erlang 的一些对比,对于徘徊在这两者之前的,可以参考参考。主要对比了两者的设计、库、调度器、内存模型、垃圾回收、高可靠性和性能。有精力的,不妨两种语言都学习学习,增长见识。 我要晨读

已有887人晨读

Dave 总是会给我们带来这种很浅显有趣,又意义深刻的文章。这是一篇关于数据竞态的文章,通过冰激淋制造商来说明数据竞态问题。由实际例子引出问题,接着分析问题的原因,讲解 Go 中接口的表示。 我要晨读

已有744人晨读

Go 1.5 用 1.4 去编译,那么很多东西就从 C 变成 Go,编译 Go 本身的过程应该也会有所变化。这篇文章大致介绍了 Go 编译过程的九个步骤,从源代码开始,结束于经过充分测试的安装好的 Go。另外,之前写过一篇《分析源码安装 Go 的过程》。 我要晨读  相关阅读: 网页链接 

已有938人晨读

理解竞态对于并发编程来说很重要,如果能通过某种手段来了解程序中存在的竞态,以便进一步的调整避免竞态,也是非常有效的优化手段。Go 1.1 的工具链引入了竞态检测器可以检测并展示程序中存在的竞态情况。Go 团队撰写了博文详细介绍了这一工具的原理和使用。 我要晨读

已有820人晨读

本文虽然是基于 Go1.1 介绍调度器,然而,这样的好文依然值得学习。理解 Go 语言调度器,无疑对 Go 的学习会大有益处。文章介绍了 为什么 Go 运行时需要一个调度器、内部表示(即 我们的阵容)等方面内容。 我要晨读

已有832人晨读

粗略研究了一下微信的公共帐号。用 Golang 实现了一个简单的 package wechat,用于接入微信公共帐号。当时就在思考,微信的文字交互过程如果要实现有一定逻辑的复杂过程,可能需要使用到状态机。本文介绍 Go(#golang) 实现的状态机。 我要晨读

已有771人晨读

Go 被设计为一种后台语言,它通常也被用于后端程序中。服务端程序是 GO语言 最常见的软件产品。在这我要解决的问题是:如何干净利落地升级正在运行的服务端程序。本文详细介绍了实现过程,非常值得一读。另有一篇《用 Go 实现零停机升级 TCP 服务》。 我要晨读  相关阅读: 网页链接 

已有2077人晨读

使用 cgo 让 Go 跟 C 一起工作已经不是啥稀奇的了。有大量的第三方包直接对 C 的库做了封装,提供给 Go 使用。从 Go 项目本身的代码中可以看到,不但有 C 代码,还有汇编代码存在。那么在自己的项目中是否能跟汇编结合呢?这篇文章完整并清晰的解说了如何让 Go 和汇编协同工作。真得性能敏感?上汇编吧!! 我要晨读

已有820人晨读

周末温习一下channel。channel 是 golang 里相当有趣的一个功能,在我使用 golang 编码的经验里,大部分事件都会是在享受 channel 和 goroutine 配合的乐趣。所以本文主要介绍 channel 的一些有趣的用法。 我要晨读

已有768人晨读

Golang 中的函数跟 C 的一样,是个代码块,不过它可以像其他类型那样赋值给一个变量,也就是说 Go 语言中函数是一等公民。学过PHP的人,应该知道可以很方便的通过名字调用匹配的函数,Go 因为是静态编译型语言,没法直接那么方便的使用,但也可以做到。 我要晨读

已有1180人晨读

这篇文章虽然不长,但是很有趣。这应当算是英文“标题党”和“高级黑”吧。原文不好读,也没什么特别的;不过如果是为了强化学习 Golang 的信心,值得看看。文章说 Go 没啥新鲜的,它的特性在其他地方也能见到,但它同时获得了这些特性…… 我要晨读

已有866人晨读

详论 GO 与 ERLANG 的并发编程模型差异。许世伟在 ECUG 分享的专题。从CERL库谈到轻量级进程模型,讲解了它的实现原理,之后对比Erlang和Go到底有什么不同:对锁的态度不一样;对异步IO的态度不一样;两者的消息机制不太一样。 我要晨读

已有729人晨读

在国内,学习Go,似乎更多是进行Web开发,原因可能多方面的,我们不讨论适不适合的问题。如果你是PHPer,可以看看该文:为什么 PHPer 应当学习 Golang?本文从容易学习、容易使用和PHP的迷思等方面解释了为什么。 我要晨读

已有801人晨读