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

[笔记]Go语言的字符串拼装方式性能对比

Go语言中字符串的拼装方法很多,那么问题来了,到底哪家性能好? 下面代码,分别比较了 fmt.Sprintf,string +,strings.Join,bytes.Buffer,方法是循环若干次比较总时间。 在VMWare下的Ubuntu 14.04下运行的结果表明: fmt.Sprintf 和 strings.Join 速度相当 string + 比上述二者快一倍 bytes.Buffer又比上者快约400-500倍 如果循环内每次都临时声明一个bytes.Buffer来使用,会比持续存在慢50%,但是仍然很快 测试代码如下: package main import ( "bytes" "fmt" "strings" "time" ) func benchmarkStringFuncti...阅读全文

博文 2015-03-07 12:21 journeyonmyway

Go 语言测试(Test)、性能测试(Benchmark) 学习笔记

简介 Test Package testing provides support for automated testing of Go packages. It is intended to be used in concert with the “go test” command, which automates execution of any function of the form. testing包提供了对Go包的自动测试支持。 这是和go test 命令相呼应的功能, go test 命令会自动执行所以符合格式 func TestXXX(t *testing.T) 的函数。 Benchmark Functions of the form func BenchmarkXxx(b ...阅读全文

go语言的一些资料

1.首先推荐一个基础学习go的,趣味性,针对性不错,对基础很好。http://go-tour-zh.appsp0t.com/#1 2.tideide 一个好go编辑器,能调试,有项目构建,方便配置交叉编译,语法高亮功能。 3.go文档,中文的虽然不全,但是基本的都有https://golang-china.googlecode.com/svn/trunk/Chinese/golang.org/index.html#toc11 (也许要架梯子,你懂的) 4.go语言google group https://groups.google.com/forum/#!forum/golang-china 5.go实现的blog合集:http://www.cnblogs.c...阅读全文

go语言init和main函数

Go里面有两个保留的函数:init函数和main函数。下边就来比较一下两个函数的异同。 相同点:两个函数在定义时不能有任何的参数和返回值,且Go程序自动调用。 不同点:init可以应用于任意包中,且可以重复定义多个。main函数只能用于main包中,且只能定义一个。 下边说一下两个函数的执行顺序: 对同一个go文件的init()调用顺序是从上到下的 对同一个package中不同文件是按文件名字符串比较“从小到大”顺序调用各文件中的init()函数,对于 对不同的package,如果不相互依赖的话,按照main包中"先import的后调用"的顺序调用其包中的init() 如果package存在依赖,则先调用最早被依赖的package中的init() 最后调用main函数 下图截自astaxie...阅读全文

博文 2015-03-24 15:46 Mervyn1205

杭州招聘全职Golang高级工程师

**要求** 1、开发snmp、xmpp、APNS推送等系统服务 2、知道ruby on rails更好, web这一层我们是用ROR写的 3、一年以上Golang经验, 想长期沿着Golang走下去 4、有github帐号, 熟悉linux/mac+git开发环境 **团队** 20人左右, 技术不到10人, 服务器暂时放Ruby、Go各1人, iOS、Android各1人 、嵌入式以及硬件共4人、测试、支持什么的2人、架构1人,所以Go这块要可以独立工作的 **产品** 户外的智能WiFi应用 **地点** 杭州文一西路 **待遇** 8-12k+五险一金+年终奖励 **联系人** www.sharp.bz...阅读全文

主题 2013-10-23 23:44:39 sharp

GopherLua 支持 LUA解释器!

以前要想在Go里用 LUA, 有两条路: 1)自己封装 systemcall,调用 lua.dll 2) 使用 cgo 自己编译 LUA 的源代码 方法1复杂麻烦不通用不优雅,方法2对Windows用户满是泪呀 现在终于好了, 有了方法3)Lua 虚拟机和编译器:GopherLua 基本就是 将LUA 的源代码,用go重新写了一遍, 据说实际试表明 GopherLua 的性能是其他同类实现的 20 倍。 我从 github 上下载了代码测试,果然太爽了! 这个才是 golang 的技术社区呢!!...阅读全文

内网穿透工具 frp

frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。 ### frp 的作用 * 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。 * 对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。 * 利用处于内网或防火墙后的机器,对外网环境提供 tcp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。 * 可查看通过代理的所有 http 请求和响应的详细信息。(待开发) ### 开发状态 frp 目前正在前期开发阶段,master ...阅读全文

开源项目 2016-09-07 23:56:33 fatedier

Boom — Go语言实现的性能测试工具

Boom — Go语言实现的性能测试工具 HTTP(S) load generator, ApacheBench (ab) replacement, written in Go Boom is a tiny program that sends some load to a web application. It's similar to Apache Bench (ab), but with better availability across different platforms and a less troubling installation experience. 项目地址:[https://github.com/rakyll/boom](https:/...阅读全文

golang 的 sync.WaitGroup

WaitGroup的用途:它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。 官方对它的说明如下: A WaitGroup waits for a collection of goroutines to finish. The main goroutine calls Add to set the number of goroutines to wait for. Then each of the goroutines runs and calls Done when finished. At the same time, Wait can be used to block until all goroutines have fini...阅读全文

beego关于session的问题

我在自己的网站中使用的是简单的:登陆时setsession,使用时getsession,在退出登陆时deletesession。在电脑上使用没有问题,但我同时在手机上测试的,手机上set,get都没问题,但delete就不行了,怎么都退不出登陆状态,重启手机浏览器都不行,删除cookie后才可以退出登陆,这是什么原因,deletesession操作时应该是有删除cookie处理的,是不是手机浏览器不支持外部的删除cookie操作?再问一句,好像手机浏览器不支持301跳转!这是什么原因。电脑用的是firefox浏览器,手机用的是安卓uc浏览器...阅读全文

golang对象序列化和反序列化

模拟测试1,000, 000条数据 每条10个字节 也就是10M不到的 数据(高度结构化的数据) 过程 1.对象序列化为 byte 2.byte反序为对象 3.gzip压缩byte 测试语言go测试方案: raw byte,json ,bson, msgpack (protostuff需要先做对象配置文件,比较麻烦,通常认为和msgpack性能相当 )结果:msgpack 胜出 大小 gzip压缩后大小 对象到byte耗时 byte到对象耗时 raw 10000000 6573252(65%) 未测试 未测试 json 47515988 7919511 (17%) 3248ms 5280ms bson 49888910 9506965 (19%) 3863ms 6235ms msgpack ...阅读全文

goconvey - 课时 1:优雅的单元测试

注意事项 本博客隶属于 goconvey - 课时 1:优雅的单元测试 请注意配套使用。 本博文为 goconvey - Go 语言单元测试包的配套博客,旨在通过文字结合代码示例对该库的使用方法和案例进行讲解,便于各位同学更好地使用和深入了解。 库简介 Go 语言虽然自带单元测试功能,在 GoConvey 诞生之前也出现了许多第三方辅助库。但没有一个辅助库能够像 GoConvey 这样优雅地书写代码的单元测试,简洁的语法和舒适的界面能够让一个不爱书写单元测试的开发人员从此爱上单元测试。 下载安装 您可以通过以下两种方式下载安装 GoConvey: gopm get github.com/smartystreets/goconvey 或 go get github.com/smartystre...阅读全文

Pokemon Go 教程

 澳大利亚apple id 账号:fdf087469@163.com 密码:He807671626 据说不要登icould,一登就会锁了 将iPhone内部的Appstore ID更改一下。登入AppStore,可以看见AppStore已经自动切换到澳大利亚区,直接搜索Pokemon Go,点击下载。此过程稍微慢点,请各位耐心等待。 pokemon go中国玩家必须懂的教程 下载完先别着急,将刚刚iCloud ID更换成你原来的,再次登入AppStore,已经自动切换到国区(最垃圾的就是国区!!),搜索下载一个VPN,这里我推荐Green VPN或者Tiger VPN,可以免费用10天(感觉爽就付费包月咯)。 pokemon go中国玩家必须懂的教程 下载完VPN,打开VPN软件,会提示设...阅读全文

HTTP API 网关 API-Gateway

Gateway是一个使用go实现的基于HTTP的API 网关。 **特性:** * API 聚合 * 流控 * 熔断 * 负载均衡 * 健康检查 * 监控 * 消息路由 * 后端管理WebUI **能做什么:** * 规划更友好的URL给调用者。 * 聚合多个API的结果返回给API调用者,利于移动端,后端可以实现原子接口。 * 保护后端API服务不会被突发异常流量压垮。 * 提供熔断机制,使得后端API Server具备自我恢复能力。 * 借助消息路由能力,实现灰度发布,AB测试...阅读全文

分布式文件系统 SeaweedFS

SeaweedFS 是简单,高伸缩性的分布式文件系统,包含两部分:存储数十亿的文件;快速为文件服务。SeaweedFS 作为支持全 POSIX 文件系统语义替代,Seaweed-FS 选择仅实现 key-file 的映射,类似 "NoSQL",也可以说是 "NoFS"。 SeaweedFS 仅花费 40 字节的硬盘来存储每个文件的元数据。 基准测试基于 Mac Book,固态硬盘,CPU:1 Intel Core i7 2.6GHz。 编写 1 百万的 1KB 文件:

Concurrency Level:      16
Time taken for tests:   88.796 seconds
Complete requests:  ...阅读全文

golang教程

最近兴趣所致,打算写一本书《build-web-application-with-golang》 目前已经完成了前面两章 1.GO环境配置 1.1. GO安装 1.2. GOPATH 与工作空间 1.3. GO shell命令 1.4. GO开发工具 1.5. 小结 2.GO语言基础 2.1. 你好,GO 2.2. GO基础 2.3. 流程和函数 2.4. struct 2.5. 面向对象 2.6. interface 2.7. 并发 2.8. 通讯 2.9. 小结 3.设计开发博客系统 4.如何实现路由 5.web语言处理 6.模版处理 7.session和cookie 8.数据库 9.如何编写REST 10.文件上传 11.webSockets 12.静态文件服务 13.如何国际化 14...阅读全文

博文 2012-09-02 10:07 astaxie

golang读取java或者go的webservice服务

由于自己搭建了java webservice,已经存在的wsdl.使用go去调用;获取其中的数据信息 ,如果go搭建了webservice ,应该一样(个人理解) package main import ( "fmt" "time" // 缺包,自己补全 ) func main() { // 参数封装 pars := make(map[string]interface{}) pars["Message"] = "this is test str" // 这是测试 pars["signMessage"] = "" data, _ := json.Marshal(pars) dataStr := string(data) ...阅读全文

<10> go test单元测试

之前看了go官方的github上关于golang的单元测试,现在总结一下关键的地方。 单个测试 文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码 你必须import testing这个包 所有的测试用例函数必须是Test开头 测试用例会按照源代码中写的顺序依次执行 测试格式:func TestXxx(t *testing.T),Xxx部分可以为任意的字母数字的组合,但是首字母不能是小写字母[a-z],例如Testintdiv是错误的函数名。 函数中通过调用testing.T的Error, Errorf, FailNow, Fatal,FatalIf方法,说明测试不通过,调用Log方法用来记录测试的信息。 举个例子 package gotest impor...阅读全文

博文 2015-11-26 14:41 a11101171

保存一个别人的golang 日志库

package loggerimport ( "fmt" "log" "os" "runtime" "strconv" "sync" "time")const ( _VER string = "1.0.0")type LEVEL int32var logLevel LEVEL = 1var maxFileSize int64var maxFileCount int32var dailyRolling bool = truevar consoleAppender bool = truevar RollingFile bool = falsevar logObj *_FILEconst DATEFORMAT = "2006-01-02"type UNIT int64const ( _ = iot...阅读全文

用wrk对golang/nodejs/nginx做性能测试对比

sudo taskset -c 1 ./wrk -c1 -t1 -d30 http://localhost/hello wrk+nginx(helloworld module) sudo taskset -c 0 sbin/nginx nginx: cpu:76% wrk: cpu:70% Running 30s test @ http://localhost/hello 1 threads and 1 connections Thread Stats Avg Stdev Max +/- Stdev Latency 61.55us 27.57us 4.30ms 99.28% Req/Sec 11.58k 682.50 14.44k 76.94% 325276 requests in 30.0...阅读全文

博文 2015-05-18 20:41 chuqingq

雨痕新作《Go语言学习笔记》出版了

《Go语言学习笔记》——雨痕著 出版了。购买地址: - [china-pub](http://product.china-pub.com/4971695) - [京东](http://item.jd.com/10466396823.html) 目录: ``` 上卷 语言详解 第1 章 概述 ............... 3 1.1 特征 ....................... 3 1.2 简介 ....................... 6 第2 章 类型 ..............18 2.1 变量 ..................... 18 2.2 命名 ..................... 22 2.3 常量 ........................阅读全文

[笔记]Go语言写文件几种方式性能对比

Go语言中写文件有多种方式,这里进行如下几种方式的速度对比: 打开文件,写入内容,关闭文件。如此重复多次 打开文件,写入内容,defer 关闭文件。如此重复多次 打开文件,重复多次写入内容,defer 关闭文件 在VMWare下的Ubuntu 14.04下运行的结果表明: 方式1速度最慢,但是慢的很稳定 方式2比方式1略快,但是重复次数多了后会报错,应该是defer被压栈太多导致系统撑不了太多打开的文件 方式3速度约是前两者的2倍,因为减少了很多打开关闭文件的操作 测试代码如下: package main import ( "fmt" "os" "time" ) func benchmarkFileWrite(filename string, n int, index int) (d tim...阅读全文

博文 2015-03-07 21:51 journeyonmyway

Golang数据库操作

Golang支持DB操作位于database包下,支持基本CRUD操作、事务和Prepared Statement,本文以MySQL为例。 MySQL驱动安装 使用数据库之前,必须安装相关MySQL数据驱动[1],如果未安装驱动或者没有引入驱动库会报以下错误: failed to open database: sql: unknown driver "mysql" (forgotten import?) 安装golang mysql driver go get github.com/go-sql-driver/mysql 代码中还需注册数据库驱动,通过引入空白倒入[2]mysql包来完成 import("database/sql"// 引入数据库驱动注册及初始化_ "github.com/g...阅读全文

博文 2015-01-02 17:04 CoProphet

beego框架下无法读取中文cookie

使用场景是应用在登录界面 当用户名为纯英文时,一切正常 当用户名为中文时 经测试排查 1、可以在浏览器开发工具中看到中文cookie,也就是beego成功将中文写入cookie 2、在读取时,读取到的为空(如果是英文就可以读取到) 使用的是Ctx.SetCookie 和 Ctx.GetCookie 请大家帮忙指点一...阅读全文

5分钟学习基于Go,go-microservice-template,Minke的微服务

【编者的话】本篇文章介绍了Go语言下构建微服务的例子,作者利用一个helloword讲解了如何使用他的微服务框架,该框架不仅包含了构建服务,还包括路由、请求验证、日志记录、测试、动态配置变更,最后将提供了将服务整合到Docker容器并持续集成。本文干货满满,虽然需要一些对Go语言的基础,但是这构建微服务的思路是通用的。 @Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自携程、PPTV、蚂蚁金服、京东、浙江移动、海尔电器、唯品会、eBay、道富银行、麻袋理财、土豆网、阿里百川、点融网等公司的技术负责人将带来实践经验分享,3月21日之前购票只需238元,欢迎感兴趣的同学抢购。 介绍几周前我去参加一个零售环境下的技术会议,直到午饭时间都没人提及'Docker'或者'...阅读全文

GO语言练习:第二个工程--模拟音乐播放器

1、代码 2、编译及运行 1、目录结构 1.1) 1 $ tree 2 . 3 ├── mplayer.go 4 └── src 5 ├── mlib 6 │ ├── manager.go 7 │ └── manager_test.go 8 └── mp 9 ├── mp3.go 10 └── play.go 1.2)mlib库的代码 1.2.1)manager.go代码 1 package library 2 3 import "errors" 4 5 type MusicEntry struct { 6 Id string 7 Name string 8 Artist string 9 Genre string 10 Source string 11 Type string 12 } 1...阅读全文

博文 2015-07-13 22:45 fengbohello

Go语言程序测试

最近一直在搞各种测试,然后今天周末翻翻书,发现特价萝卜的书上在测试方面写得挺全的。 这书是之前CU(chinaunix.net)论坛。搞活动得到奖品(还有作者亲笔签名),拿回来都没看完. 因为写得太太太细了,又厚。 参考他的书及官网的文档,再把测试方面的东西过一下还是有点意思的. 这篇主要讲这几点: 一.Testing的几种不同形式 功能测试: TestXxxx(t *testing.T) 基准测试: BenchmarkXxxx(b *testing.B) 样本测试: Example_Xxx() 用于测试的Main函数: TestMain(m *testing.M) // // func TestMain(m *testing.M) { // flag.Parse() // os.Exit(...阅读全文

博文 2015-11-22 13:04 xcltapestry

Golang 数据库操作

Golang 数据库操作 Golang 数据库 MySQL Golang支持DB操作位于database包下,支持基本CRUD操作、事务和Prepared Statement,本文以MySQL为例。 MySQL驱动安装 使用数据库之前,必须安装相关MySQL数据驱动[1],如果未安装驱动或者没有引入驱动库会报以下错误: failed to open database: sql: unknown driver "mysql" (forgotten import?) 安装golang mysql driver go get github.com/go-sql-driver/mysql 代码中还需注册数据库驱动,通过引入空白倒入[2]mysql包来完成 import( "database/sql"...阅读全文

Go 1.7中值得关注的几个变化

零、从Release Cycle说起 从Go 1.3版本开始,Golang核心开发Team的版本开发周期逐渐稳定下来。经过Go 1.4、Go1.5和Go 1.6的实践,大神Russ Cox在Go wiki上大致定义了Go Release Cycle的一般流程: 半年一个major release版本。 发布流程启动时间:每年8月1日和次年2月1日(真正发布日期有可能是这个日子,也可能延后几天)。 半年的周期中,前三个月是Active Development,then 功能冻结(大约在11月1日和次年的5月1日)。接下来的三个月为test和polish。 下一个版本的启动计划时间:7月15日和1月15日,版本计划期持续15天,包括讨论这个major版本中要实现的主要功能、要fix的前期遗留的b...阅读全文

goconvey — Go语言优雅的单元测试工具

这个测试工具真的很酷,真心推荐使用使用。 主要特性: - 集成官方 `go test` - 可读性好(带颜色)的控制台输出 - 全自动的 Web UI - 全面的回归测试套件 - 测试代码自动生成 - ... [官网](http://goconvey.co/) [官方文档](https://github.com/smartystreets/goconvey/wiki) 无闻:[《goconvey - 课时 1:优雅的单元测试》](http://wuwen.org/article/42/02-goconvey-class1.html) 视频教程:[《GoConvey, Part 1: Introduction》](https://www.youtu...阅读全文

Go语言的timeout和select随机问题

看无闻的Go教程中提到,Go的select对channel的操作,是随机的。我测试的时候,在select中对channel写数据,确实是随机的。但是,我还想证实一下,select对channel的读,也是随机的。下面是一个例子,我通过goroutine,对ch1和ch2两个channel读取数据。为了避免ch1和ch2刚顺序写完就被读出来,影响实验的准确性。我特意在goroutine中使用了timeout。但是我发现两个问题: ①:最终还是先输出ccc,再输出ddd,运行多少次都是一样。我的理解,虽然goroutine后台去执行了,但是休眠5s的过程中,ch1和ch2都已经有值了,那么休眠结束后,理应会随机先输出ccc或者ddd啊 ②:关于timeout,我用sublime的插件...阅读全文

性能测试工具boom

Boom 是 google 一女工程师使用 Go 语言开发的类似 apache ab 的性能测试工具。相比 ab,boom跨平台性更好,而且更容易安装。 ##安装## `go get github.com/rakyll/boom` ##使用## ``` Usage: boom [options...] Options: -n Number of requests to run. -c Number of requests to run concurrently. Total number of requests cannot be smaller than the concurency level. -q Rate...阅读全文

开源项目 2014-10-31 15:42:35 rakyll

Archlinux下Golang环境配置

一、准备 1)golang 安装:# pacman -S go/$ sudo pacman -S go 2)liteide 安装:# pacman -S liteide/sudo pacman -S liteide 二、配置环境 1)golang Archlinux中配置环境最好放到自启动中。 #nano /etc/profile.d/go.sh #set go environment export GOPATH=/home/用户名/Workspaces/Go #根据自己的Go工作目录替换 export GOBIN=$GOPATH/bin export PATH=$GOBIN:$PATH 以上代码在Archlinux(Linux localhost 4.2.2-1-ARCH #1 SMP P...阅读全文

博文 2015-10-05 08:40 大糊涂

中润四方中央研究院招聘GO语言高级程序员(工作地点:深圳)

大家好,我司目前正在招聘GO语言相关的高级程序员,大家可以发简历到fansy98@163.com, 具体招聘信息如下: ### 招聘需求 ### **职位1:中润四方中央研究院平台部高级程序员** 要求:3人 薪资待遇:8K~1.5万 岗位职责: 1、负责Docker容器平台开发; 2、根据需求文档和架构设计文档进行模块开发、功能测试、系统集成。 岗位要求: 1、计算机及相关专业本科以上学历(211工程学校优先考虑),良好的英语读写能力,四年以上相关工作经验; 2、精通Linux环境下的c程序设计语言,熟悉Go语言的优先考虑; 3、精通基本算法,并具有良好的数据结构基础; 4、熟悉Linux环境下的脚本编程,包括Shel...阅读全文

Go 解决"no buildable Go source file in"问题

【问题】 我有一个文件夹,文件夹名字叫 12 ,并且我创建了一个Go源文件 12_test.go,代码如下: package main import "fmt" func main() { fmt.Println("Hello world") } 运行下面命令时出了错: go build 12_test.go "go build command-line-arguments: no buildable Go source files in D:\12" 【解决】 _test后缀在Go语言中有着特殊含义,是用来给Go程序做测试的,build工具会忽略它们,它们会运行 go test。从文件名中删除_test,或者重命名就可以解决这个问题...阅读全文

博文 2016-12-15 21:00:02 吃一堑消化不良

终极 Web 应用性能和压力测试工具 Gor

常见的 Web 应用的压力测试工具 Web 应用压力测试工具有很多,比如 Apache ab,node-ab,Apache JMeter, LoadRunner, httperf。但是这些工具都没能解决一个问题: 如何正确模拟生产环境的流量 如今 Web 应用的架构变得非常复杂,内部包含复杂的各种负载均衡、 服务和 RPC 调用关系,简单的发送 GET 请求到某些 URL 或者 API 接口完全无法模拟真实的流量。假如回放 HTTP 日志,操作又异常麻烦。Tcpcopy 虽然能够复制实时流量,但是操作也很复杂。之前的 亚马逊云平台的迁移 就用到了 Gor 这个工具。 Gor 是 Web 应用压力测试的完美方案 我一直在找一个简单又方便的解决方案,直到找到了 Gor 。Gor 是用 Golan...阅读全文

博文 2015-06-11 09:07 xtqve

HTTP 流量复制工具Gor

Gor 是用 Go 编写的简单 HTTP 流量复制工具,主要是为了从生产服务器返回流量到开发环境。使用 Gor 可以在实际的用户会话中测试代码。 Gor 基础工作流: ![Diagram](http://static.oschina.net/uploads/img/201507/21161205_ezre.jpg) 从端口捕获流量: # Run on servers where you want to catch traffic. You can run it on each `web` machine. sudo gor --input-raw :80 --output-tcp replay.local:28020 # Replay server (rep...阅读全文

开源项目 2015-08-02 22:24:59 buger

Golang测试包小结

Golang测试包 golang自带了测试包(testing),直接可以进行单元测试、性能分析、输出结果验证等。简单看着官方文档试了试,总结一下: 目录结构和命令 使用golang的测试包,需要遵循简单的目录结构 测试代码放在待测试代码的目录下(一个包内),以_test.go结尾,例如如下目录结构,MyTest目录下有待测试的代码文件MyTest.go和测试代码MyTest_test.go . |-- bin | `-- main |-- pkg | `-- darwin_amd64 | `-- MyTest.a `-- src |-- MyTest | |-- MyTest.go | `-- MyTest_test.go `-- main `-- main.go 直接在MyTest目录下执...阅读全文

闲谈Kubernetes 的主要特性和经验分享

主要介绍 Kubernetes 的主要特性和一些经验。先从整体上看一下Kubernetes的一些理念和基本架构, 然后从网络、 资源管理、存储、服务发现、负载均衡、高可用、rolling upgrade、安全、监控等方面向大家简单介绍Kubernetes的这些主要特性。 我们先从整体上看一下Kubernetes的一些理念和基本架构, 然后从网络、 资源管理、存储、服务发现、负载均衡、高可用、rolling upgrade、安全、监控等方面向大家简单介绍Kubernetes的这些主要特性。 当然也会包括一些需要注意的问题。主要目的是帮助大家快速理解 Kubernetes的主要功能,今后在研究和使用这个具的时候有所参考和帮助。 ##1.Kubernetes的一些理念: 1...阅读全文

Go语言各大框架或库的HTTP路由性能测试

#### 测试的 routers & frameworks: * [Beego](http://beego.me/) * [go-json-rest](https://github.com/ant0ine/go-json-rest) * [Denco](https://github.com/naoina/denco) * [Gocraft Web](https://github.com/gocraft/web) * [Goji](https://github.com/zenazn/goji/) * [Gorilla Mux](http://www.gorillatoolkit.org/pkg/mux) * [http.ServeMux](http://gola...阅读全文

为什么计算阶乘 ,7的阶乘是5040

为什么计算结果 7的阶乘是5040 见这个连接: http://stackoverflow.com/questions/11270547/go-big-int-factorial-with-recursion ```golang func factorial(x int) (result int) { if x == 0 { result = 1; } else { result = x * factorial(x - 1); } return; } ``` as a big.Int so as to make it effective for larger values of x. The following is retur...阅读全文

vim中go的语法高亮设置

测试环境:ubuntu 14.04 之kylin 版 vim本身不带golang的语法高亮 解决方案: 在 /usr/share/vim/vim74/ 中 有这么几个文件夹:syntax, ftplugin, indent, compiler等, 我们查看syntax可以看到有gcc.vim等其他语法文件,但是没有go.vim, 好在我们可以从源码下载 http://www.golangtc.com/download 下载 go1.3.3.src.tar.gzgo1.3.3 (source only),解压缩, 将下载目录的 go/misc/vim/中有对应的 syntax, ftplugin, indent, compiler 中的go.vim文件复制到/usr/share/vim/vim...阅读全文

“GO语言中文网实验室”上线,提供Golang在线开发环境。

近日,GO语言中文网与“实验楼”整合双方资源,共同建立了“GO语言中文网实验室”,让用户能够以一种更便捷、更高效、更灵活的方式进行GO语言的开发学习。 实验楼是一家免费的IT在线实训平台,为IT爱好者提供了编程、运维、测试、云计算、大数据、数据库等全面的IT技术动手实践环境。 本次实验楼免费为GO语言中文网提供了Golang在线开发环境,用户在阅读文章时,可以点击文章右侧的Golang在线开发环境,登录实验楼后即可直接进入一个完整的Golang在线开发环境,用户可以在该环境中体验文章中涉及的技术,通过动手实践的方式学习技术文章的真正精髓。 ![](http://studygolang.qiniudn.com/150317/3177ab001d2c5b98d4...阅读全文

Go轻松学Android移动App,基础知识一网打尽,你值得拥有

从2013年开始,Go语言开始火了,所以我也学习了一下。另外我用了大概两周的时候做了一个Android的App,从Go语言的环境安装,变量定义,函数定义,高级数据类型之结构体和接口,并行计算,使用包和测试管理项目等都有详细的介绍,而且使用markdown编写,然后转成html,最后给示例代码都加上美化显示。里面的每个例子都是本人亲自写的并测试通过的,可以保证100%正确率。你可以利用点滴的时间,比如坐地铁啊,Bus啊,都可以看看。很方便。 现在我已经将它发布到小米的应用商店。欢迎下载使用。别忘记评论一下哦。 http://app.xiaomi.com/detail/54217 另外:目前没有IOS版的,很抱歉。 不过我做了一个html版本的,可以在电脑上看,如果你有...阅读全文

p2p端口映射工具 dog-tunnel

狗洞是一个高速的 P2P 端口映射工具,同时支持Socks5代理。 0.5版后开始开源,UDP底层基于开源库KCP重写,效率大大提高,在恶劣环境下优势明显。 同时提供非P2P版本(Lite版本),两端连接过程完全不依赖中间服务器,支持加密和登陆认证,自动重连,但是需要人为确保两端能正常连通(否则请使用默认的P2P版本) ![image](http://static.oschina.net/uploads/space/2014/1213/080425_bS2n_12.png) 特性: * 数据安全,P2P模式通讯时数据不经过服务端,用户可自定义访问密码 * P2P模式底层采用KCP协议,在恶劣网络环境下比TCP延迟降低 30%-40% * P2P模式支持AES加密 * P2P模式可...阅读全文

开源项目 2014-12-13 00:00:00 vzex

请教一个golang如何通过代理服务器验证问题

最近在做一个简单测试,在公司内网实现抓取外网一个网页,但是因为公司是通一个代理服务器出去的,所以需要先通过代理服务器验证。找了好久的资料实在没找到,我用c#可以实现。主要是不知道golang下面怎么实现代理服务器的验证,代码是在网上一个关键代码如下: func fetch(url, proxy_addr *string) (html string) { transport := getTransportFieldURL(proxy_addr) client := &http.Client{Transport: transport} req, err := http.NewRequest("GET", *url, nil) ****req.SetBasicAut...阅读全文

go语言操作mysql范例(增删查改)

http://blog.csdn.net/jesseyoung/article/details/40398321 go语言连接mysql简介 go官方仅提供了database package,database package下有两个包sql,sql/driver。这两个包用来定义操作数据库的接口,这就保证了无论使用哪种数据库,他们的操作方式都是相同的。 但go官方并没有提供连接数据库的driver,如果要操作数据库,还需要第三方的driver 包,最常用的有: https://github.com/Go-SQL-Driver/MySQL支持database/sql,全部采用go写。 https://github.com/ziutek/mymysql 支持database/sql,也支持自定义...阅读全文

博文 2016-06-10 03:05 kungfupanda

关于Go程序如何调试的讨论

对于Java或微软系的程序员,可能都会觉得IDE调试工具很爽。Java的IDE和微软的Visual Studio 确实很强大(当然,貌似 Mac 下的 Xcode 调试也很牛),很多程序员应该很依赖这些IDE。 不过,对于 PHP/Python 这样的脚本语言,大部分这类程序员应该都不用调试工具的,一般都是打 log,而且习惯了之后,你会发现效率也挺快。 对于 Go,属于编译型语言,不是脚本语言,而且强大的 GDB 支持调试 Go 程序。似乎 Go 程序的调试工具不是问题。然而,Go程序大部分时候并不适合使用 GDB 调试,主要原因当然是 Go 天生的并发性,并发情况下,断点调试和实际运行会有差别,可能不是bug的,调试会成为bug;是bug的,调试不出来;另一方面,GDB这种命...阅读全文