【Go web开发之revel+mgo】第一章:概述。虽然 Go 语言的定位是系统编程语言,但目前国内学习者更多是用来写 Web。而 Web 开发很多人会使用一些框架。目前 Go Web 框架不少。这一序列文章介绍的revel框架。 我要晨读

已有946人晨读

随着不断的学习Go,我们应该尝试着更深入的学习Go的相关实现。这次晨读带来的是 channel 的实现。文章虽然是基于 Go1.0 的,但依然有学习参考价值。本文介绍了channel的数据结构、发送流程、buffer空间以及select,是值得收藏的好文章。 我要晨读

已有1014人晨读

深入学习golang第五篇:接口(第四篇之前晨读过)。如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键。在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。本文详细介绍了接口的方方面面。 我要晨读

已有695人晨读

深入学习golang第三篇:类型方法。虽然Go不是传统意义上的面向对象语言,但支持给类型定义方法,当然实际上,方法只是语法糖,但这个语法糖却很有用处。本文学习笔记通过实现自己的append详细介绍了类型定义方法的知识。 我要晨读

已有699人晨读

深入学习golang第二篇:channel。Goroutine和channel是Go在“并发”方面两个核心。Channel是goroutine之间进行通信的一种方式。本文从同步、消息传递、Server编程模型、传递channel的channel等方面学习 channel。 我要晨读

已有595人晨读

深入学习golang第一篇:数组与切片。这是 Go 中经常使用的数据类型。之前有晨读过相关的文章,如果对这两种数据结构很熟悉,可以快速浏览下。本文从声明、和C语言的对比到遍历使用等方面学习array/slice。 我要晨读

已有674人晨读

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。本文介绍 Go 使用它和C++通讯。 我要晨读  相关阅读: 网页链接 

已有1134人晨读

特殊的国情,我们要学会“翻墙”。“翻墙”的方法有很多,你是否有想过自己实现一个代理,即使自己不实现,了解代理的原理和实现方式对自身知识的提升还是很有帮助的。本文介绍了 goproxy 代理实现涉及到的一些知识和原理。 我要晨读

已有1336人晨读

一门编程语言,只是学习,没有实际的产品实践,一方面很容易忘记,另一方面感受也不会太深。实际产品中,难免会遇到这样那样的问题,随着问题的解决,相信水平也会有不小的提升,这时候对语言的感受也会不一样。本文作者分享了 用Go语言做产品半年的一些感觉。 我要晨读

已有789人晨读

字符串操作是很常见的。Go语言对字符串在语言级和库级提供了很好的支持。在Web开发中,我们经常会遇到字符串截断显示的问题。这样的问题有很多种解决方法,可以css在客户端截断;也可以在后端截断。本文使用 Go 截断字符串。 我要晨读

已有1443人晨读

随着不断学习,知识掌握越来越多,同时也会比较散,有必要阶段性的进行总结。本文对 Go 语言方法进行了总结,包括:哪些类型可以有方法、结构体的匿名字段的类型限制、结构体匿名字段的方法向外传递的规则 等。 我要晨读

已有752人晨读

大家比较认同 Go 是云计算的最佳语言之一;同时也认为 Go 非常适合游戏服务端开发。手游服务端开发,涉及到socket编程,可能有长连接,也可能有http短链接,当然应该还需要操作数据库。本文探讨了作者手游框架设计时的两种方案。 我要晨读

已有1113人晨读

现在的程序,大部分或多或少都会涉及网络编程。学习 Go 语言,更应该掌握网络编程。Go 语言提供了 net 包,封装了 socket 相关的接口。可能你用过 net 包,但没有完整的学习过它。可以通过本文,完整的学习学习 net 包。 我要晨读

已有1421人晨读

Go 语言的 net/http 除了实现 HTTP 协议,还是支持 HTTPS,搭建一个 HTTP 服务很简单,同样的,搭建一个 HTTPS 服务也不难。本文提供了一个 Go支持 HTTPS 的简单例子,建议自己动手试试。 我要晨读

已有994人晨读

共享内存是靠操作系统提供的内存映射机制,让不同进程的一块地址空间映射到同一个虚拟内存区域上,使不同的进程可以操作到一块共用的内存块。本文对 mmap 函数进行了较详细的介绍,同时使用 cgo 封装了 mmap,提供 go 语言对共享内存读写的代码。 我要晨读

已有1331人晨读

个人觉得 Go 中的 defer 是一个好东西。然而,有些时候,因为使用 defer,导致一些“莫名其妙”的问题。本文通过三段代码引出对 defer 原理的讲解。在看 defer 原理前,你试着看看这三段代码你是否都知道答案,而且不是蒙的。 我要晨读

已有960人晨读

每门编程语言都会有一些地方容易出错,大部分时候可能想当然的是这样,然而实际结果并不是这样。对这种情况,大家习惯称之为“坑“。Go语言有哪些你认为是”坑“的呢?本文作者汇总了一些”坑“的集合。欢迎补充。 我要晨读

已有1838人晨读

函数在go中是一等公民。函数使用的方方面面,你是否都了解?本文从函数声明、参数(变参、使用)、匿名函数和闭包、defer、函数作为值、函数作为类型、panic和recover、main和init函数,到 内置的函数,对函数进行了全面的介绍、学习。 我要晨读

已有811人晨读

golang定义了一套很丰富的数据类型及数据结构,这些类型和结构或者是直接映射为C的数据类型,或者是用C struct来实现。了解golang的数据类型和数据结构的底层实现,将有助于我们更好的理解golang并写出质量更好的代码。 我要晨读

已有966人晨读

sync.Pool 是 Go1.3 增加的内容,虽然 Go1.4 都快要发布了,但了解增加 sync.Pool 类型的一些情况还是有用处的。一方面可以加深理解;另一方面可以了解当初设计的初衷或一些思路。golang sync.Pool试用说明及注意事项。 我要晨读

已有952人晨读