【Go web开发之revel+mgo】第2章 Blog的首页与投稿设计

演示地址   http://gblog-revel.herokuapp.com/ 1.首页 好,我用revel new GBlog 建了我们的项目。 在设计之前(为什么总是设计,没有结果没有动力啊),我们先来做点东西。将public/css/bootstrap.css删了换成bootstrap3(因为它给我们生成的是2,我喜欢用3,不能说喜欢,而是正在用3,你也可以继续使用2哦!可能样式有点不一样而已。),在public/css/新建一个我们的样式:style.css,,添加内容: b...阅读全文

CSDN博客 2014-04-24 13:38 joveth

【Go web开发之revel+mgo】第3章 Blog的首页与投稿实现

演示地址   http://gblog-revel.herokuapp.com/ 1.实现投稿功能 我们先在app下建一个models文件夹(放的主要是我们的db models),在models里先建一个dao.go(恩,名字起的有点类似orm的概念,其实我们是可以使用orm框架来做的)内容: package models import ( "labix.org/v2/mgo" ) const ( DbName = "ominds" BlogCollection = "blogs" C...阅读全文

CSDN博客 2014-04-24 14:48 joveth

【Go web开发之revel+mgo】第9章 其它和??

做到这里其实可以说教程已经基本完结了。 但是,还记得我们首页Home右上角那个提醒了吗?这一章我们就来做一下这个东西。 它提醒的是最近1小时内有更新。那么首先我们的blog.go里面应该有一个按照时间查询的方法。 好,打开blog.go添加方法: func (dao *Dao) FindBlogsByDate(start time.Time) int{ blogCollection := dao.session.DB(DbName).C(BlogCollection) query := bl...阅读全文

CSDN博客 2014-04-26 15:17 joveth

【Go web开发之revel+mgo】第10章 总结

不知不觉,教程已经做完了,没有花多少时间,demo加起来也就3天时间的样子,教程的话,也就3个晚上,恩,总的来说这次尝试go还是挺有收获了,我之前很不喜欢类c类语言(包括c)这只是个人的原因(可能跟启蒙老师有关),请大家不要喷,我对于用c的人,都是抱着敬仰的态度。这次之后让我重新又对它感兴趣,当然这还要看以后的工作环境了。go看起来与c还是很相似的,不过我这个做web的人要求没那么搞,只要这门语言有相关的框架,而学习起来又是那么简单的话,我也是会花点时间去研究的。扯的远了,下一步做什么呢?老实说...阅读全文

CSDN博客 2014-04-26 15:34 joveth

【Go web开发之revel+mgo】第11章 部署到heroku上

演示地址   http://gblog-revel.herokuapp.com/ 1.申请mongohq 关于如何在注册heroku和mongohq帐号,我在之前的blog里面有说明,http://blog.csdn.net/joveth/article/details/19999535 这里简单的说一下,还记得我们的models/dao.go文件里的NewDao方法中被注释的那一行吗? session, err := mgo.Dial("mongodb://omind:jov.omin...阅读全文

CSDN博客 2014-05-04 20:31 jov123

go 语言概述

1. Go语言从何而来? 关于Go语言的萌芽时期,我们可以追溯至上个世纪。不过,直至2009年,它才真正被披露,并成为开源大家庭中的一员。在2012年,Go语言的创造者们发布了它的1.0版本。大家可能有所耳闻,Go语言出自Google公司。但很多人可能并不清楚,它的创造者们更是名头不小。他们包括Unix操作系统和B语言(C语言的前身)的创造者、UTF-8编码的发明者Ken Thompson,Unix项目的参与者、UTF-8编码的联合创始人和Limbo编程语言(Go语言的前身)的创造者Rob ...阅读全文

CSDN博客 2014-10-07 11:06 张哲BJUT

Go build constraints

Go语言有一个不(奇)错(葩)的设计,就是build constraints(构建约束)。可以在源码中通过注释的方式指定编译选项,比如只允许在linux下,或者在386的平台上编译啊之类的;还可以通过文件名来约束构造,比如xxxx_linux.go,就是只允许在linux下编译,xxx_windows_amd64.go就是只允许在windows x64下编译。 构建约束可以在很多文件中使用,不单单是GO文件。但是必须要注意的是,通过注释实施构建约束的话,比如要放在文件的开头,要优先于空行或和其他...阅读全文

博客园 2014-09-07 13:25 concurrency

代理服务扩展

之前自己实现了一个代理服务,当时考虑的是只要支持SOCKS5就好了,因为我经常用CHROME,配合着SwitchySharp,体验还是很棒的。但是我现在有点讨厌CHROME,它现在太庞大了,占用资源太多了。而且我有锁定网页的习惯,一打开CHROME,就十几个甚至二十几个进程起来,让我很不爽。但是不得不说CHROME的安全设计还是非常棒的。然后我就试了下FireFox,额,我觉着它和IE差不多.然后就放弃了,然后看看了手头上的IE已经到11了,平时用起来感觉还是很不错的,所以我想支持IE的代理。 ...阅读全文

博客园 2014-10-05 13:35 concurrency

实现一个代理服务

在天朝做程序员比较让人蛋疼,比如你想用GOOGLE,你就很蛋疼。原因大家都懂。 然后呢,一开始自己在用GOAGENT, VPN, SSH, ShadowSocks等程序,GOAGENT和SHADOWSOCKS都是非常优秀的。而自己在很早刚开始接触计算机的时候就有想法自己写一个代理程序,因为各种各样的原因总是没去做,或者说自己的需求总是能够被满足,所以没什么动力。但是自从学GO语言后,网络程序的开发变的没有之前做C/C++时那么蛋疼了,所以试着自己写一个代理程序,然后也贯彻Eating your ...阅读全文

博客园 2014-08-31 17:58 concurrency

go语言学习计划

https://github.com/Unknwon/the-way-to-go_ZH_CN    《The Way to Go》中文译本,中文正式名《Go入门指南》(目前还没有翻译完) https://github.com/astaxie/build-web-application-with-golang A golang ebook intro how to build a web with golang   《Go Web 编程》   先附电子书两部,看了一部分写的挺不错,有种越看越喜...阅读全文

CSDN博客 2014-08-04 17:09 threeyax

编译更小的Golang程序

把Go程序变小的办法是:go build -ldflags "-s -w"相关解释:-s去掉符号表,panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果,-w去掉DWARF调试信息,得到的程序就不能用gdb调试了。 -s和-w也可以分开使用.原文:http://sudochina.com/insion/blog/179/阅读全文

51CTO博客 2014-08-22 10:20:10 鲜橙加冰

1,安装go语言开发环境

go语言官方支持两种编译工具链gc和gccgo,但是其中gc更加成熟。因此本文将学习如何安装更加成熟的gc工具。     gc有两种安装方式:1,从二进制发行版安装。2,从源代码进行安装。下面将学习如何从二进制进行安装。如想了解源代码安装方式可参考如下链接:     http://go.tuna.tsinghua.edu.cn/doc/install/source     目前gc工具链只支持一下操作系统和体系结构。 Operating system Architectures Notes...阅读全文

CSDN博客 2013-07-16 23:46 Tanek722

为什么我要选择erlang+go进行服务器架构(1)

原创文章,转载请注明出处:服务器非业余研究http://blog.csdn.net/erlib 作者Sunface 估计很多同学看到这里都会觉得迷惑,go的大名已经如雷贯耳了,但是erlang?这个东东是神马?难道是编程语言?怎么从来没听说过。 这里请允许我先介绍一下使用Erlang开发的比较有名的应用: 一:whatsapp       只凭32个技术人员,如何应付4.5亿的用户?对于刚刚被Facebook用190亿美元收购的WhatsApp来说,答案是Erlang——一种诞生于上世...阅读全文

CSDN博客 2014-04-20 12:19 sunface

为什么我要选择erlang+go进行服务器架构(2)

原创文章,转载请注明出处:服务器非业余研究http://blog.csdn.net/erlib 作者Sunface 为什么我要选择Erlang呢?       一、erlang特别适合中小团队创业:        erlang有异常成熟、经过电信级别大规模验证的OTP应用库,只需要很简单的代码就能建立起异常稳定、容错性强、扩展性强、高并发的服务器框架,这也是erlang最宝贵的核心价值所在。       二、erlang是天生的并发语言:            erlang的并发特性是语言级...阅读全文

CSDN博客 2014-04-20 13:17 sunface

golang操作Redis(redigo基础篇)

现在的redis大红大紫,而且很多应用场景都适合使用Reids来做缓存或者直接做存储,典型的如mysql前端缓存、手游里面的排行榜等。那么我们怎样用golang来操作redis呢?熟悉redis的同学,肯定第一反应就是按照redis的协议,实现一个客户端与redis服务进行通信即可。不熟悉redis的同学,可能会说用cgo封装下官方的c客户端,妥妥的。是的,这两种方法都可以。既然redis这么火,那么这些工作有没有人做呢?答案是肯定的。在redis的官方网站的客户端列表里就有众多golang的客...阅读全文

51CTO博客 2014-08-21 23:42:33 gotaly

Mac环境 go语言之入门HelloWorld

1. 安装mercurial Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现 可以输入hg命令查询系统是否安装mercurial,可以如下两种命令安装 $sudo pip install mercurial 安装成功之后 $sudo easy-install mercurial 安装之后,输入hg命令,如下内容显示,表示成功安装 mercuria $ hg Mercurial Distributed SCM basic comma...阅读全文

CSDN博客 2014-10-02 21:40 angel22xu

golang精华资源

我从几个月前用go学go算是入道了,看了大量的书,做了大量的例子,收藏了不少干货,在这里分享给大家:) 1.Learning Go 《学习Go语言》 http://www.miek.nl/projects/learninggo/ 中文版http://mikespook.com/learning-go/ 2.Go by Example Go is an open source programming language designed for building simple, fast, ...阅读全文

CSDN博客 2013-10-28 14:13 songbohr

golang提供的List

作为现代10后语言的golang(12年正式发布)。Golang的标准库提供了高级的数据结构List。具体在包container/list。该包里主要有两个数据结构组成:“Element”、“List”。其中“Element”相当于CPP里面的"iterator",其有Prev和Next方法用于得到前一个或者下一个迭代器,迭代器的间接引用直接使用其成员Value。1 创建一个List对象来感受一下l := list.New() l.PushBack("one") l.PushBack(2) fm...阅读全文

51CTO博客 2014-08-20 22:34:50 gotaly

go channel实现

go channel实现 转载自:http://alpha-blog.wanglianghome.org/2012/04/13/go-channel-implementation/ G语言经过多年的发展,于最近推出了第一个稳定版本。相对于C/C++来说,Go有很多独特之出,比如提供了相当抽象的工具,如channel和goroutine。本文主要介绍channel的实现方式。 简介 channel有四个操作: 创建:c = make(chan int)发送:c <- 1提取:i <-...阅读全文

Golang中的字节序列化操作

在写网络程序的时候,我们经常需要将结构体或者整数等数据类型序列化成二进制的buffer串。或者从一个buffer中解析出来一个结构体出来,最典型的就是在协议的header部分表征head length 或者body length在拼包和拆包的过程中,需要按照规定的整数类型进行解析,且涉及到大小端序的问题。1.C中是怎么操作的在C中我们最简单的方法是用memcpy来一个整形数或者结构体等其他类型复制到一块内存中,然后在强转回需要的类型。如: // produce int a = 32; char ...阅读全文

51CTO博客 2014-08-12 20:01:54 gotaly