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

Go时间格式化的两种方法

时间格式在程序、数据库、日志信息中扮演着非常重要的角色,选择合适的格式能为我们的工作带来编辑。在Go语言中可以使用time包实现我们基础的需求。导入包import ( "time" "fmt" )时间输出以及格式化package main import ( "time" "fmt" ) //时间函数以及时间格式化 func main(){ now := time.Now() //Year = now.Year() //Mouth = now.Month() //Day = now.Day() //时间格式化输出 Printf输出 fmt.Printf("当前时间为: %d-%d-%d %d:%d:%d\n",now.Year(),now.Month(),now.Day(),now.Hour(...阅读全文

博文 2019-03-03 23:35:10 tianya1993

Golang中调用DLL示例—Win32 API

不断的会有人问:在go中可以调用dll么?如何做? 这里提供一个示例(获取当前Windows版本): package main import ( "syscall" ) func abort(funcname string, err error) { panic(funcname + " failed: " + err.Error()) } func print_version(v uint32) { major := byte(v) minor := uint8(v >> 8) build := uint16(v >> 16) print("windows version ", major, ".", ...阅读全文

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-10-04 19:26:13 u010471121

哪些公司都在用 Go 语言?

今天为了给老板做一个报告,用到这个数据,本着科学严谨不传谣不信谣的精神, 亲自[到拉勾网上搜索了一下 Golang 相关的职位](https://www.lagou.com/jobs/list_golang?labelWords=&fromSearch=true&suginput=) 稍作整理得到了下面这个结果,现在把它发在这里,各位同学如果用得着请随意。 稍微解读一下,我们可以看到,BAT 等各大公司自不必说,人那么多产品线那么长肯定是什么都用得着,据在这些企业内部工作的朋友们透露,这些年 Golang 用的也是越来越多了。 另外就是一些互联网新秀(大的比如滴滴,小的比如探探、乐惠),也都大胆用了 Golang 这个能够快速实现业务的语言。 值得一提的是,一些较为...阅读全文

GO语言:优雅地实现多重继承

有些语言支持多重继承,但是如果多个父类存在相同的属性或方法,就会发生冲突,有些语言为了防止这种情况而只支持单继承,很明显就没有了复用多个父类的属性和方法的优势。go语言其实没有对象的概念,只有结构体。比如有一个父亲,是中国人:type Father struct { MingZi string } func (this *Father) Say() string { return "大家好,我叫 " + this.MingZi }可以理解为父亲类有一个属性,有一个Say方法有父亲当然有母亲,母亲是个外国人:type Mother struct { Name string } func (this *Mother) Say() string { return "Hello, my name i...阅读全文

golang sync.Pool

Go 1.3 的sync包中加入一个新特性:Pool。 官方文档可以看这里http://golang.org/pkg/sync/#Pool 这个类设计的目的是用来保存和复用临时对象,以减少内存分配,降低CG压力。 type Pool func (p *Pool) Get() interface{} func (p *Pool) Put(x interface{}) New func() interface{} Get返回Pool中的任意一个对象。 如果Pool为空,则调用New返回一个新创建的对象。 如果没有设置New,则返回nil。 还有一个重要的特性是,放进Pool中的对象,会在说不准什么时候被回收掉。 所以如果事先Put进去100个对象,下次Get的时候发现Pool是空也是有可能的。 ...阅读全文

博文 2014-10-29 08:00:01 seago123

golang项目test的写法

业务代码 package main import "fmt" func sum(a int,b int) int { return a+b } func main() { fmt.Println("hello test") } test测试用例 package main import ( "fmt" "testing" ) func TestSum(t *testing.T) { var a = 3 var b =4 res :=sum(a,b) fmt.Printf("%d 与%d之和:为%d",a,b,res) if res != 7{ t.Error("error") } } 每一个test文件必须import一个testing. test文件下每一个test case均必须以Test...阅读全文

博文 2019-08-05 21:32:38 厚朴酚XZ9lr

基于vim的golang开发环境配置

我用的操作系统为ubuntu14.04 用惯了命令行下裸的vim,有些厌倦,尝试着去emacs里打了个滚,各种快捷键让我觉得惨不忍睹。回到vim感觉像是回到了天堂,想想又不是只有emacs才有图形界面,虽然我已经弃用gvim很久,不代表它不存在。故而转投gvim的怀抱。 而最近正好开始学golang,尝试着写些小程序,却发现vim对golang的原生支持实在是糟糕,于是重新走上了配置vim的不归路…… 插件: pathogen 我使用pathogen来管理所有的插件,这是因为它比vundle简单……在vim当中安装东西的手感不如一句简单的git clone来的好。 安装: https://github.com/tpope/vim-pathogen,按照说明完成安装即可 它的用法很简单,便是把...阅读全文

博文 2014-10-04 19:26:05 winkar

海绵式的吸收知识无益且有害

知识就是财富在这个时代越来越得到印证,每天都在上演着高智商群体挥舞着镰刀向韭菜割去的狂欢闹剧,韭菜的记忆据说只有七秒,割得越勤,长得越快,割得多了,甚至还上瘾了,如同得了哥德斯尔摩综合症,为收割者作辨别,觉得是自己运气差,能力不足,贪心才会导致这种局面。另有一小戳韭菜自此开始奋发图强,吸收各种营养,力图让自己长成一棵树,就不会再被收割,甚至能实现翻身农奴把家当的梦想。这样的人群,每天很勤奋,很尊崇知识,买了很多课程,报了很多班,上下班在公交、地铁上也一直在学习,一刻也不肯落下。但效果却廖廖,学了很多看似很有用却又没能真正发挥作用的东西。 学了管理学课程,依然是一线员工,手下一个兵也没有 学了投资课,买的基金、数字货币频频被套 学了口才课,依然词不达意,总觉得胸中有万千韬略,却如同茶壶煮饺子—...阅读全文

博文 2019-07-21 23:32:57 塞亚猫

自动化接口测试

一、 自动化测试的现状一般测试,我们会分成上图几个层级,开发人员完成单元测试,测试人员完成第二层和顶层,但是在大部分企业中,往往会忽略第二层,也即集成、接口测试。更多的是侧重于开发人员的单元和ui,或者说功能测试。 二、 为什么做自动化接口测试 1.节省测试成本。底层的一个bug往往会引发上层的多个bug,而且底层的bug很容易引起全网的宕机。相反接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。 2.fail fast。即快速失败,主要是让异常或错误尽快的抛出。在接口测试中,由于接口测试是相对底层的测试,所以,可以更快的发现错误。 3.提高测试效率。接口测试是自动化并且持续集成的,相对UI、功能测试,测试效率也大大的提高。 三、自动化接口测试的选择 1....阅读全文

Golang UnitTest单元测试(go test)

##Golang UnitTest单元测试 Golang单元测试对文件名和方法名,参数都有很严格的要求。 例如: 1、文件名必须以xx_test.go命名 2、方法必须是Test[^a-z]开头 3、方法参数必须 t *testing.T 之前就因为第 2 点没有写对,导致找了半天错误。现在真的让人记忆深刻啊,小小的东西当初看书没仔细。 下面分享一点go test的参数解读。来源 go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译g...阅读全文

Golang UnitTest单元测试

最近做项目的时候一直很苦恼,go的单元测试是怎么回事,之前有看过go test xx_test.go命令进行单元测试,只知道有这么一说。最近项目中写了很多工具类,一直想测试一下性能和执行结果。发现完全不对。 这是代码。 发现多次执行go test utilfile_test.go完全没有任何输出。查很多原因和多帖子,都没说到重点。今天在群里问了下,才发现go单元测试对文件名和方法名,参数都有很严格的要求。 例如: 1、文件名必须以xx_test.go命名 2、方法必须是Test[^a-z]开头 3、方法参数必须 t *testing.T 之前就因为第 2 点没有写对,导致找了半天错误。现在真的让人记忆深刻啊,小小的东西当初看书没仔细。 go test -v utilfile_test.go测...阅读全文

博文 2015-06-18 08:02:19 x369201170

全面系统学测试 从小白入门到实战就业

​全面系统学测试 从小白入门到实战就业 完整无密 【点击下载】本课程为慕课网销量最高、备受好评的测试入门课程2020年全新升级版。升级课程亮点:1、测试设计、测试执行、测试总结、黑盒测试、白盒测试、自动化测试、性能测试、手机测试、面试讲解等全方位多角度进行讲解;2、辅助以支付宝、余额宝等实战项目演练,更增加主流热门电商类测试项目全流程与微信红包项目实战;3、掌握从简单业务场景到复杂业务场景下的不同测试实战技巧,满足入门+提高双重需求适合人群软件测试初学者、刚刚从事软件测试行业的新手,在校大学生、应届毕业准备从事软件测试行业,准备转行进入软件测试行业的小伙伴技术储备要求0基础入门,无论你的基础怎么样,你的背景怎么样都可以学习这门课程第1章 课程介绍本章主要介绍课程学习内容,学习收获,学习路线及...阅读全文

手游的巨头时代,中小厂商该何去何从?

几家独大的手游市场,已经压得中小厂商有点缓不过气来,一手“阴阳师”几乎就可以吞掉一大半的玩家群体,就更不用说几家大厂商频繁地推出新作,变着花样地玩儿着自己手里丰富的IP资源。虽然手游市场的生存的空隙快速地被挤压,但是不可否认的是面对庞大的玩家基数以及逐渐成熟的对手游的消费理念与能力,这个市场仍然充满了诱人的财富。而对于中小厂商来说,这片红海却仍应有自己的一席之地,在这个巨头时代,我们仍然有机会! 你对手游的理解如何? 也许,对于一部分的开发者来说,做手游可能仅仅是因为有利可图,而并没有热爱或者说对其有自己的理解,而这是打造产品非常必要的一个元素,因为这能够赋予手游灵魂,而有灵的产品,是玩家能够切身感受到的。 可以看看SuperCell,一个现象级手游的开...阅读全文

Go语言-测试用例

编写单元测试用例 文件名必须以'_test.go'结尾 必须import "testing"这个包 测试用例会按照源代码中写的顺序依次执行 测试函数'TestXxx(t *testing.T)'中的参数是‘testing.T’,我们可以用该类型来记录错误或者是测试状态 测试格式:‘func TestXxx(t *testing.T)’,'Xxx'部分可以为任意的字母数字组合,但是首字母不能是小写字母[a-z] 函数中通过调用'testing.T'的'Error'、'Errorf'、'FailNow'、'Fatal'、‘FatalIf’方法,说明测试用例不通过,调用''Log'方法用来记录测试的信息 编写压力测试 压力测试用例必须遵循如下格式,其中XXX可以是任意字母数字的组合,但是首字母不能...阅读全文

博文 2018-07-02 21:35:13 二郎神六号

golang: facebookgo之inject测试用例

依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。在传统的程序设计过程中,调用者是自己来决定使用哪些被调用者实现的。但是在依赖注入模式中,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由注入器来完成,然后注入调用者,因此也称为依赖注入。 下面是facebookgo/inject 包的测试用例, 需要的自取。 https://github.com/e421083458/injec...阅读全文

[求助] 求Android马甲包上架技术

遇到审核严格必有法,有法必有技术熟练工。 工欲善其事,必先利其器。明朗人生,用于优秀。 为公司寻将才,为人才找舞台。汇聚人才所在,挖掘时代精英。 企业招聘黄金台,人才求职加油站。千金易得,人才难求。 开宝马,坐奔驰,家用电器西门子。 你的梦想我助力,易发带你装逼带你飞。 重要的只说三遍:求Android技术大神 求Android技术大神 求Android技术大神 求Android技术大牛上架马甲包 有时间的个人 或 3.4人小团队 详情 寇寇 895 99 7122 ...阅读全文

golang 测试文件xxx_test

go 的版本:go version go1.4.2 windows/386 举例:如果golang的包在同一目录下,比如GOPATH下面src/test/ 目录下有包名package test 如果此时有 test.go 和 test_test.go,那么包导入的时候会自动忽略test_test.go的导入内容 总之,1、如果有多个.go文件时候,并且不都是*_test.go命名,其它命名*_test.go的文件的包都import不进去 2、如果多个.go文件都是*_test.go,则一定会有一个*_test.go文件可以被import 3、 所以最好的做法是在开发环境中不要命名*_test.go的文件,最终测试用例文件可以用*_test.go命...阅读全文

博文 2015-10-11 23:00:07 webyh

go test 命令介绍

go test go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译go test成为可执行的二进制文件,但是不运行测试。 -i : 安装测试包依赖的package,但是不运行测试。 关于build flags,调用go help build,这些是编译运行过程中需要使用到的参数,一般设置为空 关于packages,调用go help packages,这些是关于包的管理,一般设置为空 关于flags for test binary,...阅读全文

博文 2015-04-08 13:00:05 csapr1987

Go指南中的练习:map

练习:map 实现 WordCount。它应当返回一个含有 s 中每个 “词” 个数的 map。函数wc.Test 针对这个函数执行一个测试用例,并输出成功还是失败.你会发现strings.Fields 很有帮助。 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 在题目中提示可以使用strings.Fields,那我们现在查一查这个函数 func Fields func Fields(s string)...阅读全文

博文 2016-04-05 05:00:00 u013564276

解读2016之Golang篇:极速提升,逐步超越

Go语言已经7岁了!今年8月,Go 1.7如期发布。撰写本稿时,Go 1.8的测试版也出来了。我们正在热切盼望着明年2月的Go 1.8正式版。 如果你关注TIOBE的编程语言排行榜就会发现,截止到2016年11月,Go语言从原先的第50多位经过多次上窜已经跃到了第13位,跻入绝对主流的编程语言的行列!这份排行榜每月都会更新,并基于互联网上的程序员老鸟、教学课程和相关厂商的数量进行排名。在国内,从我这几年运营Go语言北京用户组的经历来看,可以明显地感觉到Go语言的在国内的大热。N多初创互联网企业都选用Go语言作为他们的基础技术栈。我还发现,已经有在大数据、机器人等尖端科技领域耕耘的国内公司开始使用Go语言。这门语言现在已经是无孔不入了。 1. 回顾 遥想去年的1.5版本,Go运行时系统和标准库...阅读全文

Golang 数组过滤操作benchmark效率对比

说明 之前做的go项目,遇到一个关于数组的增删效率问题: 循环数组--判断--删除数组--得到需要的数组 示例:如果我需要在arr1中过滤掉arr2第一次写的方法如下 arr1:=[]int{1,2,3......,999,1000} arr2:=[]int{5,10,15......,995,1000} for k, v := range arr1{ for _, vv := range arr2{ if v == vv { arr1= append(arr1[:k], arr1[k+1:]...) } } } 这样写会出现错误,因为删除一个数之后,数标就对不上了,因此需要倒序删除: for i := len(arr1) - 1; i >= 0; i-- { v := arr1[i] fo...阅读全文

博文 2017-03-05 19:46:27 cowkeys

golang的sort研究

年前没钱,等发工资。就这么在公司耗着不敢回家,无聊看了下golang的sort源码 type Interface interface { // Len is the number of elements in the collection. Len() int // Less reports whether the element with // index i should sort before the element with index j. Less(i, j int) bool // Swap swaps the elements with indexes i and j. Swap(i, j int) } 只有实现这个接口才可以调用sort.Sort()进行排序哒 贴上源码实现...阅读全文

博文 2016-02-05 03:00:00 guhao123

解决vscode中golang插件安装失败方法

在学习go的过程中,使用的是vscode,但是一直提示安装相关插件失败,然后上网查方法,基本上是叫你建立golang.org目录什么的,结果全是错的,而且都是抄袭,很烦。无意之中看到一位博主分享的方法,他也是饱受上述的垃圾博文困扰,然后找到了解决方法,这里向他致敬,秉着让更多人看到正确解决方法的心,我写下正确的解决方法,希望对你有所帮助,也可以点开原博主链接参考:https://www.cnblogs.com/xll970105/p/11906899.htmlGo有一个全球模块代理,设置代理再去安装golang的插件,就可以安装成功了。步骤有,首先Windows用户打开Powershell,一个蓝色的界面,注意不是cmd!不知道的直接打开window下面的搜索,然后输入powershell,...阅读全文

博文 2020-04-21 17:35:15 今晚打打老虎虎

golang http response body close http请求返回的response为什么要Close

stackoverflow一段话:https://stackoverflow.com/questions/18598780/is-resp-body-close-necessary-if-we-dont-read-anything-from-the-body When you call http.Get, the function returns a response as soon as all the HTTP headers have been read. The body of the response has not been read yet. The Response.Body is a wrapper around the network connection to the ...阅读全文

博文 2019-01-23 18:34:42 凯文不上班

多个程序监听同一端口 - socket端口复用技术

对于多个程序绑定同一个端口我们遇到最多的是(Port 80 was already in use),也就是说端口被占用,不能重复绑定,但是操作系统内核支持通过配置socket参数的方式来实现多个进程绑定同一个端口。 简单示例 package main import ( "context" "golang.org/x/sys/windows" "net" "syscall" ) var listenConfig = net.ListenConfig{ Control: MyControl, } func MyControl(network, address string, c syscall.RawConn) error { return c.Control(func(fd uintptr) ...阅读全文

博文 2020-06-06 11:32:42 写个代码容易么

golang sync.pool对象复用 并发原理 缓存池

golang sync.pool对象复用 并发原理 缓存池 在go http每一次go serve(l)都会构建Request数据结构。在大量数据请求或高并发的场景中,频繁创建销毁对象,会导致GC压力。解决办法之一就是使用对象复用技术。在http协议层之下,使用对象复用技术创建Request数据结构。在http协议层之上,可以使用对象复用技术创建(w,*r,ctx)数据结构。这样即可以回快TCP层读包之后的解析速度,也可也加快请求处理的速度。 先上一个测试: //测试平台 i5 3.8GHz 4核 bPool := sync.Pool{ New: func() interface{} { b := make([]byte,1024) return &b }, } t1 := time.Now...阅读全文

博文 2018-11-16 19:34:46 fjxCode

go-mysql,一个易用的mysql接口框架实现

介绍 go-mysql是一个用go写的mysql driver,使用接口类似于go自身的database sql,但是稍微有一点不同,现阶段还不支持集成进go database/sql中,但实现难度并不大,后续可能会接入。 go-mysql最先开始于mixer(一个用go实现的mysql proxy)中,随着mixer的演化,我觉得有必要将其mysql模块独立出来使用。对于mixer,后续我会详细介绍。 为什么要自己实现一套新的接口,而不是go自身的sql接口呢?最主要的原因在于我很不习惯使用Query的查询方式。go自身的query例子: age := 27 rows, err := db.Query("SELECT name FROM users WHERE age=?", age) i...阅读全文

博文 2014-10-04 19:26:26 siddontang

关于移动App的崩溃测试用例设计

我们的日常生活中对移动设备越来越多的使用意味着移动App测试这个主题已成为需要考虑的一个无法避免的问题。根据最近的调查研究,用户难以容忍有bug的移动App。移动App Bug的影响是用户体验差、App的商店评级下降、用户换用竞争对手的App,声誉和信誉损失、最后销售量减少,如果它是一个付费App的话。 移动App测试与传统台式机测试相比有一定的复杂性。这些复杂性可以被分类为: 环境(大量的设备,各种移动OSs,适应频繁OSs变化) 。 设备(触摸式和非触摸式设备,有限的内存容量,电池耗电量) 。 网络(不同的网络和运营商,在不好或无网络的情况下的App行为,离线支持) 。 可用性(方向,触摸,多触摸,缩放,分页和导航的局限性,各种干扰,...阅读全文

select I/O多路复用

select golang的并发模型和linux select类似 golang提供了select关键字,实现I/O的多路复用 linux select的模型大致是以下这样 : while (true) { init_select_fd(); //初始化监听的fd int ret = select(); //select阻塞式监听 if (...) { //if有fd被触发 ...//处理fd的事件 } } golang select模型有类似的结构 监听的是管道 while (true) { switch { case variable := <-chan1 : ...//处理管道1事件 break; case variable := <-chan1 : ...//处理管道2事件 brea...阅读全文

博文 2018-12-03 01:34:44 sakura3zz

Go lang 的GC问题及解决

我的应用是要顺序跑每一天的数据,每天的数据都很大,每天的数据单独处理,没有全局变量,循环执行。 结果使用top查看时发现,内存使用直线上升,每次循环使用的内存根本没有释放,结果就是:内存耗尽。 用惯了高级语言的我,好久都没遇到这么底层的问题。 我的直接疑问是:难道Go的GC没有发现那些应该回收的内存吗? 结果Google了一下验证了我的判断:在Linux 32位机上的GC机制确实有问题,我耐性的看完了整个回帖。 有人扬言不解决这个问题就不使用Go,推荐的解决方案大部分是迁移应用至64位系统,还有让等Go 1.1版。 我想怎么就这么中枪了呢?刚刚开始欣喜的使用Go就遇到这么大的问题。 不能迁移至64位系统,不能等新版本,只能自己想办法。 还好,根据回帖里面的建议,首先使用源码编译了一份最新版本...阅读全文

博文 2017-02-09 16:48:14 孤独古怪的孩子

Terraform 开发指南

本文主要向大家展示如何为阿里云 Terraform Provider 贡献自己的力量,帮助开发者和志同道合的朋友尽快加入到开源生态的建设中来。本文面向所有的对Terraform熟悉和感兴趣的朋友,如果您还不了解Terraform,快快戳这里。本文会从环境搭建和开发规范两个方面向大家展示如何开放 terraform provider。环境搭建安装 Golang本地安装go >1.10.0 详见:https://golang.org/dl/安装 Terraform本地安装 Terraform > 0.11, 详见: https://www.terraform.io/intro/getting-started/install.html安装 Terraform Provider1、fork 并下载 ...阅读全文

博文 2018-07-18 17:34:50 阿里云云栖社区

golang 操作mysql测试用例

package main import ( "fmt" "database/sql" _ "github.com/go-sql-driver/mysql" ) type TestMysql struct { db * sql.DB } func Init()(*TestMysql, error) { test := new (TestMysql) db, err := sql.Open("mysql","root:@tcp(172.16.3.8:3306)/jackma?charset=utf8") if err != nil { fmt.Println(err.Error()) return test,nil } test.db = db return test, nil } func (...阅读全文

博文 2016-02-17 22:00:02 u011363248

golang test说明解读

go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译go test成为可执行的二进制文件,但是不运行测试。 -i : 安装测试包依赖的package,但是不运行测试。 关于build flags,调用go help build,这些是编译运行过程中需要使用到的参数,一般设置为空 关于packages,调用go help packages,这些是关于包的管理,一般设置为空 关于flags for test binary,调用go hel...阅读全文

博文 2015-08-20 03:00:01 moxiaopeng

RPC 的网络复用和成帧协议 TChannel

TChannel 是用于 RPC 的网络复用和成帧协议。 ### 设计目的 * 容易用多种语言实现,尤其是 JS 和 Python。 * 高性能转发路径。中间件可以快速做出转发决策。 * 请求/回复模型不再按顺序,慢速请求不会堵在队列前头,阻止后续的快速请求。 * 大型请求/响应,可能/必须分成碎片成片,逐步发送。 * 可选 checksums. * 可用于在端点之间输送多种协议,例如 HTTP+ JSON 和 Thrift...阅读全文

开源项目 2015-08-27 16:00:00 uber

测试一下golang协程资源占有率

GO版本:go version go1.4.2 linux/amd64 测试环境: [root@localhost mpro]# more /proc/cpuinfo | grep "model name" model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz [root@localhost mpro]# [root@local...阅读全文

golang test说明解读

go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译go test成为可执行的二进制文件,但是不运行测试。 -i : 安装测试包依赖的package,但是不运行测试。 关于build flags,调用go help build,这些是编译运行过程中需要使用到的参数,一般设置为空 关于packages,调用go help packages,这些是关于包的管理,一般设置为空 关于flags for test binary,调用go hel...阅读全文

博文 2014-10-04 19:27:29 chunhei2008

go实现栈

本来写敏感词检测的代码,后面需求撤销了,留下一点可复用的代码怀念下 package stack // 不确定变量类型和结构,使用了interface type Stack struct { data []interface{} } func (s *Stack) Push (item interface{}) (string, bool) { s.data = append(s.data, item) return "ok", true } func (s *Stack) Pop () (interface{}, bool) { length := s.Length() var item interface{} if length == 0 { return item, false } el...阅读全文

博文 2019-05-17 19:34:37 lingying5

写了个协程池

# sgpool #### 介绍 协程池 #### github https://github.com/summmer-tea/sgpool #### 架构 提供两种协程池,可复用/动态创建销毁,debug模式下可以对任务的超时,失败进行统计 #### 安装 ```go go get https://github.com/summmer-tea/sgpool ``` #### 使用 具体的worker 需要实现 WorkerInterface 接口 ```go type WorkerInterface interface { Task() error GetTaskID() interface{} } ``` ##### 常驻复用协程池 `...阅读全文

go指南:映射练习

题目 题目地址https://tour.go-zh.org/moretypes/23 练习:映射 实现 WordCount。它应当返回一个映射,其中包含字符串 s 中每个“单词”的个数。函数 wc.Test 会对此函数执行一系列测试用例,并输出成功还是失败。 你会发现 strings.Fields 很有帮助。 答案 package main import ( "golang.org/x/tour/wc" "strings" ) func WordCount(s string) map[string]int { sFields := strings.Fields(s) var resMap = map[string]int{} for _,v := range sFields{ resMap[...阅读全文

测试用例设计该怎么做

测试什么,按照什么顺序测试,覆盖哪些需求做到心中有数。测试用例编写者不仅要掌握软件测试的技术和流程,而且要对被测软件的设计、功能规格说明、用户试用场景以及程序/模块的结构都有比较透彻的理解。测试用例设计一般包括以下几个步骤:   1、测试需求分析   从软件需求文档中,找出待测试软件/模块的需求,通过自己的分析、理解,整理成为测试需求,清楚被测试对象具有哪些功能。测试需求的特点是:包含软件需求,具有可测试性。   测试需求应该在软件需求基础上进行归纳、分类或细分,方便测试用例设计。测试用例中的测试集与测试需求的关系是多对一的关系,即一个或多个测试用例集对应一个测试需求。   2、业务流程分析   软件测试,不单纯是基于功能的黑盒测试,还需要对软件的内部处理逻辑进行测试。...阅读全文

我为什么选择go语言

这里,我并不打算引起语言争论的口水仗,我并不是什么大牛,对语言的造诣也不深,只是想通过自己实际的经历,来说说为什么我在项目中选择go。 其他语言的经历 C++ 在接触go之前,我已经有多年的c++开发经验。主要用在游戏服务端引擎开发以及P2P上面,那可是一段痛并快乐的时期,以至于我看到任何的程序钉子问题都觉得可以用c++这把锤子给敲定。但是对于互联网项目开发来说,除非你的团队整体的c++技术水平nb,并且有很强的代码规范,不然真可能是一场灾难,更别说我们现有团队几乎没其他人会这玩意了。 本来,我打算在现有项目中的推送系统中使用c++,并用业余时间写好了一个网络底层库libtnet,但后来还是决定打住,因为没有人能够协助我开发。令我比较欣慰的是,libtnet有一个游戏公司在使用,现处于内部测...阅读全文

博文 2014-10-04 19:26:00 siddontang

使用httptest编写测试用例,利用httpserver和HTTPclient

func (s UserResource) Find(ctx context.Context, param string, condition bson.M, p api.Page) (v api.Responder, e error) { // validate authority uid, err := objectID(ctx) if err != nil { return nil, api.NewHTTPError(api.ErrAuthorization, api.CodeTokenAuthFailed) } rid, err := RoleID(s.UserStorage, uid) if err != nil { return nil, api.NewHTTPError(api...阅读全文

博文 2017-11-23 07:05:13 Ares_wss

自己写了一个协程池

# sgpool #### github地址 https://github.com/summmer-tea/sgpool #### 介绍 协程池 #### 架构 提供两种协程池,可复用/动态创建销毁,debug模式下可以对任务的超时,失败进行统计 #### 安装 ```go go get https://gitee.com/xiawucha365/sgpool ``` #### 使用 具体的worker 需要实现 WorkerInterface 接口 ```go type WorkerInterface interface { Task() error GetTaskID() interface{} } ``` ##### 常驻复用协程池 ...阅读全文

golang test 说明解读

本文为转载,原文地址:http://www.cnblogs.com/yjf512/archive/2013/01/22/2870927.html go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译go test成为可执行的二进制文件,但是不运行测试。 -i : 安装测试包依赖的package,但是不运行测试。 关于build flags,调用go help build,这些是编译运行过程中需要使用到的参数,一般设置为空 关于pack...阅读全文

博文 2014-10-04 19:27:29 koalaone

LeetCode专题-模拟

1041. Robot Bounded In Circle Easy On an infinite plane, a robot initially stands at (0, 0) and faces north. The robot can receive one of three instructions: "G": go straight 1 unit; "L": turn 90 degrees to the left; "R": turn 90 degress to the right. The robot performs the instructions given in order, and repeats them forever. Return true if and o...阅读全文

博文 2019-05-25 22:34:45 山中散人的博客