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

golang: facebookgo之inject测试用例

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

golang并发编程实践 -- 简单生产者消费者(with lock)

上一篇文章用golang中的channel实现了简单的消费者模型,下面的版本是用传统的锁技术实现的版本,相对比会发现golang提供的channel更好用。而且golang的channel可以完成很多在别的语言里需要很多代码才能实现的功能。以后陆续解答。 package main import ( "fmt" "sync" "time" ) type Queue struct { Elem []int Capacity int Front int Rear int Lock sync.Locker Cond *sync.Cond } func New() *Queue { theQueue := &Queue{} theQueue.Capacity = 10 theQueue.Elem = ...阅读全文

博文 2014-10-04 19:26:11 aura521521

Golang的值类型receiver和指针类型receiver

Golang的值类型和指针类型receiver一直让我比较混淆,在此做几个试验备忘 先看指针类型的receiver: package main import ( "fmt" ) type BasicEvent struct { EventId int } func (ev *BasicEvent) updateEventID(id int) { ev.EventId = id } func main() { ev1 := &BasicEvent{EventId: 1} fmt.Printf("before update id = %d\n", ev1.EventId) ev1.updateEventID(2) fmt.Printf("After update id = %d\n", ev1....阅读全文

博文 2015-04-23 15:00:01 miros

Go负载均衡

负载均衡 请求者向均衡服务发送请求type Request struct { fn func() int // The operation to perform. c chan int // The channel to return the result. } 注意这返回的通道是放在请求内部的。通道是first-class值 能很好的模拟一个请求者,一个负载产生者func requester(work chan<- Request) { c := make(chan int) for { // Kill some time (fake load). Sleep(rand.Int63n(nWorker * 2 * Second)) work <- Request{workFn, c} // ...阅读全文

博文 2017-03-05 19:45:34 紫若丹枫

Golang分布式设计模式之-----星型拓扑分形设计

Golang分布式设计模式之-----星型拓扑分形设计 上一篇分层设计中,利用了简单的流水线原理,实现了简单的状态转移的设计。如下 这一篇我们将考虑另外一种情况。例如,linux内核中的进程管理。所有的进程都有一个父进程。当子进程正常运行时候,与父进程基本无通信。但当子进程死亡时,要通知其父进程,让父进程进行资源回收。当父进程死亡时,两种情况,子进程随着父进程一起死亡,或者将子进程交由父进程的父进程管理。类似于下图 其中每个进程都有自己的父进程,也有可能会有自己的子进程。 在这种管理中,父子关系,或者说是管理者与被管理者的关系。被管理者,可以独自运行,但要将其的一些状态告知管理者,或者管理者,可以定期获取被管理者的状态。 下面以一个p2p下载器为例: 一、职能划分,形成管理者与被管理者 1)...阅读全文

博文 2015-01-21 09:17:51 screscent

一份来自阿里云引擎ACE的求职信,你收到了吗?

尊敬的企业领导,个人站长、开发者们: 如果有个员工,可以把企业把70%运维的工作都干了,你们再也不用操心对操作系统、运行环境、应用中间件的安装、配置、优化、监控、升级等一系列繁杂的维护工作,可以专注精力在业务运营上,您是否会考虑录用他? 下图就是阿里云引擎ACE求职信,敬请查收! 详细了解ACE:http://www.aliyun.com/product/ace !![1111111.jpg](http://studygolang.qiniudn.com/151126/487be9e31756e7b913347e4f645e3023.png) 详细了解ACE:http://www.aliyun.com/product/ace...阅读全文

Go 多返回值

Go语言革命性地在静态开发语言阵营中率先提供了多返回值功能。这个特性让开发者可以从原来用各种比较别扭的方式返回多个值的痛苦中解脱出来,既不用再区分参数列表中哪几个用于输入,哪几个用于输出,也不用再只为了返回多个值而专门定义一个数据结构。 package main import "fmt" func vals() (int, int) { return 3, 7 } func main() { a, b := vals() fmt.Println(a) fmt.Println(b) _, c := vals() fmt.Println(c) } 123456789101112131415 package mainimport "fmt" func vals() (int, int) { ret...阅读全文

开源邮件代理服务Exim被爆RCE和DoS漏洞,建议赶紧升级!

影响范围 4.88和4.89 开源邮件传输代理Exim简介 Exim是由剑桥大学Philip Hazel开发的邮件传输代理,负责邮件的路由,转发和投递。它可运行在绝大多数的类Unix系统上,包括Solaris、AIX、Linux、macOS等。相比其他MTA,Exim配置更灵活,支持String Expansion技术,能执行诸如条件判断,字符转换等功能。 Exim漏洞提交至BugTracker 一名安全研究员发现并公开披露了流行互联网邮件信息传输代理Exim中的两个紧急漏洞,其中一个能导致远程攻击者在目标服务器上执行恶意代码。 最开始漏洞是由Phil Ponnock在黑五(11月25日)没有任何预告发布在这里的,提交到了该项目的BugTracker。 漏洞详情 第一个漏洞是使用后释放漏洞C...阅读全文

博文 2017-11-30 01:53:04 www.dbsec.cn

老司机带你用 Go 语言实现 Raft 分布式一致性协议

老司机带你用 Go 语言实现 Raft 分布式一致性协议   随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。   为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。任何一个分布式系统都无法同时满足 Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性)这三个基本需求,最多只能满足其中两项。 但是,一个分布式系统无论在 CAP 三者之间如何权衡,都无法彻底放弃一致性(Consistency),如果真的放弃一致性,那么就说明这个系统中的数据根本不可信,数据也就没有意义,那么这个系统也就没有任何价值可言。...阅读全文

博文 2017-02-09 06:00:24 chauncy

Golang学习笔记之方法(method)

如果对与结构体还有什么疑问的可以看一下Golang学习笔记之结构体 ⽅法总是绑定对象实例,并隐式将实例作为第⼀实参 (receiver)。 • 只能为当前包内命名类型定义⽅法。 • 参数 receiver 可任意命名。如⽅法中未曾使⽤,可省略参数名。 • 参数 receiver 类型可以是 T 或 *T。基类型 T 不能是接⼝或指针。 • 不⽀持⽅法重载, receiver 只是参数签名的组成部分。 • 可⽤实例 value 或 pointer 调⽤全部⽅法,编译器⾃动转换。 • Go 不允许同名函数,但是同名方法可以定义在不同的类型上 • method和receiver必须在同一个包里定义 • 作为函数参数,值类型就是值类型,指针类型就是指针类型 • 方法有一个值类型和指针类型的接受者时,...阅读全文

博文 2018-12-06 19:34:54 学生黄哲

Darma Cash简介

基础DMC 是在XMR基础上整合树图、DDPOS 、智能合约、预言机、及时通信等技术的区块链项目。一、创新 1、 创新采用树图结构并结合POW + DDPOS 共识模型,保证了币分发的公平性,又能保证币流通的安全性。 通过引入树图协议,让DMC在去中心化且POW条件下实现高TPS和协议层杜绝双花;而DDPOS (不限制节点的去中心化委托权益证明)进一步加强了网络的安全性,树图结构+POW +DDPOS 三者的融合让DMC在性能、安全、去中心化三角中实现了最优解。2、 在XMR基础上原创基于Omni Layer协议的隐私TOKEN,具有比ERC20 更安全、可靠、且完美继承XMR 全部的隐私特性的优点。3、支持golang语言的DVM虚拟机DMC原创并集成了一个基于WASM 优化的轻量级、图灵...阅读全文

博文 2020-03-05 03:32:40 DarmaCash

一人耗时 2 年,收集 2000 多万数据,创建了一个提供免费翻译搜索的网站

> 作为小微开发者,难以支付高昂的翻译费用,在线翻译又难以满足精度,所以想通过复用高质量的翻译实例进行软件内容翻译,我花了两年时间收集了2000 多万条移动 app 的翻译数据,将它们做成了一个搜索网站,期望能帮助小微开发者以更低的成本更好的质量完成软件或者网页的国际化。 #### i18n 多语言语料搜索引擎 - 网址:[https://i18ns.com](https://i18ns.com/) - 功能:支持 11 国语言搜索,包括:中文、英文、西班牙文、葡萄牙文等语言。有一千多种语言数据,超 2000 多万条数据,免费提供搜索服务。 - 详细介绍: <https://i18ns.com/help.html> - 中文搜索地址:[http...阅读全文

C,Go,Rust,Nim 4语回文数大战!仅供娱乐参考!

联想笔记本 inter i7,2.4GHz,16G,win10 C语言(应该是全C,vs2015编译) #include #include #include bool ishuiwen(int n) { int sn = 0; sn = n; int tn = 0; while (sn != 0) { tn = tn * 10 + sn % 10; sn = sn / 10; } if (tn == n) return true; return false; } int hw1() { int tx = 0; int x = 0; for (x = 0; x <= 10000000; x++) { if (ishuiwen(x) == t...阅读全文

博文 2015-09-25 09:00:00 捍卫机密

cannot call pointer method on xxx literal 错误❌原因

因: 指针不能作为接收者, 需要需要定义变量来接送地址​type myTreeNode struct{ node *tree.TreeNode } func (mynode *myTreeNode) postOrader(){ if mynode==nil || mynode.node==nil{ return } //错误的写法 myTreeNode{mynode.node.Left}.postOrader() right := myTreeNode{mynode.node.Right}.postOrader() mynode.node.Print() //正确的写法 left := myTreeNode{mynode.node.Left} left.postOrader() right ...阅读全文

博文 2018-08-27 21:44:48 zhangyangbest

机器学习入门:概念原理及常用算法

课程介绍 本课程主要讲解机器学习的概念、原理和应用场景,以及机器学习的常用算法,比如有监督学习、无监督学习、线性回归等。 讲师介绍: 西亭,蚂蚁金服大规模机器学习高级算法专家 学习入口:[请点击这里](http://click.aliyun.com/m/27941/) 课程目标 掌握机器学习的概念、原理和算法 适合人群 大数据开发者 机器学习开发者 阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场) ...阅读全文

马士兵:从零到年薪百万,写给浮躁的程序员

做老师这么多年,最高兴的就是听到学生说:“老师,我找到工作了!” “老师,我又涨薪水了”。听到这些,我由衷的替他们感到高兴,与此同时,也有作为老师参与到他们的人生发展中的那种自豪。但是,更多的是那些刚刚入行的人,他们感受到最多的,是迷茫,是无助。“老师,我怎么这么倒霉,刚毕业就赶上互联网寒冬,听说京东裁员了,听说阿里关闭招聘了,听说腾讯提高标准了,听说头条通过率只有.....”,“老师,这条路我还走下去吗?”作为一个骨灰级的“老人”,所谓的寒冬,我已经经历过多次。和其他行业一样,IT业也有自己的浮浮沉沉,每当行业低谷期,一群群在十字路口徘徊的人哪,都在不停的问:“我到底该何去何从?”我能建议的,是沉下心来学习。八年前,简晓敏以大专生的身份入职阿里,前几天,他说:“老师,您知道吗,我终于翻越百...阅读全文

博文 2019-05-09 03:35:01 马士兵

关于golang编写的kafka客户端消费者创建的问题

本人刚刚接触go语言,在用go语言写kafka消费者的时候遇到了如下问题:panic: kafka server: Offset's topic has not yet been created.可以确定是有这个topic的,而且用kafka-console-consumer.sh也是可以正常消费。go语言代码如下: brokers := []string{"xxxxxxx:9092","xxxxxxx:9092","xxxxxxx:9092"} topics := []string{"test"} config := cluster.NewConfig() config.Consumer.Return.Errors = true config.Consumer.Offsets.Commit...阅读全文

博文 2018-11-05 17:06:44 Eric_Gao

golang中Ticker的使用

// code_048_Ticker project main.go package main import ( "fmt" "time" ) //Ticker是一个定时触发的计时器, //它会以一个间隔(interval)往channel发送一个事件(当前时间), //而channel的接收者可以以固定的时间间隔从channel中读取事件。 func main() { ////创建定时器,每隔1秒后,定时器就会给channel发送一个事件(当前时间) ticker := time.NewTicker(time.Second * 1) i := 0 go func() { for { //循环 <-ticker.C i++ fmt.Println("i =", i) if i == 5 { ...阅读全文

博文 2018-10-08 17:35:50 ck_god

Signal守望者 (Watcher)

#Watcher ###Signal 守望者 #####可以设置Signal处理回调.并提供Signal的退出函数,线性与并行执行选择,提供一个向制定进程发送Signal的函数 ######预期是希望在用户自定义Signal中添加优雅的服务器重启与关闭,因为没有思路,目前还没有实现.大家可以在处理函数中自己添加处理. Github:https://github.com/Congenital/watche...阅读全文

golang 依赖注入

使用facebook的三方库:https://github.com/facebookgo/inject type C struct{ B *B `inject:""` } type B struct{ A *A `inject:""`//这里会根据注入对象的Name字段有选择的进行注入 } type A struct{ Name string } var injectGraph inject.Graph func main() { a := A{ name: "hello", } a2 := A{ Name: "hello2", } c := C{} err := injectGraph.Provide(//对象提供者 &inject.Object{Value: &a}, &inject.O...阅读全文

博文 2019-02-23 17:34:44 杜子龙

Go语言中普通函数与方法的区别

1.对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然。 2.对于方法(如struct的方法),接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以。 以下为简单示例: package structTest //普通函数与方法的区别(在接收者分别为值类型和指针类型的时候) //Date:2014-4-3 10:00:07 import ( "fmt" ) func StructTest06Base() { structTest0601() structTest0602() } //1.普通函数 //接收值类型参数的函数 func valueIntTest(a int) int { return a + 10 } //接收指针类型参数的函数 func poi...阅读全文

博文 2015-06-17 23:02:21 books1958

简单的网站优化方法

简单的网站优化方法 做好网络推广,首先你要做好网站的站内优化。 一、 关键词: 做站内优化,第一步也是最重要的就是关键字的选择,这一个关乎你后期页面的排名,一个网站不但首页排名高,其他页面排名上来了,这样才能到达覆盖效果。 小建议: 1.合理的挑选关键词 2.不要把所有词都堆积在首页, 3.关键词的部署要分配好,(顶级关键词、目标关键词、固定关键词、长尾关键词分配不同的页面) 4.每个页面关键词使用合理 例:耐思尼克首页 文章页面 每个栏目页面的关键词选择都要不同,title;keyword;description都需要设定好,针对自身的产品或者服务来选定自己的关键词。注:如果是一个新站,已经有许多行业网站,你在关键词的选择上可以偏向于长尾词...阅读全文

2019 年软件工程师现状报告:开发者最讨厌 PHP,最爱 Python

Hired 网站近日发布了“2019 年软件工程师现状”报告,亮点颇多。 image 该报告数据由 Hired 数据科学团队收集与分析,覆盖了 13 个城市的 98 000 名求职软件工程师,反映了过去一年超过 170 000 个面试申请和工作机会,还收集了来自 Hired 平台上 700 多名软件工程师的调查回复,以了解开发人员的工作偏好。 报告中有以下几大要点值得关注: 开发者对待开源的态度 大约一半的开发者参与到开源项目中,其中 5% 的人是因为工作需要,24% 是想让个人简历好看一些,还有 25% 是觉得自己有进行开源贡献的使命感,但最大比例的开发者还是觉得参与开源很有趣,占据了 30%。你的态度呢? image 全球区块链工程师需求上涨了 517%,安全工程师和嵌入式工程师热度也不...阅读全文

博文 2019-03-06 17:34:46 开源中国

Pokemon Go 反伪造GPS机制的探讨

免责声明:本文只是从技术的角度去探讨游戏当中的缺陷,任何组织与个人不得利用本文中的内容从事非法活动,请不要传播或利用本文中提到的漏洞,否则后果自负。 Pokemon Go是最近比较流行的基于AR和LBS的收集向游戏,老牌IP号召了一票玩家。游戏目前bug较多,这里讨论的是0.29.0版本以及在安卓平台下的反mock GPS的机制。 在未阅读过源码之前,一下的分析都基于实际测试结果,也就是黑盒测试。 目前已知的情报有: 1.游戏中存在检测伪造gps信息的机制,目前来看是只在客户端,至于服务端有没有无从而知 2.当游戏检测到用户正在使用mock gps之类的软件的时候会显示“failed to detect location”之类的字样,并终止与服务器端的交互 3.重启游戏可以解决上述问题 4....阅读全文

博文 2016-09-10 11:00:00 ytx1991

golang中所谓的”方法提升“,求解答。。。。

如果 S 包含一个匿名字段 T,S 的方法集不包含接受者为 *T 的方法提升。 这条原则说的是当我们嵌入一个类型,嵌入类型的接受者为指针的方法将不能被外部类型的值访问。 刚才在golang中国博客上看到这个说法,自己验证了后发现完全可以访问,哪位高手能解释下,期待ing........阅读全文

开启go语言之旅

在python学习了半年之后,不经意间又一次对go语言做了一番解读,有捧的,有砸的,捧的肯定是七牛的许式伟,据说七牛的核心服务都是用go语言写的,而且翻译了一本《go语言程序设计》,并合著了一本《go语言编程》,所以以七牛为主的一伙肯定是力捧go语言的,砸的也有,比如有个叫Liigo的人在CSDN上写了一遍《我为什么放弃GO语言》的文章,想看的百度下就有,链接就不贴了,我也仔细读了他的文章。反正新的事物出来肯定是有人喜欢,有人不喜欢,但是我觉得做为程序员最需要的就是学习,如果对本专业相关的东西,我觉得都可以学习,本着这样的精神,我决定开始学习go语言之路。 本身我是学c++出身,半年前学习了python,学习go语言我觉得应该也会很快,按照我之前学习python的模式,我相信一个月内把go语...阅读全文

博文 2015-12-22 05:00:02 zhangchilei

【夏洛的课】第8期——go get 加速

不积小流,无以成江海。每天两分钟。欢迎进入夏洛的课。 go get加速 近几期一直在讲加速,今天该轮到golang了,因为 Go 1.13 将 GOPROXY 默认成了中国大陆无法访问的 https://proxy.golang.org ,所以我们国内的开发者以后必须先修改 GOPROXY 才能正常使用 go 来开发应用了。好在七牛提供了国内代理。 设置环境变量,修改GOPROXY: export GOPROXY=https://goproxy.c...阅读全文

博文 2020-01-25 03:32:50 夏洛的课

Java开发者的Go之旅

Go, 也被称为Golang, 是由当前在谷歌工作的三位杰出开发者创造的一种编程语言. 它是一门非常新的语言, 2012年才发布1.0版本. 创造该语言的信念是因为C++成长的过于复杂而且臃肿, Go最初是为了吸引系统级的程序员. 却最受Python开发者和其它动态语言社区的的欢迎. Go是一门非常优秀的语言, 它提供轻量而简洁的语法, 能媲美高级语言, 加入了静态类型, 十分给力的并发支持, 原始性能可以媲美(类似于C/C++)低级别语言. Java在大规模和大团队的企业项目中是一门奇妙的语言, Java需要相当大的开销来开发和部署一个新的应用. 它冗长的特性不适合小型项目和一次性任务. 所有许多Java开发者拥有一门或者多门的语言作为后备语言去轻松应对其它的任务. 其它的语言经验能拓宽开...阅读全文

博文 2015-05-12 20:00:04 Chasel-Li

(厦门)招聘公链开发工程师

岗位名称:公链开发工程师 20K-30K 坐标厦门岗位需求:1. 熟悉比特币或以太坊代码2. 了解常用的加密原理, 熟练掌握ECC加密和签名算法3. C++ 3年以上,需熟练掌握c++ new features4. 较强的英语读写能力5. 能承受较大压力加分项:1. 了解匿名技术原理2. 参与过公链底层开发3. 掌握rust或golang4. 有BAT工作经历岗位职责:参与公链开发,包括但不限于底层代码编写,数字钱包,浏览器后端代码编写以及线上部署运维等工作。有意向者简历投向407946127@qq.com(投递时注明招聘信息来源链才网)公司名称:趣熵(厦门)软件有限公司地址:厦门是湖里区万科云玺1号楼薪酬:20K-30K(具体面议...阅读全文

对未来的一些思考

其实我不怎么看书,买了书之后就翻一翻前面几页,就没有然后了。最近花了几天看了阮一峰的《未来世界的幸存者》,算是打破记录把整本书都看完了。 这本书写于 2017 年,从 AlphaGo 战胜人类引发对未来的思考。读完整本书也让我对现实和未来有了些新的认知。 2019 年看这本两年前的书,其实一点也不过时。不仅可以让我们对未来进行思考,还可以验证作者当时对未来的看法。 做一个有想法的人 以前的我以为只要多掌握一门或者多门编程语言,在工作中我就能比其他的程序员有更多的优势。于是我不停的学,学了 JavaScript、Python、Golang,在工作中不仅干前端的本职工作,也做了后端,甚至还干了一些运维的工作。 至于对产品的思考,基本上没有。产品经理说要做什么,能实现的基本上都会去实现。至于为什么...阅读全文

博文 2019-11-03 14:33:23 aside section._1OhGeD

golang panic and recover

panic 是一个内置函数,当一个函数 F 调用 panic,F 的执行就会停止,F 中 deferred 函数调用会被执行,然后 F 返回控制到它的调用者。这个过程会沿着调用栈执行下去,直到当前 goroutine 中的所有函数返回,然后程序 crash。出现 panic 是因为: 调用了 panic 函数 出现了运行时错误(例如,数组越界访问) recover 是一个内置函数,用于恢复一个 panicking goroutine 的控制。需要注意的是,recover 只能使用在 deferred 函数中。如果当前的 goroutine panicking,recover 调用将会捕获 panic 传递的值并且恢复正常的执行。看一个例子: package main import "fmt"...阅读全文

说出你最喜欢的开源项目,七牛和你一起去支持!

![](http://77fy2z.com1.z0.glb.clouddn.com/kaiyuan.jpg) 为进一步支持开源事业,七牛推出了“七牛开源项目扶持计划”,免费支持开源项目,为开源事业尽一份力量。 如果您建有开源项目站,或者参与了其他开源项目站的维护,您就可以申请加入“七牛开源项目扶持计划”。 **申请步骤如下:** ![](http://77fy2z.com1.z0.glb.clouddn.com/申请步骤.png) 同时,我们特别推出了“说出你最喜欢的开源项目,七牛和你一起去支持!”活动,只要是你喜欢的开源项目,七牛就会和你一起去支持!我们还会在每个月的第一个星期一从参与该活动的开发者中随机抽取3个幸运开发者,各送出七牛周边礼品1份。 了解...阅读全文

数字输入golang实现的一个小游戏–猜数字

PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦! 原文步同至:http://www.waylau.com/golang-game-guess-numbe/ 随机成生一个数字,输入一个数字看否是匹对,配匹则结速,反之提示是大了还是小了, 代码如下: 每日一道理 爱心是一片照射在冬日的阳光,使贫病交迫的人感到人间的温暖;爱心是一泓出现在沙漠里的泉水,使濒临绝境的人重新看到生活的希望;爱心是一首飘荡在夜空的歌谣,使孤苦无依的人获得心灵的慰藉。 package main import ( "bufio" "fmt" "math/rand" "os" "strconv" "time" ) var ( endNum int //设...阅读全文

博文 2014-10-04 19:26:07 jiangu66

【上海招聘】新能源电动汽车公司招聘golang工程师,坐标:上海嘉定

主要工作职责 Major responsibilities 为Front-end提供相关下载及版本管理服务; Front-end与后端动态加密系统的开发和维护工作 上述后端开发的详细设计、维护和开发工作。 任职要求 Qualifications 从事相关行业3年以上,具有大型软件系统开发经验。 熟悉tcp/ip,HTTP(S)相关通信协议。 熟练掌握golang,C/C++,JAVA,Python等编程语言之一,愿意学习使用不同编程语言。 熟悉android,linux系统组件,能使用SHELL编制脚本,有OTA,FOTA相关经验尤佳。 熟悉nginx,redis,memcache,mysql等开源工...阅读全文

Golang用武之地-七牛云存储CEO许式伟

Golang用武之地-七牛云存储CEO许式伟 云落地所面临的最主要问题不是资金和硬件网络等资源,而是系统方案提供商和资源拥有者之间的信息不对称,相互找不到合适的对象。对于运营方而言,如何评估现有的方案也是一个比较大的问题,因为缺少公认的评估方法和标准。 对其内容详细阅...阅读全文

博文 2015-06-17 20:05:13 lihang421

golang语法总结(二十一):方法method

Go不像其它面相对象语言一样可以写个class,然后在class里面写一堆方法,但是它也很巧妙的实现了这种效果,我们只需要在普通函数前面加个接受者(receiver,写在函数名前面的括号里面),这样编译器就知道这个函数(方法)属于哪个struct了。 下面是简单示例: type A struct { Name string} func (a A)foo() { //接收者写在函数名前面的括号里面 fmt.Println("foo")} func main() { a := A{} a.foo() //foo} 需要注意的是,因为Go不支持函数重载,所以某个接收者(receiver)的某个方法只能对应一个函数,比如下面的就属于方法重复,编译无法通过: func (a A)foo() { fmt...阅读全文

博文 2016-02-23 15:00:04 QQ245671051

Golang实现生产者和消费者

packagemainimport("fmt""sync")//实现一个生产者和消费者/*生产者产生数据添加到通道里面,消费者消费数据从通道里面不带缓存实现*/funcmain(){ch:=make(chanint)varwgsync.WaitGroupwg.Add(2)goproducers(&wg,ch)goconsumer(&wg,ch)wg.Wait()}//生产者funcproducers(wg*sync.WaitGroup,chchanint){fori:=0;i<10;i++{fmt.Println("send:",i)ch<-i}close(ch)wg.Done()}//消费者funcconsumer(wg*sync.WaitGroup,chchanint){forv:=ra...阅读全文

博文 2017-11-01 08:04:42 dncmn

模板市场开发者开放申请,人人争当模板设计师!

有没有试过,在你自助建站的时候因为设计网站模板而烦恼?因为看不上称心的网站模板而纠结?因为看上一套模板但是需要花钱而舍不得?这些问题让建站者感到头疼。那么对于模板设计师又有什么烦心的事呢?自己设计的网站模板得不到赏识;做出精致的模板没有好的市场进行出售;做出的模板放在市场上没人购买;这些揪心的问题成为了设计者的烦恼。 ![~@C6J4B(~R$$@N4NIX${HZT.png](http://studygolang.qiniudn.com/170313/bf94409f3a7eb8dde116f0c3eb582c58.png) 就在设计师正在苦恼的时候,建站宝盒模板市场先开启模板开发者的招募。无论你是不是设计师、是不是开发者、懂不懂设计、会不会专业技术都好,只要你有创意,就能零成...阅读全文

golang 值接收者和指针接收者

interface_值接收者_指针接收者.png 例子 package main import "fmt" //定义一个 anial 接口类型 type anial interface { move() } type cat struct { name string feet int } type dog struct { name string feet int } // 采用值接受者,参数可以传递结构体类型和结构体指针类型 //func (c cat)move() { // fmt.Printf("%s,走猫步\n", c.name) //} // //func (d dog)move() { // fmt.Printf("%s,走狗步\n", d.name) //} // 采用指针接受...阅读全文

博文 2020-04-09 00:32:51 小麦客

第十三天:golang学习笔记之encoding

★encoding | encoding包定义了供其它包使用的可以将数据在字节水平和文本表示之间转换的接口. 编码在之前一直是一个重大问题,更可读的?效率更高的?轻量级的?重量级的?多种编码类型共存。 encoding encoding定义了四个接口(并没有多少对象去实现,甚至目录下的子包): // 实现了本接口的对象可以把自身编码为二进制,并作为返回值返回 type BinaryMarshaler interface { MarshalBinary() (data []byte, err error) } // 实现了本接口的对象可以把二进制编码为自身,接受者应该为指针,传参应该是TextMarshaler生成的二进制 type BinaryUnmarshaler interface { ...阅读全文

博文 2019-12-28 21:32:41 Macmillan_

google测试分享-问题和挑战

谈到google测试遇到的问题和挑战之前,我想简单的罗列下国内App测试行业遇到的几个共同的问题: (1)测试人员的价值输出难以衡量。现在很多项目发布上线,大部分价值都是开发贡献的,还有一部分是产品经理贡献的,测试贡献的就是锦上添花,很难让人信服业务发展价值的贡献。 (2)用户体验测试难以形成。随着这些年的App测试技术的发展,测试人员保证产品上线质量上没有任何问题,但是在移动互联网时代,用户对产品的体验要求更高,不是要求没有功能性的问题,而是要好用,用的很爽,这里面测试能产生的价值就需要好好思考了。 (3)自动化测试和手工测试的平衡。这几年自动化测试技术的发展,让很多公司的测试团队都大力开展自动化测试,包括敏捷测试的推广,都是自动化测试对于产品的价值体现不能够分析的非常清...阅读全文