代码改变世界

随笔分类 -  Golang

Go Web开发之Revel - Getting Started

2012-12-28 11:18 by Danny.tian, 7068 阅读, 收藏, 编辑
摘要: 今天开始对revel框架做一些开发和总结,首先从官方的Getting Started开始1. 安装Go开发环境,还不会的可以参考搭建Go语言开发环境-基础篇及搭建Go语言开发环境-优化篇2.建立GOPATH目录并下载revel源代码mkdir ~/gocodecd $GOPATHgo get github.com/robfig/revel3.编译revel命令行工具,revel自己封装了go的命令行工具,创建revel项目、打包发布基本都用这个工具,执行下面的命令go build -o bin/revel github.com/robfig/revel/cmd4.可以将编译出来的revel命令 阅读全文

Go 贡献者 minux.ma 关于内存泄漏问题的详细解释

2012-12-11 14:14 by Danny.tian, 1440 阅读, 收藏, 编辑
摘要: 目前Go使用的GC是个保守的GC,换句通俗的话说就是宁可少释放垃圾不可误释放还在用的内存;这个反映在设计上就是会从堆栈、全局变量开始,把所有可能是指针的字全部当作指针,遍历,找到所有还能访问到的内存中的对象,然后把剩下的释放。那么如何判断一个字(uintptr)可能是指针呢?大家知道Go的内存分配是参考的tcmalloc,并做了一些改动,原先tcmalloc是使用类似页表的树形结构保存已经从操作系统中获得的内存页面,Go使用了另外一个办法。由于Go需要维护每个内存字的一些状态(比如是否包含指针?是否有finalizer?是否是结构体的开始?还有上面提到的是否还能访问到的状态),综合在一起是每个 阅读全文

Go开发常见问题

2012-12-10 17:46 by Danny.tian, 493 阅读, 收藏, 编辑
摘要: 1、疑问:go get 命令不能下载到GOPATH,在使用go get github.com/robfig/revel 时,发现一个奇怪的问题,为啥运行命令后在GOPATH/src下面找不到下载的文件捏?原因:如果第一次没有设置GOPATH的话,调用go get github.com/robfig/revel源代码会被下载到GOROOT/src/pkg里面,即使之后设置了GOPATH也会因为之前已经下载到了GOROOT下面而不会下载到GOPATH里面,只有删除了GOROOT里面的文件才会优先考虑GOPATH。 阅读全文

搭建Go语言开发环境-优化篇

2012-12-08 14:53 by Danny.tian, 3814 阅读, 收藏, 编辑
摘要: 在上篇搭建Go语言开发环境-基础篇中提到的Go环境变量设置准备在这篇文章中进行一下优化已增加开发效率之前的环境变量export GOROOT=$HOME/goexport GOBIN=$GOROOT/binexport GOARCH=amd64export GOOS=linuxexport PATH=$GOBIN:$PATHexport GOPATH=$HOME/goprograms修改后的环境变量~/.bashrc文件变成了如下这样:export GOROOT=$HOME/goexport PATH=$GOROOT/bin:$PATH为什么要删除GOBIN GOARCH GOOS呢??因为系 阅读全文

搭建Go语言开发环境-基础篇

2012-12-08 10:54 by Danny.tian, 4590 阅读, 收藏, 编辑
摘要: 1. 安装Go环境(源码安装)配置环境变量打开~/.bashrc,添加如下变量export GOROOT=$HOME/goexport GOBIN=$GOROOT/binexport GOARCH=amd64export GOOS=linuxexport PATH=$GOBIN:$PATHexport GOPATH=$HOME/goprograms运行source ~/.bashrc安装Go工具链sudo apt-get install bison ed gawk gcc libc6-dev make git安装Mercurialsudo apt-get install mercurial下载 阅读全文