Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常。在Go语言中,使用多值返回来返回错误。不要用异常代替错误,更不要用来控制流程。本文介绍Go中引入的Exception处理:defer, panic, recover。 我要晨读

已有671人晨读

Go对web服务器的编写提供了非常好的支持,标准库中提供了 net/http 包来方便编写服务器。写一个最简单的hello world服务器,代码简短,那么 http.ListenAndServe() 到底做了什么?本文带你分析它是如何工作的。 我要晨读

已有1049人晨读

在面向对象盛行的年代,新的编程语言,自然会有人问,是否是面向对象的。面向对象的三大特点:封装、继承、多态。Go是否支持这三大特征?是否可以模拟实现?如果你对Go面向对象方面的知识感到迷惑,不妨看看别人是怎么理解的。 我要晨读

已有837人晨读

学习别人的经验,是一种快速学习的方法。你可能不知道的十个技巧。本文总结了 Go 语言使用的一些技巧,包括:匿名结构体、嵌套结构体、godoc命令、使用统一个Channel发送和接收消息 等。 我要晨读

已有1184人晨读

go的gc还不完善但也不算不靠谱,关键看怎么用,尽量不要创建大量对象,也尽量不要频繁创建对象,这个道理其实在所有带gc的编程语言也都通用。想知道如何提前预防和解决问题的,请耐心看下去。本文带来 Go程序GC优化经验分享。 我要晨读

已有909人晨读

Go Playground,这是一个完全由Go代码组成和返回程序运行结果的web服务器。你很可能已经通过阅读Go教程或执行Go文档中的示例程序的途径使用过Go Playground了。本文我们将学习Go playground是如何实现并与其它服务整合的。 我要晨读

已有1100人晨读

Golang的原子并发特性使得它很容易构造流数据管道,这使得Golang可有效的使用I/O和多CPU特性。本文提出一些关于管道的示例,在这个过程中突出了操作失败的微妙之处和介绍处理失败的具体技术。 我要晨读

已有1191人晨读

让我们假设你有一golang 程序,想改善其性能。有几种工具可以帮我们完成这个任务。这些工具可以帮我们识别程序中的热点(cpu,io,memory), 热点即是那些需要我们集中精力于其上,能显著改善改善性能的地方。golang 核心开发者 Dmitry Vyukov(1.1 调度器作者) 关于性能剖析。 我要晨读

已有965人晨读

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

已有680人晨读

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

已有901人晨读

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

已有732人晨读

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

已有985人晨读

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

已有865人晨读

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

已有1208人晨读

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

已有887人晨读

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

已有743人晨读

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

已有937人晨读

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

已有819人晨读

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

已有832人晨读