Golang分布式设计模式之-----分层设计

提到分布式系统,我们会想到很多机器,分别部署着各自的服务,然后整体组成一个分布式系统。在这类系统中,分布式系统与常规的集中式系统存在着以下三个区别。(来自分布式算法导论) 1、缺乏全局状态知识 2、缺乏全局时间帧 3、非确定性 这三大特点也成为分布式系统设计的难点。也正是如此,分布式系统的设计比常规的集中式系统要难的多。为了区别,我们称这种分布式系统为,群体分布式。这种犹如社会群体。 golang语言天生具有分布式的特点,其主要是基于协程与chan的概念。如果对golang不了解的人可以简单的去...阅读全文

阅读:8054 评论:1

Go 应该成为开发 android 的主要语言

前几天刚看到<Oracle 起诉 Google Android 操作系统侵犯了其 Java 知识产权>的新闻时,我就在猜想:如果 google 要摆脱 Oracle 的诉讼纠缠,那么只有一条路:就是用 go 取代 java 成为 android 的主要开发语言。这步迟早是要走的,也许谷歌已经在暗自部署了。我一直觉得手机应用开发采用VM语言或者JS是一种短视的行为,在前期也许会因为门槛低而吸引大量程序员涌入这个市场,但是很多高级应用(对速度响应要求很高)最终都难免要回到C/C++原生函数调用上来。...阅读全文

阅读:5590 评论:0

在生成环境中使用 Go 语言两年的总结

在iron.io的生产环境使用Go语言两年后,我想分享我们的经验和感受。我们是第一批在生产环境中使用Go(Go语言)的公司之一,长久以来我们不知道该有怎样的预期,但到目前为止,很棒。 在之前发表的一篇文章从Ruby切换到Go中我谈了一些,但这次将更具细节一些,我们喜欢这门语言以及一路上我们学到的东西。介绍没有特定顺序,按下面这样: 性能表现(Performance)内存占用(Memory)并发性(Concurrency)可靠性(Reliability)部署(Deployment)天赋(Talen...阅读全文

阅读:4461 评论:0

Go语言学习(二):array、slices和map

前言 近来个多月忙于论文,各方面原因的综合,说多都是泪,等着结果了。关于Go语言的学习,本文的内容老早就学习了,之前时间也不知去哪了,而且也没心思,现在誊写上来吧。 数组array 定义形式: [n]<array>,n标示array长度,<type>标示类型。 // e.g: [32]byte // 长度32的数组,每个元素为1个byte [16]*float64 // 指针数组 [3][5]int // 二维数组 在Go语言中,数组长度在定义后不可更改。获取array元素个数方法:arrLen...阅读全文

阅读:3524 评论:0

database/sql: Stmt的使用以及坑

前言 众所周知,golang操作数据库,是通过database/sql包,以及第三方的实现了database/sql/driver接口的数据库驱动包来共同完成的。 其中database/sql/driver中的接口Conn和Stmt,官方交给第三方实现驱动,并且是协程不安全的。官方实现的database/sql包中的DB和Stmt是协程安全的,因为内部实现是连接池。 如何使用 刚开始接触database/sql包,并且网上的很多使用例子,都类似下面这种方式: db,err := sql.Open...阅读全文

2014年11月8日 郝冠伟
阅读:41549 评论:0

Golang测试技术

本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”,即介绍使用Golang开发 时会使用到的测试技术(主要针对单元测试),包括基本技术、高级技术(并发测试、mock/fake、竞争条件测试、并发测试、内/外部测 试、vet工具等)等,感觉总结的很全面,这里整理记录下来,希望能给大家带来帮助。原Slide访问需要自己搭梯子。另外这里也要吐槽一 下:Golang官方站的slide都是以一种特有...阅读全文

2014-11-16 20:20 大蓝妹
阅读:15933 评论:0

Emacs for Go

In this post I'm going to explore customizing Emacs to make hacking on Go a little more fluid. This is a living document and will probably be updated as I discover new modes and tools. The Emacs modes I currently use are: go-mode, oracle, goflymake, ...阅读全文

2014-11-29 18:54 TinkerS
阅读:7449 评论:0

Go编码规范指南

转自http://golanghome.com/post/550 Go编码规范指南 序言 看过很多方面的编码规范,可能每一家公司都有不同的规范,这份编码规范是写给我自己的,同时希望我们公司内部同事也能遵循这个规范来写Go代码。 如果你的代码没有办法找到下面的规范,那么就遵循标准库的规范,多阅读标准库的源码,标准库的代码可以说是我们写代码参考的标杆。 格式化规范 go默认已经有了gofmt工具,但是我们强烈建议使用goimport工具,这个在gofmt的基础上增加了自动删除和引入包. go get...阅读全文

2014-12-14 22:45 hittata
阅读:44748 评论:0

Go语言的函数调用信息

By chaishushan{AT}gmail.com 注: 本文初稿发在 Golang 中国博客, 这里的内容有部分修改. 函数的调用信息是程序中比较重要运行期信息, 在很多场合都会用到(比如调试或日志). Go语言 runtime 包的 runtime.Caller / runtime.Callers / runtime.FuncForPC 等几个函数提供了获取函数调用者信息的方法. 这几个函数的文档链接: http://golang.org/pkg/runtime/#Caller http...阅读全文

阅读:3684 评论:0