Erlang vs Go

1)设计 Erlang的实现基于虚拟机beam,Go是编译型语言,有着独成一体的compiler(不同于gcc,Go很好的解决了依赖的问题,所以编译go程序时不需向编译c程序那样指定include和library),TNSDL和GO类似,属于native执行。Erlang主要是为电信级应用服务的,而Go的concurrent则更具有通用性,这点主要体现在concurrent的设计,Erlang是基于process之间传递message,而Go是goroutine组成,再加上channel,Go通...阅读全文

CSDN博客 2012-12-09 23:45 androidzhaoxiao 等

Go开源项目 - gorp使用方法

gorp 是一个Go开源ORM框架. Go关系型数据库持久化 我很含糊的称gorp是一个ORM框架. Go还没有真正的对象, 至少没有一个经典的感觉和Smalltalk/Java一样的,这是"O". gorp不知道任何你struct之间的关系(以后会实现,现在还在TODO list中). 所以"R"也是有质疑的(但是我使用这个名字,因为感觉上更贴切). "M"是没有问题的. 给定一些Go结构和一个数据库, gorp应该可以减少你的重复代码. 我希望gorp能节省你的时间并简化从数据库获取数据的苦...阅读全文

博客园 2014-10-09 16:55:55 ztiandan

Revel命令行工具源码阅读

这一篇来详细看下revel命令行工具。下面是这个包的几个文件,以及对应的功能说明。 文件名 短描述(Short) 完整描述(Long) clean.go clean a Revel application’s temp files Clean the Revel web application named by the given import path. For example: revel clean github.com/robfig/revel/samples/chat It remov...阅读全文

Rhino 的博客 2013年1月12日 Rhino(犀牛)

GDB调试Go程序进阶

目的:使用gdb附加到一个正在运行的进程上,然后做一些调试,并安全退出。 1. 修改Ubuntu配置,允许gdb附加到进程上,如何修改如下: http://askubuntu.com/questions/41629/after-upgrade-gdb-wont-attach-to-process 2. 查看进程id #ps ax 或者 #ps au 3. 启动gdb 4. 使用file命令来指定进程所联系的程序源代码和符号表,例如: file /home/yourihua/workplace/r...阅读全文

Rhino 的博客 2013年1月11日 Rhino(犀牛)

Sublime Text 2使用ctags实现函数跳转

关于ctags的介绍,在这里就不介绍了,大家可以搜索了解下。(Ubuntu下测试通过,其他环境并未测试) 1. 安装ctags,如下: curl -O http://prdownloads.sourceforge.net/ctags/ctags-5.8.tar.gz tar xzvf ctags-5.8.tar.gz cd ctags-5.8 ./configure make sudo make install 2. 添加 ~/.ctags文件,内容如下: –langdef=Go –langma...阅读全文

Rhino 的博客 2013年1月10日 Rhino(犀牛)

GDB调试Go程序若干问题备忘

1. 很早之前写过GDB调试简单Go程序的文章,没有带命令行参数,最近再看一个开源项目需要用到带命令行参数的调试。 如下: 查看帮助得到如下: gdb [options] --args executable-file [inferior-arguments ...] 例如: gdb --args revel run github.com/yourihua/console 2. 载入 Go Runtime: source /home/yourihua/go/src/pkg/runtime/runt...阅读全文

Rhino 的博客 2013年1月10日 Rhino(犀牛)

Go简单排序

写代码的时候发现需要对map[int64]int64排序,golang中sort包来解决这个问题,下面是从网上找的2个例子,备忘下。 例子一: package main import ( "fmt" "sort" ) func main() { m := map[string]string{"b": "15", "z": "123123", "x": "sdf", "a": "12"} mk := make([]string, len(m)) i := 0 for k, _ := range m...阅读全文

Rhino 的博客 2013年1月8日 Rhino(犀牛)

Revel命令行工具编译使用

上一篇,简单介绍了下Revel,这一篇我们看下 github.com/robfig/revel/cmd 这个命令行工具。 文档:http://robfig.github.com/revel/manual/tool.html 首先,编译Revel命令行工具,如下: go build -o bin/revel github.com/robfig/revel/cmd 接着运行帮助,如下: yourihua@ubuntu:~/workplace/rhino/bin$ revel help ~ ~ rev...阅读全文

Rhino 的博客 2013年1月6日 Rhino(犀牛)

Revel框架简介

简介:A high-productivity web framework for the Go language, modeled on Play! Framework. 上图是Revel的logo,它是一个以Java的Play!框架为蓝本编写的高效的Go语言Web框架。 项目地址:http://robfig.github.com/revel/ 源码地址:https://github.com/robfig/revel 特点:热编译,简单可选,同步(每个请求都创建自己的goroutine来处理)。...阅读全文

Rhino 的博客 2012年12月26日 Rhino(犀牛)

goprotobuf基本使用

如果你对Google Protocol Buffer不了解,可以先看下我这篇文章里收集的中文资料:关于Google Protocol Buffer的中文资料 源码地址:https://code.google.com/p/goprotobuf/ 详细的介绍:https://code.google.com/p/goprotobuf/source/browse/README 介绍: This software has two parts: a ‘protocol compiler plugin’ th...阅读全文

Rhino 的博客 2012年12月9日 Rhino(犀牛)

关于Google Protocol Buffer的中文资料

最近打算写一篇关于goprotobuf的使用教程,先了解了Google Protocol Buffer相关的知识点。下面是谷歌到的不错的资料,故记录下来方便以后查找。 Google Protocol Buffer 的使用和原理:http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html Google Protocol Buffers浅析系列:http://www.cnblogs.com/royenhome/archive/2010...阅读全文

Rhino 的博客 2012年12月9日 Rhino(犀牛)

使用SublimeGDB调试Go程序

大家好,好久没有跟新博客了,今天给大家带来一篇Sublime Text 2的插件SublimeGDB的使用教程。 在很早之前,写过一篇关于Sublime Text 2配置Go语言开发环境的文章,如果您还没有看过,可以先看看这一篇文章,地址:http://golanger.cn/?p=32,还写过一篇关于Go使用GDB断点调试的文章,大家也可以看下,地址:http://golanger.cn/?p=91。 接下来我们看下SublimeGDB的安装以及使用: 一,安装SublimeGDB插件:打开P...阅读全文

Rhino 的博客 2012年12月7日 Rhino(犀牛)

Ubuntu下使用GDB断点Go程序

大家好,今天为大家带来Ubuntu下,使用GDB断点调试Go程序。由于之前没有接触过GDB调试,而Go语言本身内置也没有什么调试工具,不像 Eralng,有Debugger可以使用,我从网上搜索了下,也没有相关的中文教程,所以这边自己研究了下,给新手带来一篇关于GDB简单调试Go程序 的文章。(关于GDB的文章还是不少的) 首先,编写测试代码,如下: package main import ( "fmt" ) func main() { fmt.Printf("%sn", "hello, wor...阅读全文

Rhino 的博客 2012年12月7日 Rhino(犀牛)

Ubuntu下使用Sublime Text 2搭建Go开发环境

大家好,这几天捣鼓了下 golang 的环境,今天跟大家分享下心得。 Go is an open source programming environment that makes it easy to build simple, reliable, and efficient software. 摘自 golang.org 首页的介绍。 Go是Google开发的一种编译型,并发型,并具有垃圾回收功能的编程语言。 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike...阅读全文

Rhino 的博客 2012年12月7日 Rhino(犀牛)

[翻译]编译器(4)-语言设计

原文在此。另外推荐阅读王大师的“设计和开发 Yin 语言”,你会看到另一个完全不同的语言设计思路。 ————翻译分隔线———— 编译器(4)-语言设计 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 在第一部分概述了这一系列文章将介绍的内容。在第二、三部分粗略的浏览了计算机语言编译的各个步骤。 在本文中,将会比上几篇概述介绍的内容略微详细一些。我将讨论语言的规格说明书。 语言设计概述 我刚刚是不是说我将不再进行太多的概述?一转身,我就变成了一个卑鄙无耻的骗子。 为了让我们更...阅读全文

mikespook 的博客 2014/05/10 mikespook

[翻译]编译器(5)-语言规格说明书

原文在此。 ————翻译分隔线———— 编译器(5)-语言规格说明书 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 第四部分:语言设计概述 这是最后一部分关于 Calc 的设计规格! 设计语言 我希望尽量让语言保持简单。我管这个语言叫 Calc。很明了,就是用于计算器(calculator)。聪明吗,聪明吗?好,嗯,继续! 我还希望有一个单一的基础类型。我决定做一些与这个语言名字一样聪明的事情,就叫它 Integer(整数)。我知道,聪明绝顶。你的赞赏将被载入史册。为了简...阅读全文

mikespook 的博客 2014/05/11 mikespook

[翻译]编译器(6)-标识符

原文在此。 ————翻译分隔线———— 编译器(6)-标识符 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 第四部分:语言设计概述 第五部分:Calc 1 语言规格说明书 在本文中,我们终于可以开始沉浸在代码中去了! 标识符 在之前的内容里,我们已经讨论了语法和需要扫描的标识符的集合。我们定义了表达式、数字和运算符。同时还明确期望有成对的括号。还应当让解析器知道,扫描器什么时候到达文件结尾。 在开始扫描之前,为了让扫描器能够工作之前,需要将代码中的标识符格式化。在编译器所...阅读全文

mikespook 的博客 2014/05/12 mikespook

[翻译]编译器(7)-扫描

原文在此。 ————翻译分隔线———— 编译器(7)-扫描 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 第四部分:语言设计概述 第五部分:Calc 1 语言规格说明书 第六部分:标识符 现在终于可以开始在扫描器上工作了。 词法分析 那么,从哪里开始呢? 这是最难的一部分,对我来说,扫描看起来应该挺简单的,但是很快我就迷失在细节里。有许多种实现扫描器的方法,我只会向你展示其中的一种。这里是 Rob Pike 在一次演讲中的演示文稿,是关于另外一种很酷的方法:在 Go 中的...阅读全文

mikespook 的博客 2014/05/13 mikespook