Go语言中文网 为您找到相关结果 4408

Go语言现有Web开发框架

经常有人问:Go有哪些Web开发框架? 做Web开发的总是想要一个开发框架。好的框架的确很有用处。不过,如果Go新手,记得一定别被框架束缚住了,一定要学习Go的基础。 为了方便大家,我将现有的一些框架(**文档比较全的**)做一个汇总(没用过,没法提供各种对比): 1、web.go,源码地址:https://github.com/hoisie/web,官方首页:http://webgo.io/ 2、revel,类似Java的play框架。源码地址:https://github.com/robfig/revel,官方首页:http://robfig.github.io/revel/。Danny.Tian总结的学习笔记:[一步一步学习Revel Web开源框架](http...阅读全文

Golang开发环境搭建-Vim篇

Golang开发环境搭建-Vim篇 十一 07 bigwhite技术志 Editor, errcheck, Git, github, Go, go.tools, gocode, godef, goimports, Golang, golint, gorename, gosublime, hg, IDE, Mercurial, MolokaiTheme, neocomplete, neosnippet, pathogen, SublimeText2, sublimetext3, Ubuntu, ultisnips, Vim, vim-go, vimrc, Vundle, YCM, 代码补齐, 编辑器, 语法高亮 评论关闭 虽说sublimetext3+gosublime+gocode是目前较为...阅读全文

博文 2014-11-07 bigwhite

golang test测试使用

1.创建测试文件夹mysql,文件夹下的go文件的package必须与文件夹名一致(不然会识别不到) 2.创建需要测试的文件mysql.go(使用github.com/go-sql-driver/mysql包) package mysql import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func findByPk(pk int) int { var num int = 0 db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/plugin_master?charset=utf8") if err != nil { panic(err.Error()) } def...阅读全文

博文 2015-03-05 14:23 benlightning

Go与GUI——GO语言的图形界面Walk

GO没有原生的界面库,所以不能直接用来写GUI界面。但最近互联网上已经涌现出不少成熟、好用的第三方界面库。使用它们,就同样可以写出同C#、C++的界面。而且效率还更胜一筹。 关于Walk界面库(官方介绍): Walk是一个写给Golang的Window应用程序库套件,它主要用于桌面GUI的开发,但也有更多的东西。 Part One:安装Walk 在浏览这部分前,请确定已经配置安装完毕go语言的环境。如果没有,可以参考go官网的Install帮助。另外,注意:这个Walk库只能运行在Go 1.1.x及以上。 要安装Walk很简单,只要运行命令:go get github.com/lxn/walk 等待命令执行完毕,这时候检查GOPATH的src与pkg下,是否有符合自己计算机环境的walk目录...阅读全文

Go开发工具

1.4 Go开发工具 本节我将介绍几个开发工具,它们都具有自动化提示,自动化fmt功能。因为它们都是跨平台的,所以安装步骤之类的都是通用的。 LiteIDE LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),由visualfc编写。 图1.4 LiteIDE主界面 LiteIDE主要特点: 支持主流操作系统 WindowsLinuxMacOS X Go编译环境管理和切换 管理和切换多个Go编译环境支持Go语言交叉编译 与Go标准一致的项目管理方式 基于GOPATH的包浏览器基于GOPATH的编译系统基于GOPATH的Api文档检索 Go语言的编辑支持 类浏览器和大纲显示Gocode(代码自动完成工具)的完美支持Go语言文档查看和Api快速检索代码表达式信息显示F1源...阅读全文

博文 2013-05-16 19:19 e_wsq

Mac下golang开发环境配置

go语言在开发效率和运行效率中的优势让很多人青睐,所以有倾向打算转向go语言的开发。 下面介绍在Mac OS X中golang的开发环境配置。 1.安装brew brew是一个mac下的由ruby开发的包管理系统,其官网是http://brew.sh。你只要在你的终端中执行 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 便可将其安装完成。 安装完之后输入命令 brew update 即可获得更新并切换到速度最快的源上 2.安装go brew install go 3.安装分布式管理工具hg brew install hg 4.建立go的环境变量文件夹 cd $...阅读全文

博文 2015-05-19 23:34 jacklandrin

Go GUI 开源项目汇总

大家对Go开发GUI程序蛮感兴趣的,总有人问这个。这里汇总一下目前的一些第三方开源GUI库: 1、[goqt](https://github.com/visualfc/goqt),LiteIDE作者出品,Go和QT的绑定,还未发布 2、[go.uik](https://github.com/skelterjohn/go.uik),纯Go实现的并发UI工具 3、[walk](https://github.com/lxn/walk),Windows Application Library Kit 4、[gform](https://github.com/AllenDang/gform),Windows GUI framework 发现其他更好的,请评论推荐...阅读全文

gRPC的简单Go例子

gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节省CPU使用、和电池寿命。 这次看到的例子来自: gRPC in 3 minutes (Go) http://www.grpc.io/docs/installation/go.html 分别获得客户端和服务器端的代码如下: $ go get -u github.com/grpc/grpc-commo...阅读全文

博文 2015-06-03 16:56 ghj1976

无坑安装使用godep(go语言第三方依赖管理)

安装godep 官方的安装文档是使用go get github.com/tools/godep,很可惜,因为“网络”问题会报一个找不到golang.org/x/tools/go/vcs的错误。 而https://github.com/golang/tools 是 golang.org/x/tools的一个镜像,代码是一样的,所以我是如下安装的。 go get github.com/golang/tools 在GOPATH\src\github.com目录下就有tools文件夹。 在src下和github.com平级新建golang.org文件下,在此文件夹下建x文件夹,然后将tools都复制进去。 然后再执行go get github.com/tools/godep。 此时godep安装在你...阅读全文

博文 2014-12-31 16:42 wiselyman

在 Golang 中使用 Protobuf

安装 goprotobuf 1.从 https://github.com/google/protobuf/releases 获取 Protobuf 编译器 protoc(可下载到 Windows 下的二进制版本 wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz tar zxvf protobuf-2.6.1.tar.gz cd protobuf-2.6.1 ./configure make make install protoc -h 2.获取 goprotobuf 提供的 Protobuf 编译器插件 protoc-gen-go(被放置于 $GOPATH/bin 下,...阅读全文

博文 2015-03-11 11:12 wangxusummer

Go语言诞生5周年!10大Go语言开源项目推荐

引用2014年11月,Golang官方博客发布文章 ,以纪念Go语言发布5周年。文章称,Go语言在云计算时代找到了位置,预言“2015年将是Go语言急剧发展之年”。 2014年11月,Golang官方博客发布Go语言核心开发组成员Andrew Gerrand文章 《Half a decade with Go》,以纪念Go语言发布5周年。Andrew Gerrand在文章中称,Go语言在工业界向云计算转型时代找到了自己的位置,目前一些重量级的云计算项目比如有名的Docker等都是用Go语言开发的,并预言“2015年将是Go语言急剧发展之年”(“ 2015 will be Go's biggest year yet.”)。 Go语言:制霸云计算时代 引用从国内Go语言发展和应用来看,七牛算是国内...阅读全文

博文 2014-12-04 cao345657340

golang 编码转换 gbk

(一)golang 官方转换包 go get golang.org/x/text/encoding https://godoc.org/golang.org/x/text 注:Go里面内建仅支持UTF8字符串编码,因此如果你用fmt.Printf之类的函数无法正常打印出字符串内容,而只能是一堆乱码! 导入package: import ( "bytes" "fmt" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" "io/ioutil" ) gbk转换: src:="编码转换内容内容" data, _ := ioutil.ReadAll(transform.NewReader(bytes...阅读全文

博文 2015-01-07 10:37 ziyouzhiqiu

用 go 语言开发 android app

一. 下载官方源码 https://github.com/golang/mobile git clone https://github.com/golang/mobile.git 二. 将mobile目录移动到 $gopath/golang.org/x中 mkdir -p $gopath/golang.org/x && mv mobile $gopath/golang.org/x/ 三. 复制官方例子 basic 到 gopath 中 cp -a $gopath/golang.org/x/mobile/example/basic $gopath/ 四. 运行编译命令 cd $gopath/src/basic ./make.bash 1. 如果出现错误 go build runtime: an...阅读全文

博文 2015-01-28 10:27 oldfeel

go语言值得学习的开源项目推荐

谷歌官方维护了一个基于go语言的开源项目列表: https://github.com/golang/go/wiki/Projects 其中有非常多的优秀项目值得学习,有几百行代码适合新手阅读的项目,也有大型如nsq、docker等的项目。 下面推荐几款适合学习的项目: 1、cache2go https://github.com/muesli/cache2go 比较简单的一个缓存库,代码量很少,适合新手学习,可以学习到锁、goroutines等。 2、groupcache https://github.com/golang/groupcache 与memcached同一作者,相当于是memcached的go语言实现。 3、nsq https://github.com/bitly/nsq 消息分...阅读全文

博文 2015-03-02 22:52 baiyuxiong

一个新颖简便的golang orm . 容易比较容易上手。

About 一个数据库ORM. How to use? Insert go get github.com/ablegao/orm 例子 //引用模块 import "github.com/ablegao/orm" //mysql 驱动 import _ "github.com/go-sql-driver/mysql" //建立连接 // 参数分别为 名称 , 驱动, 连接字符串 // 注:必须包含一个default 连接, 作为默认连接。 orm.NewDatabase("default" , "mysql" , "user:passwd@ip/database?charset=utf8") //建立一个数据模型。 type UserInfo struct { orm.Object Id i...阅读全文

Golang- import 导入包的语法

载自:http://blog.csdn.net/zhangzhebjut/article/details/25564457?utm_source=tuicool 一 包的导入语法 在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用 fmt.Println("hello world") 上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块,当然Go的import还支持如下两种方式来加载自己写的模块: 相对路径 import "./model" //当前文件同一目录的model目录,但是不建议这种方式import 绝对路径 import "shorturl/model" //加...阅读全文

博文 2015-07-30 03:00:00 code-review

Gogs:可能是比Gitlab更好的选择

Gitlab是一个很棒的Git托管服务,几乎像GitHub一样强大。 但是,有没有能和Gitlab/Github媲美但操作更简单的项目呢?我认为 Gogs 是很好的选择。 简介 现在,GitHub已经成为首选的代码托管平台。 因为它又很多很棒的功能,操作简单,几乎所有的开发者都喜欢它。 同时,谷歌的代码托管项目准备关闭,你可以把项目转移到这里。 但如果你在写Android应用程序,或者正在创建下一个伟大的iOS游戏,或者不想让别人看到你的代码没,该怎么办? 你当然可以购买私人GitHub库,但你肯定更想把资金投资到更紧迫的事情上。 这就是 Gitlab 和 Gogs 这样的软件诞生的原因。 他们提供的服务和GitHub非常相似,不同的是,你可以把项目放在你自己的服务器上,甚至是自己的工作站上...阅读全文

博文 2015-03-18 22:03 zoucaitou

Go圣经中文版

Go圣经中文读书笔记(你懂的): [http://golang-china.github.io/gopl-zh/](http://golang-china.github.io/gopl-zh/) ![image](http://golang-china.github.io/gopl-zh/cover_small.jpg) **从源文件构建:** 1. 运行go get github.com/golang-china/gopl-zh, 获取 源文件 2. 运行npm install gitbook-cli -g, 安装 GitBook 命令行工具 3. 运行go generate github.com/golang-china...阅读全文

vim 安装vim-go 打造GOLANG 专用IDE

分两步: 第一步:安装vim插件管理器Vundle 第二步:安装vim-go插件。 另外:我也写了一个自动安装的脚本。手懒的朋友,可以自行下载使用:https://github.com/aimin/InstallvimGo.git --------------------------------------------------------------------------------------- 开始: 第一步:安装Vundle 根据Vundle的安装说明,首先安装Vundle: $ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim 然后对.vimrc进行配置,将Vundle的相关配...阅读全文

博文 2015-04-12 11:00 samxx8

golang在Windows下Sublime Text开发调试环境的配置

一、前言 近期本人有工作调动,进入了一个全新的领域[golang]服务端开发。在此写下本文,希望给那些没接触过golang开发调试环境及还在犹豫选择那家golang IDE而纠结的朋友们一点点帮助,如果你从中得到了受益并且同时拥有博客园账户的话,衷心希望能得到你的一个小小[推荐]以资鼓励。 本人操作系统为Windows 8.1 64bit,开发工具选择如下:go1.4.2.windows-amd64Sublime Text 2(插件GoSublime/GoGdb) gdb、gcc(安装mingw-w64后即可包含) git 二、golang安装 下载你需要的golang版本,本人下载go1.4.2.windows-amd64.zip解压到c:\盘 = 配置golang环境变量 = GOARC...阅读全文

搭建自己的ngrok服务

搭建自己的ngrok服务 三 14 bigwhite技术志 Amazon, DNS, EC2, github, Go, Golang, http, https, Linux, ngrok, ngrokd, tunnel, Ubuntu, vps, 亚马逊, 代理, 企业号, 公众号, 域名, 开源, 微信, 隧道 1 Comment 在国内开发微信公众号、企业号以及做前端开发的朋友想必对ngrok都不陌生吧,就目前来看,ngrok可是最佳的在内网调试微信服务的tunnel工 具。记得今年春节前,ngrok.com提供的服务还一切正常呢,但春节后似乎就一切不正常了。ngrok.com无法访问,ngrok虽然能连上 ngrok.com提供的服务,但微信端因为无法访问ngrok.com,导致消息一...阅读全文

博文 2015-03-14 bigwhite

《The Way to Go》中文版《Go入门指南》

**《The Way to Go》**经原作者授权今日起以每日一小节的进度开始翻译,中文名**《Go入门指南》**。 本书以开源书籍的形式分享在Github上,提供给有需要的Go语言爱好者。 如果有翻译不当的地方,还望大家能够 **pull request** 以为本书提供更好的翻译质量。 repo地址:[https://github.com/Unknwon/the-way-to-go_ZH_CN][1] [1]: https://github.com/Unknwon/the-way-to-go_ZH_C...阅读全文

Sublime Text 2搭建Go开发环境,代码提示+补全+调试

本文转自:http://blog.csdn.net/lvanneo/article/details/22681815,并做部分修改。 本文在已安装Go环境的前提下继续。 1、安装Sublime Text 2 2、安装Package Control。 运行Sublime,按下 Ctrl+`(`在Tab键上边),然后输入以下内容: import urllib2,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); ...阅读全文

博文 2014-07-14 19:05 cceevv

在Visual Studio Code中配置GO开发环境

一、GO语言安装 详情查看:GO语言下载、安装、配置 二、GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github.com/microsoft/vscode-go 这款插件的特性包括: 代码着彩色 代码自动完成(使用gocode) 代码片段 快速提示信息(使用godef) 跳转到定义(使用godef) 搜索参考引用(使用go-find-references) 文件大纲(使用go-outline) 重命名(使用gorename) 保存构建(使用go build和go test) 代码格式化(使用goreturns或goimports或gofmt) 调试代码(使用delve) 三、插件安装 3.1 Visual...阅读全文

golang导出excel(excel格式)

之前写过一篇导出cvs格式的,如果只是简单导出完全能满足需要。按时如果想要有复杂需求,如样式定制、多个sheet之类的,就无法完成了。之后发现有人已经实现golang直接excel对excel的操作,这里分享一下。 地址:https://github.com/tealeg/xlsx 具体各类操作可以直接看里边给出的示例或直接查看代码,用法还是很简单的。这里给出个简单的测试示例: package main import ( "fmt" "github.com/tealeg/xlsx" ) func test1() { var file *xlsx.File var sheet *xlsx.Sheet var row *xlsx.Row var cell *xlsx.Cell var err e...阅读全文

博文 2014-11-02 18:58 good-temper

golang 处理Json 数组

今天遇到个接口需要处理一个json的map类型的数组,开始想法是用simple—json里的Array读取数组,然后遍历数组取出每个map,然后读取对应的值,在进行后续操作,貌似很简单的工作,却遇到了一个陷阱。 Json格式类似下边: {"code":0 ,"request_id": xxxx ,"code_msg":"" ,"body":[{ "device_id": "xxxx" ,"device_hid": "xxxx" }] , "count":0} 很快按上述想法写好了带码,但是以外发生了,编译不过,看一看代码逻辑没有问题,问题出在哪里呢? 原来是interface{} Array方法返回的是一个interface{}类型的,我们都在golang里interface是一个万能的接受...阅读全文

博文 2014-06-06 11:18 u010471121

golang读取ini配置文件

golang读取ini配置文件 一、安装config配置解释包: go get github.com/larspensjo/config 二、载入其包及代码设置 package main import ( "flag" "fmt" "github.com/larspensjo/config" "log" "runtime" ) var ( configFile = flag.String("configfile", "config.ini", "General configuration file") ) //topic list var TOPIC = make(map[string]string) func main() { runtime.GOMAXPROCS(runtime.NumC...阅读全文

博文 2014-03-19 11:18 liaojie

go服务端----使用gin框架搭建简易服务

使用gin框架搭建简易服务 go语言web框架挺多的,各有各的特点和风格。我之所以在项目中使用gin框架,是因为项目一开始是用的martini,一个设计得很好的框架,但是存在一个比较严重的问题,就是大量使用反射使用太多导致效率过低(这个问题也导致了程序在访问量暴涨时内存上涨过快的问题),而且这个框架在去年就没有人维护了,而作者推荐使用风格很相近的gin框架,大概看了一下,风格确实差不多,而且效率很高,于是就用了gin。至于其它的框架,了解得比较多的是beego,项目中也使用了它的子项目beelog,但是由于我做的项目是偏向于应用服务,而不是网站服务,它的风格更适合网站服务,因此就没有选择它。 贴一下这两个框架的github仓库,martini就不推荐了 gin beego 下面贴一下用gin...阅读全文

博文 2016-11-04 20:00 KeKeQiaoKeLi

轻松搭建基于go1.5开发Android应用的环境

原文[https://blog.weizhe.net/?p=534](https://blog.weizhe.net/?p=534) 有兴趣的同学欢迎来一起玩:[https://github.com/vzever/gomobileapp](https://github.com/vzever/gomobileapp) go1.5beta2已经发布,正式版将在8月份发布.而早在go1.4就已发布了golang/mobile项目用以实现Android应用的开发.当前gomobile的环境部署已经相对成熟了.但项目声明必须基于go1.5,所以go1.4的同学必须要升级.因为在go1.4执行gomobile init的时候是不能通过的. 注:如果没有网络权限访问golang.org,请创...阅读全文

"go: missing Git command"的解决办法

"go: missing Git command"的解决办法 在使用go get 取资源包的时候出错误: ============================================================ C:\Users\Goopand\Desktop\Workspace\goWork\src>go get github.com/astaxie/beegogo: missing Git command. See http://golang.org/s/gogetcmdpackage github.com/astaxie/beego: exec: "git": executable file not foundin %PATH% ====================...阅读全文

博文 2014-11-13 14:07 Goopand

GoBelieve-国内唯一开源IM服务

1. 一小时接入 专注IM,无冗余功能 几行代码,一小时接入 省时省力。2. 自由定制 提供最新源码, 自行二次开发,业务协议 交互视觉均可根据业务需求 自由定制。3. 完全开源 国内唯一开源IM服务,所有源码在Github开放,与线上版本一致4. 私有云部署 彻底排除窃取隐私可能,支持自有域名部署可搭建私有云,无需更新客户端,即可热切换到私有服务,来去自由。5. 官网地址 http://developer.gobelieve.io...阅读全文

博文 2015-06-17 15:03 GoBelieve

Intellij idea14安装google-go-lang-idea-plugin插件无法指定sdk的解决办法

idea14 和go1.4不兼容,一直报这样一个错Argument for @NotNull parameter 'virtualFile' of com/intellij/openapi/projectRoots/impl/ProjectRootContainerImpl.addRoot must not be null 解决办法: google-go-lang-idea-plugin 插件虽然好,但是官方的编译版总是更新很慢,所以需要自己编译,问了老外才知道怎么编译,编译方法如下: I opened this project in IDEA Community 13 (or whatever the latest EAP is), then choose the SDK as the p...阅读全文

博文 2015-01-18 20:12 qq_19969471

基于go语言的消息推送系统架构分析

本系统是猎豹移动基于go语言开发的一套消息推送系统,源码地址:https://github.com/Terry-Mao/goim 一、架构图 二、功能简介 1.comet 长连接服务器,支持长轮训、tcp、websocket连接,有超时机制 2.logic 逻辑处理服务器,消息推送入口,通过userId在router服务器中查找对应的comet服务器,将serverId和消息一起保存到kafka队列,logic是无状态服务器,可以随意增删,因为comet需要连接logic,所以在comet服务器中需要连接logic的通过LVS的虚IP,LVS加了real server后不会断开,所以需要在comet服务触发SIGHUP,重新load配置文件。 3.router 路由服务器,保存userId和...阅读全文

博文 2015-10-10 17:26 qinyongbo

golang mysql 简单封装与使用

有时候真的没必要使用xorm, gorm这些重量级orm工具。 golang本来就有成熟的mysql库,相比node.js那些反人类又半吊子的mysql库,真的好太多了。 打开mysql import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) dbtemp, err := sql.Open("mysql", "root:password@/dbname?charset=utf8") db = dbtemp if err != nil { fmt.Println(err) } stmt, err := db.Prepare("create table if not exists dev(id int UNSIGNED AUTO_...阅读全文

博文 2015-08-11 11:37 dearplain

windows下用visual studio code 调试go代码

http://www.golangtc.com/download下载安装包或压缩包 配置环境变量 配置GOROOT: 配置PATH:在PATH最后添加 配置GOPATH:GOPATH的作用请自行百度,具体目录可以自行定义 需要的扩展插件 代码自动完成(使用gocode) 快速提示信息(使用godef) 跳转到定义(使用godef) 搜索参考引用(使用go-find-references) 文件大纲(使用go-outline) 重命名(使用gorename) 保存构建(使用go build和go test) 代码格式化(使用goreturns或goimports或gofmt) 调试代码(使用delve) 安装扩展(如果使用visual studio code 请略过此步) 代码补全扩展,在命令...阅读全文

博文 2016-02-25 16:35 eric-z

Go中进行字符集转换

Go代码本身是UTF-8的,而且官方没有提供相关字符集的转换库。不过,目前已经有一些开源库支持字符集转换。 1. [iconv-go](https://github.com/djimenez/iconv-go),通过cgo封装了iconv库; 2. [qiniu iconv](https://github.com/qiniu/iconv),同样通过cgo封装iconv库; 3. [go-charset](http://code.google.com/p/go-charset/),支持UTF-8转换为其他字符集(非iconv库),同时也封装了iconv,提供更多字符集的转换; 4. [Mahonia—a character-set conversion library fo...阅读全文

Install golang on Ubuntu 14.04 LTS

1. Install golang on Ubuntu 14.04 LTS a)~$ sudo apt-get install golang success b)~$ sudo add-apt-repository ppa:gophers/go ~$ sudo apt-get update ~$ sudo apt-get install golang-stable fail c) complie from source code fail to download source code, fuk GFW 2. Version of golang ~$ go version go version go1.2.1 linux/amd64 3. Default env of golang ~$ g...阅读全文

博文 2014-06-07 23:48 senjougahara

go web应用的部署和热更新

### 序言 Golang标准库的http部分提供了强大的web应用支持,再加上negroni等中间件框架的支持,可以开发高性能的web应用(如提供Restful的api服务等)。 通常这些web应用部署在多台Linux操作系统的应用服务器上,并用Nginx等做为反向代理,实现高可用的集群服务。 当应用版本升级时,如何实现比较优雅的多态服务器的版本更新呢?我google、baidu了一下,也许我输入的关键字不对,也许这对很多人不是个问题,反正我是没有找到完整的方案。 ### 问题 Web应用的更新,我觉得可能需要考虑几个方面的问题: * 编译好的应用二进制文件、配置文件上传到服务器上; * 应用服务器能感知到有新的版本上传; * 在没有停止服务的情况下,热更新...阅读全文

golang:高性能消息队列moonmq的简单使用

在上一篇moonmq的介绍中(这里),我只简短的罗列了一些moonmq的设计想法,可是对于怎样使用并没有具体说明,公司同事无法非常好的使用。 对于moonmq的使用,事实上非常easy,例子代码在这里,我们仅仅须要处理好broker,consumer以及publisher的关系就能够了。 首先,我们须要启动一个broker,由于moonmq如今仅仅支持tcp的自己定义协议,所以broker启动的时候须要指定一个listen address。 #启动broker ./simple_broker -addr=127.0.0.1:11182 启动了broker之后,我们就能够向该broker发送消息 #向test这个queue发送 hello msg ./simple_publisher -add...阅读全文

博文 2014-06-04 12:03 zfyouxi

RESTful API 设计最佳实践

本文由 伯乐在线 - bruce-accumulate 翻译。未经许可,禁止转载!英文出处:Vinay Sahni。欢迎加入翻译小组。 背景 目前互联网上充斥着大量的关于RESTful API(为方便,下文中“RESTful API ”简写为“API”)如何设计的文章,然而却没有一个”万能“的设计标准:如何鉴权?API 格式如何?你的API是否应该加入版本信息?当你开始写一个app的时候,特别是后端模型部分已经写完的时候,你不得不殚精竭虑的设计和实现自己app的public API部分。因为一旦发布,对外发布的API将会很难改变。 在给SupportedFu设计API的时候,我试图以实用的角度来解决上面提到的问题。我希望可以设计出容易使用,容易部署,并且足够灵活的API,本文因此而生。 AP...阅读全文

博文 2013/07/13 伯乐在线

golang+websocket

参考资料: 0. 浅谈websocket:http://www.cnblogs.com/whthomas/p/3801147.html 1. golang版websocket源码:http://code.google.com/p/go.net/websocket 2. golang版websocket文档:http://godoc.org/golang.org/x/net/websocket#ex-Handler 3. 测试浏览器是否支持websocket地址:http://www.websocket.org/echo.html 4. 简单的golang版的websocket server:http://www.xinze.me/%E5%9F%BA%E4%BA%8Egolang%E7%9A%...阅读全文

博文 2015-07-22 18:07 hezhixiong

golang学习之旅:使用go语言操作mysql数据库

1.下载并导入数据库驱动包 官方不提供实现,先下载第三方的实现,点击这里查看各种各样的实现版本。这里选择了Go-MySQL-Driver这个实现。地址是:https://github.com/go-sql-driver/mysql/。 然后按照里面的说明下载驱动包: $ go get github.com/go-sql-driver/mysql 最后导入包即可: import "database/sql" import _ "github.com/go-sql-driver/mysql" 2.连接至数据库 db, err := sql.Open("mysql", "root:root@/uestcbook") 3.执行查询 (1)Exec result, err := db.Exec( "I...阅读全文

博文 2015-05-06 23:56 michaellau

Windows环境下vscode-go安装笔记

一、介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github.com/microsoft/vscode-go 这款插件的特性包括: Colorization 代码着彩色 Completion Lists 代码自动完成(使用gocode) Snippets 代码片段 Quick Info 快速提示信息(使用godef) Goto Definition 跳转到定义(使用godef) Find References 搜索参考引用(使用go-find-references) File outline 文件大纲(使用go-outline) Workspace symbol search 工作区符号搜索(使用 go-symbols) ...阅读全文

博文 2016-02-28 12:42 zsy

Golang使用lxn/walk做GUI界面开发:邮件群发器

我也是刚刚使用walk这个组件,很多控件接口不熟悉,把我上次发的邮件群发器修改成图形界面的,线程发送邮件,gob库保存数据等。只提供作学习交流,仅供参考(界面很烂)。 接下来是main.go的代码: // Multi-SendEmail project main.go package main import ( "bufio" "encoding/gob" "errors" "fmt" "io" "net/smtp" "os" "strconv" "strings" "time" ) import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) type ShuJu struct { Name string Pwd ...阅读全文

博文 2014-12-20 12:02 一曲忧伤

IntelliJ Idea 14 使用go-lang-idea-plugin 0.9.16-alpha.9

使用Idea 14 开发Go程序的话,需要安装go-lang-idea-plugin,但是Idea提供的插件版本是0.9.15版本这个版本有各种BUG尤其是对Idea 14. 我试了很多方法之后还是无法正常使用go-lang-idea-plugin 0.9.15插件甚是头痛!不过天无绝人之路经过百度一顿搜索之后还是发现了一线希望。 我的本地环境如下: 1.OS: MAC OS YOSEMITE 10.10.1 2. IntelliJ Idea 14 FOR MAC 3.下载go-lang-idea-plugin 0.9.16-alpha.9 https://github.com/go-lang-plugin-org/go-lang-idea-plugin/releases/ 这里有各种版本的...阅读全文

博文 2015-01-01 17:48 korykim

用Go写Windows桌面应用 - 使用Form

几个月以前看到了Go的消息,读完入门PPT之后,便有种感觉,这就是我想象中的语言。语法简单,写起来手感极好,设计则处处透着简洁。 随后便开始用它代替python写一些常用小工具,堪称得心应手。几个月以后,日益离不开了,再用别的语言时总觉得缺了点什么。 我很喜欢写桌面应用,之前一直用C++,但实在不喜欢它那复杂的设计,而且也没有找到合心意的UI库。此时心里冒出了一个念头,用Go写一套UI库。很大胆,很冒险,甚至很二。很多人都提醒到,UI库这种庞大的东西靠一个人是不可能完成的。我也经常在挣扎,但还是没忍住这股冲动,我动手了! 从零开始封装win32 api,工作量挺大的,但好在已经有很多前辈已经在C++里面做过同样的事情了,所以倒也还顺利。 好了,话不多说,就先看看代码吧!是骡子是马拉出来溜溜。...阅读全文

博文 2012-02-15 13:22 AllenDang

使用 Go 语言实现优雅的服务器重启

Go被设计为一种后台语言,它通常也被用于后端程序中。服务端程序是GO语言最常见的软件产品。在这我要解决的问题是:如何干净利落地升级正在运行的服务端程序。 目标: 不关闭现有连接:例如我们不希望关掉已部署的运行中的程序。但又想不受限制地随时升级服务。 socket连接要随时响应用户请求:任何时刻socket的关闭可能使用户返回'连接被拒绝'的消息,而这是不可取的。 新的进程要能够启动并替换掉旧的。 pseudo翻译于 3周前 2人顶 顶 翻译的不错哦! 原理 在基于Unix的操作系统中,signal(信号)是与长时间运行的进程交互的常用方法. SIGTERM: 优雅地停止进程 SIGHUP: 重启/重新加载进程 (例如: nginx, sshd, apache) 如果收到SIGHUP信号,优雅...阅读全文

博文 2014-12-20 09:00:00 pseudo, Garfielt, Ley

如何编写一个分布式数据库

大家好, 我是开源项目 分布式 NewSQL 数据库 TiDB 和 分布式缓存 Codis 的 创始人 刘奇, 之前在京东, 豌豆荚做 infrastructure 相关的事情, 现在在创业 (PingCAP), 方向是分布式数据库. 最近如果有朋友关注开源社区或者HackerNews 的话,可能会发现一个叫 TiDB 的数据库项目吸引了一些眼球(https://github.com/pingcap/tidb ) 。 这是我们开源的第一个东西,短短几天得到了过千Star,特别感谢大家的支持和鼓励。 今天主要介绍一下 NewSQL 与 TiDB 的设计实现, 未来的一些 Roadmap 以及 一些做开源项目的心得。 大家可能经常用数据库,但是很少写一个数据库(实在是有点 hardcore),今...阅读全文

Intellj IDEA 15 搭建golang开发环境(超简单,可Debug,附下载链接)

直奔主题,首先安装Intellj IDEA 15(其它版本也行),可以装免费的社区版,也可以装付费的旗舰版,如果你有钱可以买正版,鉴于还有许多像我一样的穷书生,这里给个旗舰版破解的下载链接:http://pan.baidu.com/s/1o76epDo 密码: 7vjk 博主写这篇文章的时候最新版是15.0.3,但是那个版本暂时无法破解,但是15.0.2可以,下载地址里有破解工具和傻瓜式使用说明,只需三步。 然后开始装golang的插件,插件官网地址是:https://github.com/go-lang-plugin-org/go-lang-idea-plugin 提示:Idea的插件仓库里面本身也有Go,但是版本相对更新很慢,博主写文章的时候Go的版本已更新到1.6,而Idea本身插件仓...阅读全文

博文 2016-02-19 15:07 QQ245671051