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

golang channal中buf和for range一些用法

go的gocontinue用法实现了轻量级的线程,可以被大量创建。线程之间用channal通信,以下说说基本用法。 channal的buf c:=make(chan int ,3) 3就是设定的chanal的缓存量,缓存只意味着这个创建的channal可以同时存入3个数据,并不意味读channal时可以同时读出。 x:=<-c 读channal时仍然是以阻塞的方式一次一个地将数据读出。 当channal缓存中存在有效数据时,即使close掉channal,仍然可以读出buf里的数据。需要注意的是,从close掉的channal读数据时,channal是不阻塞的,当channal中的buf数据被读完时,仍然会以不阻塞的方式读出0值。 channal的for range c:=make(chan...阅读全文

博文 2015-12-21 16:00:01 iwbno1

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-12 16:00:00 vzex

阿里P8架构师谈:高并发架构解决方案总结

一、关于高并发高并发是指在同一个时间点,有很多用户同时访问URL地址,比如:淘宝的双11、双12,就会产生高并发。又如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击。1 高并发会来带的后果服务端:导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样的,比如:出现重复的数据记录,多次添加了用户积分等。用户角度:网站打不开服务器雪崩:2 并发下的数据处理通过表设计,如:记录表添加唯一约束,数据处理逻辑使用事物防止并发下的数据错乱问题。通过服务端锁进程防止包并发下的数据错乱问题。这里主要讲述的是在并发请求下的数据逻辑处理的接口,如何保证数据的一致性和完整性,这里的并发可能是大量用户发起的,也可能攻击者通过并发工具发起的并发请求。例子1:通过表设计防止并发导致数据...阅读全文

博文 2018-10-14 16:01:06 Java007

GO语言结构体方法跟结构体指针方法的区别

首先,我定了三个接口、一个结构和三个方法: type DeptModeA interface { Name() string SetName(name string) } type DeptModeB interface { Relocate(building string, floor uint8) } type Dept struct { name string building string floor uint8 Key string } func (self Dept) Name() string { return self.name } func (self Dept) SetName(name string) { self.name = name } func (self *D...阅读全文

博文 2017-01-18 16:00:08 tree2013

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) ...阅读全文

Kubernetes集群中的Nginx配置热更新方案

Nginx已经是互联网IT业界一个无敌的存在,作为反向代理、负载均衡、Web服务器等多种角色的扮演者,Nginx在全球各个互联网公司落地、开花和结果,Ngnix已经成为了支撑全球互联网应用的一个不可获取的组成部分。 在我们的平台中,Nginx同样被拿来作为服务接入的最前端的反向代理,并且我们的Nginx也是作为一个Service跑在我们的Kubernetes集群中的。Ngnix背后的服务众多,服务的生生死死都要在Nginx上这些服务路由的配置中有所体现,这就要求部署在Kubernetes集群中的Nginx需要有一个合理的配置热更新方案。 Nginx自身是支持配置热更新的,通过nginx -s reload命令可以实现这一点: # sudo nginx -s reload # sudo tai...阅读全文

博文 2017-02-06 03:02:03 bigwhite

手把手教你实现一个微信自动回复机器人

RebateBot 返利机器人 项目地址 项目描述 关键词: 返利 微信 阿里妈妈 机器人 跨平台 返利机器人,基于微信建立机器人通道与用户通过聊天快速生成返利链接 利用闲置微信和极小的电脑性能开启24小时无人轮值返利机器人 购物只需要发送链接给机器人,机器人能马上给你回复优惠价格及链接 功能实现 微信机器人 这个模块在这里可以看到最新的代码微信机器人 [x] 消息回调 [x] 自动回复消息 [x] 新增好友回调 [x] 默认同意新增好友 [x] 自动回复(文字,表情) 阿里妈妈 [x] 链接识别 [x] 淘口令识别 [x] 链接转换返利链接 [x] 自动分配不同pid [x] 扫码登录 [x] 订单定时下载 [x] 自动计算返利反点 消息处理 [x] 签到 [x] 帮助 [x] 自动绑定订...阅读全文

博文 2018-08-15 11:35:00 546669204

几种Go序列化库的性能比较

序列化库在网络传输,RPC,数据库访问等环境中经常用到,它的性能的好坏直接影响着整个产品的性能。本文列出了几种高性能的Go语言的序列化库,并通过一个简单的无循环引用的数据结构测试它们的性能。测试代码: gosercomp at github 03/14/2016 更新。 增加Thrift/Avro/Gencode的性能比较。 测试的 Serializers 以golang自带的encoding/json和encoding/xml为基准,测试以下性能比较好的几种序列化库。 encoding/json encoding/xml github.com/youtube/vitess/go/bson github.com/tinylib/msgp github.com/golang/protobuf ...阅读全文

博文 2017-02-08 12:53:30 smallnest

Golang 逐行读取大文件性能对比

前 言 BUFIO 是什么? BUFIO 是用来驱动 I/O 列内的专用时钟网络,这个专用的时钟网络独立于全局时钟资源,适合采集源同步数据。BUFIO 只能由位于同一时钟区域的 Clock-Capable I/O驱动。一个时钟区域有4个 BURIO,其中的2个可以驱动相邻区域的 I/O 时钟网络。BUFIO 不能驱动逻辑资源(CLB、BRAM等),因为 I/O 时钟网络只存在于 I/O 列中。 简单点就是: bufio 包实现了带缓存的 I/O 操作 它封装一个 io.Reader 或 io.Writer 对象 使其具有缓存和一些文本读写功能 本文主要来对比一下 BUFIO 中的 ReadString 和 ReadLine 函数的性能。 注:测试代码忽略读取内容和错误处理 ReadStrin...阅读全文

博文 2017-09-13 05:34:50 51reboot

Go语言实战笔记(二)| Go开发工具

在Go语言中,我们很多操作都是通过go命令进行的,比如我们要执行go文件的编译,就需要使用go build命令,除了build命令之外,还有很多常用的命令,这一次我们就统一进行介绍,对常用命令有一个了解,这样我们就可以更容易的开发我们的Go程序了。 Go 开发工具概览 go这个工具,别看名字短小,其实非常强大,是一个强大的开发工具,让我们打开终端,看看这个工具有哪些能力。 ➜ ~ go Go is a tool for managing Go source code. Usage: go command [arguments] The commands are: build compile packages and dependencies clean remove object files...阅读全文

博文 2017-03-09 05:02:06 飞雪无情flysnow_org

beego框架下无法读取中文cookie

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

go单元测试进阶篇

版权声明:本文由腾讯云数据库团队 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/921985001483606833 来源:腾云阁 https://www.qcloud.com/community 作者介绍:熊训德(英文名:Sundy),16年毕业于四川大学大学并加入腾讯。目前在腾讯云从事hadoop生态相关的云存储和计算等后台开发,喜欢并专注于研究大数据、虚拟化和人工智能等相关技术。 本文档说明go语言自带的测试框架未提供或者未方便地提供的测试方案,主要是用于解决写单元测试中比较头痛的依赖问题。也就是伪造模式,经典的伪造模式有桩对象(stub),模拟对象(mock)和伪对象(fake)。比较幸运的是,社区有丰富的...阅读全文

博文 2017-01-11 09:00:01 偶素浅小浅

面向Go初学者的Android App “Go轻松学” 再一次迎来更新。

>Go轻松学,可以让你随时随地浏览Go提供的独特功能,本应用提供了翔实的测试例程序,100%测试通过。并且可以根据反馈持续更新。在这里,变量,函数,结构体,指针,并行计算,包和测试都有详细的讲解,另外独特的关键点标记也代表了本应用的用心之处,希望您喜欢,也希望您支持本应用。 可以在豌豆荚 http://www.wandoujia.com/app/net.duokr.goquicklearn 小米商店 http://app.xiaomi.com/detail/54217 或直接从百度网盘 http://t.cn/RvbPWvQ 下载。 谢谢支持! PS: iOS版本已经开始测试,敬请期待。 有意第一时间获知上线信息者,请发送邮件到 jemygraw@gm...阅读全文

Ubuntu下安装配置Go环境

一、安装 sudo apt-get install golang 二、创建工作空间 在/home目录下, 建立一个名为gopath(名字任意)的目录,在该目录中建立三个子目录(名字必须为src、pkg和bin)。创建目录过程如下图所示: image.png src -- 里面每一个子目录,就是一个包。包内是Go的源码文件 pkg -- 编译后生成的,包的目标文件 bin -- 生成的可执行文件。 三、配置环境变量 1,打开配置文件 运行以下命令: $ gedit ~/.bashrc 2,添加命令 在文件尾部添加以下命令: export GOPATH=/home/gopath 3,命令生效 运行以下命令 $ source ~/.bashrc 四、测试环境 运行以下命令 $ go version...阅读全文

博文 2018-07-14 13:34:44 朱建涛

golang 远程传输文件

概述之前有一篇介绍如何使用 golang 通过SSH协议来执行远程命令:golang 执行远程命令 同样,通过SSH协议也可以使用 golang 来远程传输文件。除了 SSH 的库,为了传输文件,还需要用到 github.com/pkg/sftp 这个库。实现方式废话不多说,直接看代码。 由于是基于 SSH 协议实现的远程文件传输,所以先创建 SSH 的连接,再创建传输文件的 sftp 客户端。func connect(user, password, host string, port int) (*sftp.Client, error) { var ( auth []ssh.AuthMethod addr string clientConfig *ssh.ClientConfig sshC...阅读全文

博文 2016-10-20 17:00:02 u012798391

Prometheus实战--存储篇

前言 Prometheus之于kubernetes(监控领域),如kubernetes之于容器编排。随着heapster不再开发和维护以及influxdb 集群方案不再开源,heapster+influxdb的监控方案,只适合一些规模比较小的k8s集群。而prometheus整个社区非常活跃,除了官方社区提供了一系列高质量的exporter,例如node_exporter等。Telegraf(集中采集metrics) + prometheus的方案,也是一种减少部署和管理各种exporter工作量的很好的方案。今天主要讲讲我司在使用prometheus过程中,存储方面的一些实战经验。 Prometheus 储存瓶颈 通过prometheus的架构图可以看出,prometheus提供了本地存储...阅读全文

博文 2018-07-20 18:34:44 iyacontrol

go 编程规范

参考https://www.cnblogs.com/liang1101/p/7719762.html Go 语言编程规范 1. gofmt 命令 大部分的格式问题可以通过 gofmt 来解决,gofmt 自动格式化代码,保证所有的 go 代码与官方推荐的格式保持一致,所有格式有关问题,都以gofmt的结果为准。所以,建议在提交代码库之前先运行一下这个命令。 2. 行长 一行最长不超过80个字符,超过的使用换行展示,尽量保持格式优雅。 3. 注释 在编码阶段应该同步写好 变量、函数、包 的注释,最后可以利用 godoc 命令导出文档。注释必须是完整的句子,句子的结尾应该用句号作为结尾(英文句号)。注释推荐用英文,可以在写代码过程中锻炼英文的阅读和书写能力。而且用英文不会出现各种编码的问题。 每...阅读全文

博文 2017-12-23 22:31:02 sokril

Go Mock 测试

( 在开发的过程中 ) 你应该一直都写测试。不管使用什么语言,为了完全的理解如何能写出生产环境级别的应用,你应该拥有写单元测试的能力。有些人把测试驱动 (TDD) 做到极致。TDD 提倡你在写功能之前写测试。当你尝试写一些容易测试的代码的时候,这是个好方法。直到现在,我发现 TDD 很像 agile ( 敏捷软件开发 ); 很多人说他们有做测试驱动,但是实际中,他们只在一些混合的版本中做。到最后,它归根到底像,在吃牛排之前吃蔬菜的问题。( 西餐中 ) 比较健康的吃法是先吃蔬菜,然后吃牛排。就像在编程中,比较好的做法是,先写单元测试,然后写功能。但是大多数人,做不到健康的吃法,他们只吃牛排,不吃蔬菜,也就是只写功能,不写单元测试,只要功能可以正常跑起来工作就感到满意了。 我对于测试的观点是,如...阅读全文

博文 2018-12-09 22:42:38 chibimarukoyan

Golang 的锁机制

近日看了一篇 文章,讲到了用锁的 panic 问题,但并没有看懂,今日测试了许多场景,认为终于得出了结论: 读写锁中的可读锁(sync.RWMutex 的 RLock())可以嵌套使用的。 互斥锁(sync.Mutex 和 sync.RWMutex 的 Lock())是不可以互相嵌套的,且不可以与可读锁嵌套。 之前我在读写锁和互斥锁上理解有偏差,认为读写锁与互斥锁是完全独立且相互对应的关系。现在理解为 互斥 只是一种特性。而把 sync.Mutex 叫作 全局锁, sync.RWMutex 叫作 读写锁。 全局锁 sync.Mutex,是同一时刻某一资源只能上一个锁,此锁具有排他性,上锁后只能被此线程使用,直至解锁。加锁后即不能读也不能写。全局锁是互斥锁,即 sync.Mutex 是个互斥锁...阅读全文

博文 2020-01-06 19:32:42 Robin92

go语言学习之路(二)——go语言进行微信公众号开发

学习教程地址:http://www.imooc.com/topic/golang?mc_marking=ed9ea9bd605fe0066c71d80cc8603806&mc_channel=bdgoyyzt&audience=230227github地址:https://github.com/leeeboo/leeeboo.github.com微信公众号开发文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp14452414321 微信公众号的开发逻辑2 GO开发环境3 开发一个微信公众号的后端程序 (1)开始一个Web应用 (2)完成公众号URL+Token验证 解析请求中的GET参数 (补充: 两种常用的http请求——在...阅读全文

博文 2018-12-27 15:32:36 xingyanghua

Golang中的覆盖率测试

Golang中的覆盖率测试 golang中提供了不少工具链,可以使用它们方便的进行单元测试、分析性能瓶颈,提供运行时信息等,总而言之是非常有用的。 go test这个工具大家用的应该比较多,之前我使用也大多是用来做单元测试的,go中做单元测试非常的方便,然而我忽视了覆盖率测试。 单元测试覆盖了多少代码呢?golang的go test工具其实还支持显示覆盖率,最简单的用法就是执行 go test -c -covermode=count -coverpkg ./... 来编译一个后缀为.test的可执行文件,执行后,它会执行所有的单元测试代码,然后输出覆盖率的报告。 这其实是统计单元测试的覆盖率,也就是白盒测试的覆盖率。 然而我们这里的功能测试告诉我,这个还支持黑盒测试的覆盖率统计,我那时候还楞...阅读全文

博文 2016-09-15 14:00:05 sryan

golang rsa 和 cgo (openssl) 性能对比

最近在做一个 使用 golang 开发 聚合支付网关的项目,其中要使用 rsa 签名算法 进行支付宝参数签名, 在压测 的时候发现 rsa 签名 性能十分低下,网上查资料 有人说 使用 openssl 的速度是 golang 的数倍, 于是我就用cgo (openssl) 和 golang rsa 做了一个对比,发现居然相差五倍,openssl 完胜。 下面是我的实现代码地址,有兴趣的可以下载运行试一下 https://github.com/Bulesxz/rsa_cgo.git 运行 go get github.com/Bulesxz/rsa_cgo go test -bench="." 测试环境: 硬件概览: 型号名称: MacBook Pro 型号标识符: MacBookPro13,2...阅读全文

博文 2017-08-27 07:34:56 fireblue火蓝

关于Go搭建kafka client问题

已经搭建了kafka本地的环境,并且测试了kafka自带的console-producer 和 consumer,可以实现收发信息。但是在照着教程搭建Go client的时候,总是报错: producer close, err: kafka: client has run out of available brokers to talk to (Is your cluster reachable?) 请问这是什么原因?我用的kafka和zookeeper端口都是默认的,localhost:9092和localhost:2181 谢...阅读全文

常见的加密算法

在项目开发过程中,当我们利用数据库存储一些关于用户的隐私信息,诸如密码、帐户密钥等数据时,需要加密后才向数据库写入。这时,我们需要一些高效地、简单易用的加密算法,当我们向数据库写数据时加密数据,然后把加密后的数据存入数据库;当需要读取数据时,从数据库把加密后的数据取出来,再通过算法解密。 常用的加密算法有Base64、MD5、AES和DES。 Base64 Base64是一种任意二进制到文本字符串的编码方法,常用于在URL、Cookie、网页中传输少量二进制数据。 首先使用Base64编码需要一个含有64个字符的表,这个表由大小写字母、数字、+和/组成。采用Base64编码处理数据时,会把每三个字节共24位作为一个处理单元,再分为四组,每组6位,查表后获得相应的字符即编码后的字符串。编码后的...阅读全文

博文 2017-06-25 09:07:21 witchiman

上云前,先问自己五个问题

云计算,作为企业向互联网+转型的核心基础服务,正以前所未有的速度扩张。事实上,就RightScale近期公布的云报告显示,93%的企业组织中采用了一些云计算的能力。那么,如果您是一家业务稳定的公司,并被云计算“弹性、灵活、安全、低成本”的这些好处诱惑着,就可参照本文介绍的四步,清晰上云路。 第一步:先问自己5个问题,不要人云亦云 首先需要明确,不是每一家企业都需要上云,或者全面上云。云计算很美好,省钱省力,让业务更弹性灵活,可以便捷获取大数据分析能力。但云计算不是万能的,路边的煎饼摊开个微博就能营销到全国,自己买台云服务器完全没必要。 所以,在决策前,先通过5个简单的问题,看企业是否真的需要上云: 1) 你的用户是否分布在全国各地,地域跨度较大? 2) 你是否在...阅读全文

Go开发工具

在Go语言中,我们很多操作都是通过go命令进行的,比如我们要执行go文件的编译,就需要使用go build命令,除了build命令之外,还有很多常用的命令,这一次我们就统一进行介绍,对常用命令有一个了解,这样我们就可以更容易的开发我们的Go程序了。Go 开发工具概览go这个工具,别看名字短小,其实非常强大,是一个强大的开发工具,让我们打开终端,看看这个工具有哪些能力。➜ ~ go Go is a tool for managing Go source code. Usage: go command [arguments] The commands are: build compile packages and dependencies clean remove object files do...阅读全文

博文 2019-03-10 11:31:02 chenyulancn

golang分层测试之http接口测试入门

前言 前几话主要讲解关于使用golang进行单元测试,在单元测试的上一层就是接口测试,本节主要讲使用golang进行接口测试,其中主要以http协议的接口测试来讲解 golang中的http请求 golang中拥有一个原生的http依赖库:net/http,http服务器的建立还是http客户端的开发,都会使用到这个依赖库,这里主要讲解时client部分,作为请求发起方应用于日常的接口测试,例示代码如下: get请求 package main import ( "fmt" "io/ioutil" "net/http" ) func main() { //模拟一个get提交请求 resp, err := http.Get("http://127.0.0.1:12345/checkon") if...阅读全文

博文 2018-12-07 02:38:25 周学习的名字被占了

golang学习之mgo操作mongodb

mgo是mongodb的golang驱动,测试代码: // mgotest project main.go package main import ( "fmt" "time" "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) type User struct { Id bson.ObjectId `bson:"_id"` Username string `bson:"name"` Pass string `bson:"pass"` Regtime int64 `bson:"regtime"` Interests []string `bson:"interests"` } const URL String = "127.0.0.1:27017" var c...阅读全文

博文 2016-07-10 14:00:02 caiya928

golang中读取ini配置

golang读取ini配置,推荐使用第三方库 go-ini 安装 go get gopkg.in/ini.v1 测试代码 简单封装下 package utils import ( "gopkg.in/ini.v1" ) type IniParser struct { conf_reader *ini.File // config reader } type IniParserError struct { error_info string } func (e *IniParserError) Error() string { return e.error_info } func (this *IniParser) Load(config_file_name string) error { c...阅读全文

博文 2018-08-15 11:35:02 yandaren

python高性能微服务框架japronto

最近由于业务,在看用 Python 写的一些微服务框架,查看资料偶然看到 Japronto 项目 这个项目的官方介绍是 Japronto (from Portuguese "já pronto" /ˈʒa pɾõtu/ meaning "already done") is a screaming-fast, scalable, asynchronous Python 3.5+ HTTP toolkit integrated with pipelining HTTP server based on uvloop and picohttpparser. It's targeted at speed enthusiasts, people who like plumbing and early a...阅读全文

博文 2018-12-30 14:34:47 张米奥嗷嗷

Go 语言机制之内存剖析(Language Mechanics On Memory Profiling)

## 前序(Prelude) 本系列文章总共四篇,主要帮助大家理解 Go 语言中一些语法结构和其背后的设计原则,包括指针、栈、堆、逃逸分析和值/指针传递。这是第三篇,主要介绍堆和逃逸分析。(译者注:这一篇可看成第二篇的进阶版) 以下是本系列文章的索引: 1. [Go 语言机制之栈与指针](https://studygolang.com/articles/12443) 2. [Go 语言机制之逃逸分析](https://studygolang.com/articles/12444) 3. [Go 语言机制之内存剖析](https://studygolang.com/articles/12445) 4. [Go 语言机制之数据和语法的设计哲学](https://studygolang.com/a...阅读全文

博文 2018-02-26 12:12:59 gogeof

内推 | 大厂需要什么样的人才?看看这些JD就知道啦

还在等 “金三银四” 吗?别等啦,好职位现在就来啦。霍格沃兹测试学院最近收到一些不错的内推岗位,将会持续公布给大家,先来看看第一批职位吧。 4352364532.JPG 1 腾讯-高级测试开发工程师(深圳) 薪资范围:视能力而定,上不封顶 岗位职责: 负责腾讯核心社交产品(APP/WEB/PC)的质量保障和效能提升,承担对应的devops工具链建设并推动落地。 岗位要求: 1、本科及以上学历,计算机或相关专业,具备扎实的计算机和软件技术基础。 2、 2年及以上开发 或者 测试开发 工作经验,至少满足以下其中一项要求(满足多项者优先): 熟悉Android/iOS移动操作系统,具备自动测试工具或性能测试等应用研究经验;熟悉Java/OC/Swift等至少一门编程语言; 熟悉golang/C++...阅读全文

博文 2019-11-11 14:02:49

用 Testify 来改善 GO 测试和模拟

## 目录 - [入门指南](# 入门指南 ) - [一个简单的示例](# 一个简单的示例 ) - [否定测试案例和 Nil 测试](# 否定测试案例和 -Nil- 测试 ) - [将 Testify 与表驱动测试相结合](# 将 -Testify- 与表驱动测试相结合 ) - [模拟](# 模拟 ) - [模拟示例](# 模拟示例 ) - [用 Mockery 生成模仿对象](# 用 -Mockery- 生成模仿对象 ) - [关键点](# 关键点 ) - [总结](# 总结 ) - [延伸阅读](# 延伸阅读 ) 断言是我感觉 Go 中的标准库真正缺失的东西。你绝对可以通过 `if` 比较或者其他任何方式获得相同的结果,但那不是写测试文件最简洁的方法。 这就需要诸如 [stretchr/...阅读全文

博文 2018-12-09 18:20:41 polaris

深入了解go的底层实现,竟然是汇编

go的底层是汇编语言,利用汇编来实现不同平台,不同cpu的实现。 简单做个测试。 拷贝汇编的indexbyte到项目,顺呗拷贝一份go的申明,假如这个文件是cgo ![image.png](https://static.studygolang.com/190412/ccb1903953f96700e7f7595051611720.png) 在项目中使用cgo中的indexbyte ![image.png](https://static.studygolang.com/190412/c2fc55e0008cba2cf4e2d4f7a3094fb2.png) 你会发现,他进入了汇编语言 ![image.png](https://static.studygolang.com/190412/80fd...阅读全文

博文 2019-04-12 16:34:20 bobohume

GoLang Redis存储结构体方式对比

Redis 作为一个非关系数据库,以key-value 的方式存储数据,在后台开发时常被用于处理缓存。在golang 中的结构体的存储也是经常需要接触到,以下是几种结构体存储的方式的对比。 1.hash类型方式 func DoHashStore(conn redis.Conn) { //以hash类型保存 conn.Do("hmset",redis.Args{"struct1"}.AddFlat(testStruct)...) //获取缓存 value, _ := redis.Values(conn.Do("hgetall", "struct1")) //将values转成结构体 object := &TestStruct{} redis.ScanStruct(value, object) ...阅读全文

博文 2019-05-09 03:34:57 wp_nine

第一本Docker书 PDF高清完整版-PDF下载

网盘下载地址:第一本Docker书 PDF下载 - 易分享电子书PDF资源网 - PDF网盘资源在线下载 作者: [澳]詹姆斯•特恩布尔(James Turnbull)出版社: 人民邮电出版社译者: 李兆海 / 刘斌 / 巨震出版年: 2014-12页数: 252定价: 59装帧: 平装ISBN: 9787115377333内容简介 · · · · · ·全球第一本Docker技术图书中文版,Docker中文社区鼎力支持!Docker核心团队成员权威著作,在技术圈中很有影响力。既是第一本Docker书,也非常适合作为学习Docker的第一本入门书。Docker是一个开源的应用容器引擎,让开发者可以将他们的应用和依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚...阅读全文

博文 2019-07-29 13:32:39 j620832

golang 中的 time 包的 Ticker

真实的应用场景是:在测试收包的顺序的时候,加了个 tick 就发现丢包了 那么来看一个应用例子: package main import ( "fmt" "runtime" "time" ) func init() { runtime.GOMAXPROCS(runtime.NumCPU()) } func main() { ch := make(chan int, 1024) go func(ch chan int) { for { val := <-ch fmt.Printf("val:%d\n", val) } }(ch) tick := time.NewTicker(1 * time.Second) for i := 0; i < 20; i++ { select { case ch ...阅读全文

博文 2017-10-06 10:30:01 liang1101

人人车高薪招聘Go研发工程师

人人车成立于2014年4月,致力于打造全新的二手车C2C交易模式,为个人车主和买家提供诚信、专业、便捷、有保障的优质二手车交易。 “职业发展最重要的是坐上火箭。公司在飞速发展而产生很大影响力时,事业自然也会突飞猛进。……。如果你得到了坐上火箭的机会,别管是什么位置,上去就行!”施密特如是说。 谁在公司创立之前,就被风投看好,拿到了500万美元投资? 谁在网站上线之前就卖出了第一辆车? 谁三个月就做到了在售个人车源数量第一? 谁是自营二手车零售月销量第一? 谁运营半年就拿到了雷军2000万美元投资? 谁是二手车行业发展最迅速的公司? 谁运营一年就拿到了腾讯8500万美元投资? 火箭已经有了,重要的是坐上它!Now! 职位描述 月...阅读全文

沃尔玛开设智慧零售实验室,正面硬刚 Amazon Go

据外媒TechSpot报道,4月25日,零售巨头沃尔玛在位于长岛的一家50000平方英尺的门店内开设了智能零售实验室(Intelligent Retail Lab,以下简称IRL)。 据了解,IRL的天花板上分布着数以千计的摄像头,同时货架上还装有传感器。不过不同于亚马逊的Amazon Go,沃尔玛安装这些设备的目的并非无人收银,而是提高员工的工作效率。大连正规×××医院 http://yyk.39.net/hospital/f9a8f_comments.html 借助人工智能算法,这套系统可以分析货架的缺货情况,以及哪些商品即将过期或者有破损,并提醒工作人员及时补货。此外,系统还可以预测销售高峰,提醒门店开放更多的收银柜台,它甚至还能预测哪些商品将最受欢迎,提醒门店提前备货。 近两年,随着...阅读全文

博文 2019-04-27 02:35:12 2600cc

正则表达式

匹配纯文本 Ben Hello, my name is Ben. Please visit my website at http://www.forta.com. 匹配任意字符(默认模式不匹配\n,单行模式可以匹配\n) a.c abc acc a2c.a.\.xls na1.xls na2.xls前面两个点任意字符 ,最后一个转义点, . 和 \ 等都叫做元字符(metacharacter),表示这个字符有特殊含义,而不是字符本身的含义,如果我们要匹配元字符的话,我们需要对元字符进行转义 [] 字符集,对应位置可以是字符集中的任意字符,字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c] ,第一个字符如果是^则表示取反,如[^abc];所有特殊字符在字符集中都失去原有的特殊...阅读全文

博文 2018-12-01 00:34:42 越塔打哭你

Go Web 框架性能比拼 2017 春季版

谁是最快的Go Web框架?, 这是我去年发布的Go web 框架的评测。现在一年过去了,有些框架因为缺乏维护而被放弃了,又有新的轮子被创造出来,既有的轮子也在不停的演化升级,来去之间,Go的版本也已经升级的1.8了。 青年节前, kirillDanshin提了一个issue,希望能更新最新的测试结果,现在这篇文章就记录了最新的测试结果。 测试环境 CPU: Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz, 32 cores Memory: 32G Go: 1.8.0 OS: CentOS 7 / 3.10.0-229.el7.x86_64 所有的评测的 web 框架都已经更新到 2017-04-01 的最新版本。 说明Julien Schmidt实现的 ...阅读全文

博文 2017-06-21 03:36:02 smallnest

云栖大会中你不可以错过的技术盛宴!

2017阿里云杭州云栖大会Clouder Lab探秘 带上电脑去云栖,与专家面对面顺便拿认证!报名9月30日截止! 杭州云栖大会推出的4场Clouder Lab开放实验室,为企业级技术人员提供了一个动手实操的实验平台,帮助他们清晰理解云计算、大数据相关的知识技能,达到即学即用的目的,更可以和阿里云专家一起探索云端最佳技术实践。且课程皆精选自阿里云大学业界首创的Apsara Clouder认证课程。 Clouder Lab还将设置现场测试环节,更好的辅助用户掌握核心技能点。通过测试者,可现场领取阿里云大学官方证书。 据悉去年Clouder Lab现场开发者人山人海,出现了一座难求的景象!而今年云栖大会Clouder Lab都有哪些有趣的实战内容? ...阅读全文

Go连接Hive

经过两天多的资料查找,反复测试从网上找到的多种方案,加上阿里云售后的支持,终于搞定Go语言连接Apache Hive的问题。 测试环境,阿里云E-MapReduce 2.1 中的Hive, Golang 1.7,开发环境win10。 在阿里云hive-site.xml中需要添加: hive.server2.authentication NOSASL 代码如下: package main import ( "fmt" "github.com/derekgr/hivething" //基于hiveserver2 thrift ) func main() { db, err := hivethin...阅读全文

博文 2016-11-05 03:00:01 dazheng

golang go mod下的包引用机制

首先在gogo目录下 go mod init gogo 声明gogo目录为gogo module其他的引用都基于module gogo进行引用文件结构:gogo --Test --helloworld.go --myMath --myMath1.go--myMath2.go测试代码:// helloworld.gopackage mainimport ("fmt""gogo/myMath")func main(){ fmt.Println("Hello World!") fmt.Println(mathClass.Add(1,1)) fmt.Println(mathClass.Sub(1,1))}// myMath1.gopackage mathClassfunc Add(x,y int) ...阅读全文

博文 2019-10-16 12:32:53 aside section ._1OhGeD

安利一个好用的Golang单元测试框架:gocheck

Golang下如何写单元测试?官方提供的testing package略显简陋,不过好在我们有Gocheck。 什么是好的单元测试? 在进入正题前,先来温习下前人总结的单元测试几条原则:http://www.atatech.org/articles/2523 1 单元测试应该在最低的功能/参数上验证程序的正确性 ... 3 单元测试过后,机器状态保持不变 ... 6 独立性,单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。 好的单元测试,应该遵循上面的原则;好的单元测试框架,应该为我们践行这些原则提供方便。 gocheck,简单好用 gocheck官网:http://labix.org/gocheck Golang官方的testing package算是...阅读全文

博文 2017-02-10 13:54:39 yuantops

2017北京云栖大会:云效企业级协同研发专场议题揭秘!

摘要: 阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同?大中型企业如何完成公有云/专有云/混合云转型升级,实现高效协同研发? 阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同?大中型企业如何完成公有云/专有云/混合云转型升级,实现高效协同研发?中国近5000万的中小企业如何保证研发过程的稳定性与持续性?企业如何利用工具实现项目管理-应用管理-代码测试-持续交付-运维监控-数据反馈运营的一站式研发生命周期管理服务,体验阿里巴巴的研发速度和流程?2017北京云栖大会,云效企业级协同研发专场为你揭秘! ![图片描述](http://img.blog.csdn.net/20171213160612997?watermark/2/tex...阅读全文

golang 压测redis 消息队列

用 redis 的 list 数据结构作为轻量级的消息队列,对于小系统确实是小而美,可控能力强。当然与kafka 和 rabbitmq 相比它还有很多缺陷,在服务进行生产和消费的时候,还需要加上部分逻辑进行处理。自己写了点 golang 代码,压力测试 redis 列表的性能。机器配置:双核,4G测试数据:100w压力测试源码(github)生产者,生产 100 w 条数据,平均,每秒能写 13817 条数据。begin time: 2018-07-29 14:03:55.606end time: 2018-07-29 14:05:07.976Produce message: 1000000avg: 13817.860879118389 负载 代码片段 消费者,消费 100 w 条数据,平均...阅读全文

博文 2018-07-29 18:34:59 wenfh2020

JOIN US | 京东智联云诚聘技术精英

诚聘精英 JOIN US 有前景的行业有空间的平台有梦想的伙伴 京东云智联云期待你的加入 招聘岗位 算法工程师 算法研究员 开发工程师 测试工程师 (详情请见下文) 关于我们 京东智联云(JD Cloud & AI)是京东集团旗下的智能技术提供商,依托京东集团在人工智能、大数据、云计算、物联网等方面的业务实践和技术沉淀,拥有领先的数字化、智能化产品,打造服务于数字企业、数字政府的多维场景解决方案,为客户创造价值。 上有天文下有地理的阅读区域各类图书提供借阅 绿植环绕生机勃勃的会客区域洋溢青春 期待你的加入 招聘岗位 聘算法工程师(视觉研发/人脸识别/OCR/图片内容审核/视频分析/商品识别/知识图谱/NLP) 职位描述: 针对实际业务需求,深入分析现有计算机视觉、深度学习算法与模型,给出有效...阅读全文

博文 2020-03-13 23:33:10 京东智联云开发者