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

beego框架之orm模块

参考beego原文:http://beego.me/docs/mvc/model/orm.md#main.go beego ORM 是一个强大的 Go 语言 ORM 框架,orm模块主要是处理MVC中的M(models)。 首先以bee工具创建一工程名为:beegoorm,修改的文件为 beegoorm/main.go 和 beegoorm/models/models.go(仅2个文件) beegoorm/models/models.go package models import ( "github.com/astaxie/beego/orm" ) type User struct { Id int Name string Profile *Profile `orm:"rel(one)"`...阅读全文

博文 2015-07-01 03:00:00 hezhixiong

超赞的GO语言设计模式和成例集锦

来自:http://geek.csdn.net/news/detail/100051 Go语言从面世就受到了业界的普遍关注,曾有文章分析,Go是最有可能改变未来IT技术的十大语言之一。本文作者列举了Go语言的设计模式和成例合集,并且还进行了详细的分类。 创建型模式 抽象工厂模式:提供一个接口用于创建相关对象的家族;Builder模式:使用简单的对象来构建复杂的对象;工厂方法模式:一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中;对象池模式:实例化并维护一组相同类型的对象实例;单例模式:限制类的实例,保证一个类只有一个实例。 结构模式 适配器模式:适配另一个不兼容的接口来一起工作;桥接模式:将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立...阅读全文

博文 2016-09-08 06:00:09 Blues1021

Go语言设计模式实践:迭代器(Iterator)

关于本系列 决定开个新坑。 这个系列首先是关于Go语言实践的。在项目中实际使用Go语言也有段时间了,一个体会就是不论是官方文档、图书还是网络资料,关于Go语言惯用法(idiom)的介绍都比较少,基本只能靠看标准库源代码自己琢磨,所以我特别想在这方面有一些收集和总结。 然后这个系列也是关于设计模式的。虽然Go语言不是一门面向对象编程语言,但是很多面向对象设计模式所要解决的问题是在程序设计中客观存在的。不管用什么语言,总是要面对和解决这些问题的,只是解决的思路和途径会有所不同。所以我想就以经典的设计模式作为切入点来展开这个系列,毕竟大家对设计模式都很熟悉了,可以避免无中生有想出一些蹩脚的应用场景。 本系列的具体主题会比较灵活,计划主要包括这些方面的话题: Go语言惯用法。 设计模式的实现。特别是...阅读全文

博文 2014-10-31 03:00:01 newgame

go语言设计哲学

世界是并行的----先不说宇宙,就整个地球来说,世界万物都是并行发生的;天生对并发支持良好的go语言更容易描述并行的世界; 世界是由物质组合构成的---微观世界:由小的粒子组合成大的粒子;宏观世界:由小的物体组合成大的物体; 继承只能描述现实世界的一小部分,使用继承是不全面的;go的设计选择的是组合,这个和现实世界比较吻合的设计,表现力更强; 世界是标准化的---随着生产力的发展,社会分工越来与详细,越来越多行业有了国际标准,任何一个国家的、任何一个公司只要按照这个标准生产器件,就能装配到一台机器上;IBM/PC就是硬件模块化和接口化一个最成功的例证; 软件也可如此,go的接口是duck模型,面向接口编程,而不需要显示的声明,将语言能做的事情交给语言做; 正交性--几何上的正交指的是两个向量...阅读全文

博文 2015-04-30 20:30:29 hittata

Golang分布式设计模式之-----分层设计

提到分布式系统,我们会想到很多机器,分别部署着各自的服务,然后整体组成一个分布式系统。在这类系统中,分布式系统与常规的集中式系统存在着以下三个区别。(来自分布式算法导论) 1、缺乏全局状态知识 2、缺乏全局时间帧 3、非确定性 这三大特点也成为分布式系统设计的难点。也正是如此,分布式系统的设计比常规的集中式系统要难的多。为了区别,我们称这种分布式系统为,群体分布式。这种犹如社会群体。 golang语言天生具有分布式的特点,其主要是基于协程与chan的概念。如果对golang不了解的人可以简单的去看看golang语言。 有了golang语言,我们的可执行程序,也可以设计成分布式。一个可执行程序设计成分布式,这种分布式我们成为单体分布式。这种犹如,个体,存在着很多的部件。 其与群体分布式的区别在...阅读全文

博文 2014-10-09 21:00:09 screscent

[北京]Golang游戏服务器工程师

北京钛核互动信息技术有限公司成立于2014年11月,创始人团队都是来自于Glu Mobile, Gameloft等顶尖手游公司。在游戏行业打拼了10年以上,擅长高品质精品游戏开发。开发过大量精品手机游戏、Console游戏和网游。公司坚信以人为本,以顶级的人才需要顶级的回报为目标,营造一个有激情的宽松的游戏开发环境,希望能够让游戏人才能够发挥自己的热情和潜力。 http://www.tuicool.com/articles/uEfEJf 服务器将会使用弹性云自动伸缩架构,在这里你将能够学习并开发具有国际最先进的云架构游戏服务器方案。我们招聘具有创新精神的工程师,敢创新、思维严谨、勇于承担。 **基本能力要求:** 1. 热爱玩游戏,热爱开发游戏。具备足够的游戏常识;...阅读全文

设计模式(golang)

设计模式的六大原则 摘自 Java开发中的23种设计模式详解 1、开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。 所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后 面的具体设计中我们会提到这点。 2、里氏代换原则(Liskov Substitution Principle) 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何 基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受 到...阅读全文

博文 2017-02-15 15:20:20 Cbping

golang设计模式的一些看法

golang设计模式的一些看法 对于c、c++来讲,设计的对象存在着这几个问题 1、 对象是死的,只有自己的属性,行为(函数)。没有可以自己独立执行的机制 2、 对象是存活的,有自己的属性,行为(函数),还有独立执行的活动(自己独立的线程)。但由于系统的限制,这种对象数量不能过多(线程数量不能太多)。 3、 对象是半存活的,有自己的属性,行为,没有独立的执行活动(没有自己独立的线程)。需要借助于其他对象的线程调度。 以上是c、c++语言的一些限制。其他语言不是熟悉,不进行评判。但大多数也是类似的。 那么对于golang语言来讲,设计的对象可以是 存活的,每个对象,有自己的属性,有自己的行为,也有自己的活动(通过协程来实现)。那么这样来讲,golang就可以实现对对象的完整模拟实现。就犹如我们...阅读全文

博文 2014-12-17 13:00:01 screscent

golang select 选择器的两种方案

golang select 选择器 常规模式: package main import ( "fmt" "strconv" ) func main() { var chs1 = make(chan int) var chs2 = make(chan float64) var chs3 = make(chan string) var ch4close = make(chan int) defer close(ch4close) go func(c chan int, ch4close chan int) { for i := 0; i < 5; i++ { c <- i } close(c) ch4close <- 1 }(chs1, ch4close) go func(c chan floa...阅读全文

博文 2014-10-04 19:26:08 eclipser1987

[分享]Gopher China 上海大会上的PPT

Gopher China 上海大会上的PPT [GO语言并发编程实践 by 周洋@360手机助手](http://airjd.com/view/i93qyhcy000h5ri) [Go语言在NFV场景下的应用研究 by 汪洋@华为](http://airjd.com/view/i93rjkj300009rd) [Go在猎豹移动的应用 by 毛剑](http://airjd.com/view/i93y6ubj000f9mf) [Golang与高性能DSP竞价系统](http://airjd.com/view/i93ybt65000g7pe) [用golang写一个操作系统](http://airjd.com/view/i93y5mbb000i1ga) [P2...阅读全文

GO语言简单工厂模式

简单工厂模式的特点是工厂可以根据条件产生不同功能的类,从而达到提高程序代码的可复用性。 package main import ( "fmt" ) type Operater interface { //运算接口 Operate(int, int) int } type AddOperate struct { //加法运算类,实现了运算接口 } func (this *AddOperate)Operate(rhs int, lhs int) int { return rhs + lhs } type SubOperate struct { //减法运算类,实现了运算接口 } func (this *SubOperate)Operate(rhs int, lhs int) int { retu...阅读全文

博文 2015-09-23 18:00:01 wenjianming

[Golang]设计模式实践:组合(Composite)

关于本系列这个系列首先是关于Go语言实践的。在项目中实际使用Go语言也有段时间了,一个体会就是不论是官方文档、图书还是网络资料,关于Go语言惯用法(idiom)的介绍都比较少,基本只能靠看标准库源代码自己琢磨,所以我特别想在这方面有一些收集和总结。然后这个系列也是关于设计模式的。虽然Go语言不是一门面向对象编程语言,但是很多面向对象设计模式所要解决的问题是在程序设计中客观存在的。不管用什么语言,总是要面对和解决这些问题的,只是解决的思路和途径会有所不同。所以我想就以经典的设计模式作为切入点来展开这个系列,毕竟大家对设计模式都很熟悉了,可以避免无中生有想出一些蹩脚的应用场景。本系列的具体主题会比较灵活,计划主要包括这些方面的话题:Go语言惯用法。设计模式的实现。特别是引入了闭包,协程,Duc...阅读全文

博文 2015-03-13 12:00:31 abv123456789

Go语言并发的设计模式和应用场景

生成器 在Python中我们可以使用yield关键字来让一个函数成为生成器,在Go中我们可以使用信道来制造生成器(一种lazy load类似的东西)。 当然我们的信道并不是简单的做阻塞主线的功能来使用的哦。 下面是一个制作自增整数生成器的例子,直到主线向信道索要数据,我们才添加数据到信道: func xrange() chan int{ // xrange用来生成自增的整数 var ch chan int = make(chan int) go func() { // 开出一个goroutine for i := 0; ; i++ { ch <- i // 直到信道索要数据,才把i添加进信道 } }() return ch } func main() { generator := xrang...阅读全文

博文 2016-05-27 19:00:03 Ellon-Daris

Go语言并发的设计模式和应用场景

生成器 在Python中我们可以使用yield关键字来让一个函数成为生成器,在Go中我们可以使用信道来制造生成器(一种lazy load类似的东西)。 当然我们的信道并不是简单的做阻塞主线的功能来使用的哦。 下面是一个制作自增整数生成器的例子,直到主线向信道索要数据,我们才添加数据到信道: func xrange() chan int{ // xrange用来生成自增的整数 var ch chan int = make(chan int) go func() { // 开出一个goroutine for i := 0; ; i++ { ch <- i // 直到信道索要数据,才把i添加进信道 } }() return ch } func main() { generator := xrang...阅读全文

博文 2017-01-10 02:00:01 四明狂客

继续招聘Go的后端开发人员

公司:创业团队,公司已注册,拿到千万级别的天使投资,方向是O2O,具体领域涉及到商业模式,在这里不细说了,总之是一个还没有巨头的大市场,非常看好。 坐标:上海,长寿路上,靠近7号地铁线,5A级写字楼。 环境:办公环境不错,为每个开发人员配备全新rmbp + 28寸4K显示器 待遇:1.2万-2万,如果的确有料,还可以再谈,半年后根据实际贡献和能力,甚至可以提供股权。 准备用Go来做后端,采用微服务架构体系,欢迎真心喜欢Go的兄弟联系我...阅读全文

golang redis的模式订阅

c := redisPool.Get() psc := redis.PubSubConn{c} psc.PSubscribe("aa*") for { switch v := psc.Receive().(type) { case redis.Subscription: fmt.Printf("%s: %s %d\n", v.Channel, v.Kind, v.Count) case redis.Message://单个订阅subscribe fmt.Printf("%s: message: %s\n", v.Channel, v.Data) case redis.PMessage://模式订阅psubscribe fmt.Printf("PMessage: %s %s %s\n", v....阅读全文

博文 2015-12-01 03:00:00 liughost

【广州】移动互联网公司欢迎Go程序员

我们是一家移动互联网公司,有稳定投资方和成熟的商业模式。 要求: 1. 从事Golang开发1年以上 2. 精通Golang,熟悉Go设计模式,有生产环境下大量使用goroutine的经验优先 3. 精通*nix网络编程,具备良好的编码规范 4. 熟悉分布式软件系统架构 5. 思维活跃,乐于沟通,有开源项目经验者优先 我们期待您的加入! 网址:http://www.shangnatao.com Email: tech@shangnatao.com Jason QQ: 5692500...阅读全文

上海/广州-继续招个GO(还是上次的公司,之前在这已经招到一个了,感谢贵宝地)

Go工程师(上海) 职责范围: 1. 负责应用于高并发环境下的服务器端应用程序开发。 2. 服务运维及接口开发(Go语言为主) 岗位要求: 1. 扎实的 golang 语言基础。 2. 具备良好的代码编写习惯、良好的代码结构组织能力,同时可以维护开发文档。 3. 熟悉 TDD 模式、DevOps 模式。 4. 熟悉 MySQL、MongoDB 、Redis 等存储方案。 5. 熟悉 Linux 环境。 6. 能够自我驱动,热爱技术,有强烈的上进心,善于探索和钻研 加分项: 1. 可熟练使用 Mac 2. 使用 Git 作为版本控制工具。 3. 精通C/C/+/+或 Python语言,熟悉常用的设计模式者优先 4. 有云计算、云存储,Paas平台或者其他分布式项目...阅读全文

大话机器学习(一)--Go for it!

本系列教程适合对机器学习一无所知,甚至文科森哦。反正不会有数学公式,I promise!教程基于sklearn的python机器学习库。 打开机器学习的面纱,就是这样。 首先要有利器。工欲善其事必先利其器。看我下面这个文章吧,下载一下这个软件,然后我们就可以开始了。 http://blog.csdn.net/qtlyx/article/details/49742483 1.什么是机器学习? 数据挖掘,深度学习,模式识别,大数据挖掘。一切听起来很深奥的样子。其实呢,就是一句话:分类和预测!说的那么好听就是在做这两件事。 2.线性回归 马上开始!有一种东西叫做最小二乘法,不知道也没有关系。  话说有这样一张图,上面有这么多点点是已知的,现在问题来了,告诉你横轴的值是0.56的点,纵轴的值应该是...阅读全文

博文 2016-02-23 15:00:03 qtlyx

golang年度使用总结,简洁不简单

时间过得好快,比较正式的使用go语言,已经接近300天了。这期间,go从1.5发展到了1.7,自己因为兴趣+责任,来到了新的团队,再次从事曾经非常熟悉的开发工作,充实! 竟然在玩scala之后,用了go语言 最初了解go语言,还是13年原单位一个项目。在不涉及到数据库操作的情况下,技术团队用.net竟然无法支持500/s的tcp峰值请求。本欲捡起Java,结果无意中知道了go。发现,用go的select非常非常简单。但因为其编程思想和传统OO差别很大,极不习惯,就没有跟进。 再次接触就是2015年,这期间正痴迷Scala,加入了一些scala的群。喜欢scala比较简单: 1. 语言精炼,代码优雅 scala的模式识别、类型推断实在是太舒服了,利用lambda(这个java8也有,但scal...阅读全文

博文 2016-09-05 11:00:05 qq_26981997

golang and design pattern

学习java的时候,“设计模式”这个概念到处可见。比如java.io里面的 decorated pattern,Object.Clone(Object)原生态支持Prototype pattern,Swing事件响应的Observer pattern, io.util和Event中的Adapter pattern。还有第三方框架中形形色色的design pattern。有时候从代码中突然发现一个design pattern,喜不自禁。 现在学习go语言,就再也没有从go语言中听到design pattern这个概念了。design pattern本身就是 Object-Oriented语言在实践的经验总结。在pure Object-Oriented语言如Java中自然运用得淋漓尽致,而在hy...阅读全文

博文 2015-04-08 03:00:24 harrysun

一个月的golang服务器开发感触

好快,一个月过去了,感觉自己学得少,也感觉自己有点质的飞跃。以前用的openresty,怎么说,也很有价值,高并发,负载均衡,在某种小游戏上是可以一试的,其实我很有想法的,,,但是用来做游戏对开发这来说,太没得发展前途了,,,毕竟我觉得,起码得会很多重要的编程思想,设计模式比较好,毕竟不是产品发展方向,,,对于golang这一个月,感觉发现了新大陆一样的,了解了rpc,kcp,真正体会到了高内聚和低耦合的意义,明白了,数据库并不是那么刚需的,体会到了golang真的是天生为了解决分布式,微服务,高内聚低耦合而诞生的,还有一帮兢兢业业的大佬,心里由衷的敬畏,他们真的是程序员的样子,而不是混日子,做一天和尚,敲一天钟。希望自己不忘初心,有高追求,努力奋斗。可以用openresty做路由,gola...阅读全文

Go语言设计模式实践:组合(Composite)

关于本系列 这个系列首先是关于Go语言实践的。在项目中实际使用Go语言也有段时间了,一个体会就是不论是官方文档、图书还是网络资料,关于Go语言惯用法(idiom)的介绍都比较少,基本只能靠看标准库源代码自己琢磨,所以我特别想在这方面有一些收集和总结。 然后这个系列也是关于设计模式的。虽然Go语言不是一门面向对象编程语言,但是很多面向对象设计模式所要解决的问题是在程序设计中客观存在的。不管用什么语言,总是要面对和解决这些问题的,只是解决的思路和途径会有所不同。所以我想就以经典的设计模式作为切入点来展开这个系列,毕竟大家对设计模式都很熟悉了,可以避免无中生有想出一些蹩脚的应用场景。 本系列的具体主题会比较灵活,计划主要包括这些方面的话题: Go语言惯用法。 设计模式的实现。特别是引入了闭包,协程...阅读全文

博文 2014-12-01 12:00:01 huangml

golang语言并发与并行——goroutine和channel的详细理解(三)

Go语言并发的设计模式和应用场景 以下设计模式和应用场景来自Google IO上的关于Goroutine的PPT:https://talks.golang.org/2012/concurrency.slide 本文的示例代码在: https://github.com/hit9/Go-patterns-with-channel 生成器 在Python中我们可以使用yield关键字来让一个函数成为生成器,在Go中我们可以使用信道来制造生成器(一种lazy load类似的东西)。 当然我们的信道并不是简单的做阻塞主线的功能来使用的哦。 下面是一个制作自增整数生成器的例子,直到主线向信道索要数据,我们才添加数据到信道 func xrange() chan int{ // xrange用来生成自增的整...阅读全文

博文 2017-03-04 10:00:04 skh2015java

go 语言学习历程

接触go是2012年的时候,真正开始系统的学习和开发系统是2014年了,go语言的学习也算自己2014年的重要工作之一,对go语言学习的总结,也算是年底总结之一 1.学习go的原因和动机: 1>先前做过2年Unix c开发经验, 对于C系的语言有特殊的感情,go特别适合我胃口,用过后爱不释手; 2>go语言团队太过耀眼和强大:Thompson 图灵奖获得者,unix 和C的共同发明人;Pike PLAN9操作系统的主要开发者、UTF-8发明者;Robert Griesemer 参与java的HotSpot, js v8引擎开发者; 3>国内传道者的极力推荐:许式伟兄,谢孟军兄等强力推荐及相关书籍问世; 2.学习资料: 书籍是:老许的《go语言编程》、 老谢的《go web编程》、 雨痕的《g...阅读全文

博文 2015-01-08 10:00:01 一曲忧伤

go 语言学习历程

接触go是2012年的时候,真正开始系统的学习和开发系统是2014年了,go语言的学习也算自己2014年的重要工作之一,对go语言学习的总结,也算是年底总结之一 1.学习go的原因和动机: 1>先前做过2年Unix c开发经验, 对于C系的语言有特殊的感情,go特别适合我胃口,用过后爱不释手; 2>go语言团队太过耀眼和强大:Thompson 图灵奖获得者,unix 和C的共同发明人;Pike PLAN9操作系统的主要开发者、UTF-8发明者;Robert Griesemer 参与java的HotSpot, js v8引擎开发者; 3>国内传道者的极力推荐:许式伟兄,谢孟军兄等强力推荐及相关书籍问世; 2.学习资料: 书籍是:老许的《go语言编程》、 老谢的《go web编程》、 雨痕的《g...阅读全文

博文 2015-07-14 00:00:02 sunnyql

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

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

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

准备建设Go开发团队,欢迎喜欢Go的兄弟加入

公司:创业团队,公司已注册,拿到千万级别的天使投资,方向是O2O,具体领域涉及到商业模式,在这里不细说了,总之是一个还没有巨头的大市场,非常看好。 坐标:上海,长寿路上,靠近7号地铁线。 环境:办公环境高大上,开发人员配备rmbp,再加一个27寸显示器 待遇:1.5万,如果的确有料,还可以再谈,半年后可根据表现给予期权等激励。 准备用Go来做后端,采用微服务架构体系,欢迎喜欢Go的兄弟联系我...阅读全文

[LogInsight] (已更新)招聘 GoLang/C/C++ , 数据库研发,全文检索 ,前端工程师

#公司介绍 北京百泉众合数据科技有限公司,即LogInsight,成立于2015年,是中国 ITOA(IT运维分析)市场的一支生力军,并立志成为中国 ITOA 领域的领头羊。 机器数据,即由计算机,应用或者其他机器在无人工干预下产生的数据。机器数据是增长最快、最复杂也最富含价值的大数据中的一种, 大数据中,90%的数据是机器数据 。LogInsight,致力于开发机器数据\日志的分析平台,期望帮助广大的企业及开发者,实现机器数据价值的洞察,并转变为业务创新及竞争优势。 LogInsight 核心技术团队主要来自国内外顶尖的互联网公司,在的大数据,搜索引擎,日志分析领域有着非常丰富的技术积累,拥有世界级的搜索引擎实现技术。 #核心技术团队简介 **李沫南:** C...阅读全文

Go语言设计模式实践:组合(Composite)

关于本系列 这个系列首先是关于Go语言实践的。在项目中实际使用Go语言也有段时间了,一个体会就是不论是官方文档、图书还是网络资料,关于Go语言惯用法(idiom)的介绍都比较少,基本只能靠看标准库源代码自己琢磨,所以我特别想在这方面有一些收集和总结。 然后这个系列也是关于设计模式的。虽然Go语言不是一门面向对象编程语言,但是很多面向对象设计模式所要解决的问题是在程序设计中客观存在的。不管用什么语言,总是要面对和解决这些问题的,只是解决的思路和途径会有所不同。所以我想就以经典的设计模式作为切入点来展开这个系列,毕竟大家对设计模式都很熟悉了,可以避免无中生有想出一些蹩脚的应用场景。 本系列的具体主题会比较灵活,计划主要包括这些方面的话题: Go语言惯用法。 设计模式的实现。特别是引入了闭包,协程...阅读全文

博文 2014-11-26 14:28:13 newgame

【跟站长一起工作】PHP+Go开发工程师

负责APP服务端API开发和管理后台开发; 岗位要求: * 扎实的 PHP 语言基础,熟悉 LNMP 架构; * 具备良好的代码编写习惯、良好的代码结构组织能力; * 熟悉 MySQL、MongoDB 、Redis 等存储方案; * 能够自我驱动,热爱技术,有强烈的上进心,善于探索和钻研; * 公司越来越多的项目会采用 Go 语言,熟悉 Go 或愿意学习 Go 的优先; * 熟悉 Git 版本控制系统者优先; * 熟悉 Laravel 框架者优先; * 熟悉常用的设计模式者优先; 工作地点:北京北苑路北地铁附近 给力的薪资福利(1-3年15k-30k,3-5年20k-40k),开发全部配置 Mac 和大屏显示器。 想跟站长一起工作吗?赶紧联系站长:...阅读全文

Kubernetes学习系列

这段时间项目组内想要引入Kubernetes,作为第二代容器调度引擎,故最近在系统的学习Kubernetes。整理了一些学习笔记,心得,放到博客中,一来记录自己的学习经过,二来看能否帮到有需要的同学。详情见下: 1、Kubernetes核心概念总结——介绍基础架构、Pod、RC、Job、Service、Deployment等。 2、Centos7部署Kubernetes集群——基于Centos7,yum安装K8s,并配置集群,最后部署了容器覆盖网络——Flannel。 3、基于kubernetes集群部署DashBoard——基于上一篇部署的集群,搭建了DashBoard,其中介绍了一些众所周知的坑,比如google镜像国内无法下载。 4、为Kubernetes集群部署本地镜像仓库——针对上...阅读全文

博文 2018-03-14 10:28:05 xiaomin0322

北京udesk招聘前端/开发工程师(10k-24k)

这是一个灵光乍现便能一夜暴富的时代; 这是一个视野宽广便能名利双收的时代; 这是一个术业专攻便能傲视苍生的时代; 这,是一个互联网时代。 薪资低? 没期权? 时间固定? 想拼一次? 总当螺丝钉? 思维被局限? 能力被约束? 来 Udesk ! 北京、企业级SaaS客户服务、初创成员来自BAT。 最好的预言方式,就是把预言实现! 期待各路大牛来相会, 热切盼望能独当一面的你。 人生苦短,愉快玩耍的时间不多,且过且珍惜。 我们寻找 研发类: Android开发工程师 薪资:10k-20k 工作地点:北京 学历要求:本科 工作经验:1-3年 职位描述: 1. 完成基于Android平台项目的需求,收集分析、设计、开发与实施部署; ...阅读全文

golang设计模式-建造者模式

当一个方法有多个变量的时候,我们在调用该方法的时候可能会因为参数的顺序、个数错误,而造成调用错误或者不能达到我们预期的目的。针对这个问题,我们的建造设计模式可以完美的解决这个问题 刚接触设计模式,请大家留下宝贵的意见,谢谢。 实现代码 builder.Go ```javascript package Desktop import ( "bytes" ) // builder设计模式,主要解决多变参数传递问题 // xorm就是使用了builder设计模式 // 故事: 平时去面馆吃面,有各种味道的面条(牛肉味、肥肠味等) // 有各种配料(香菜、葱、姜、辣椒等) // 第一个客人:一碗牛肉面 加葱、姜 // 第二个客人:一碗牛肉面 加葱、...阅读全文

go语言实现设计模式(一):策略模式

策略模式定义了算法家族,在调用算法家族的时候不感知算法的变化,客户也不会受到影响。 下面用《大话设计模式》中的一个实例进行改写。 例:超市中经常进行促销活动,促销活动的促销方法就是一个个策略,如“满一百减20”,“打八折”等。现在实现策略模式,用CashContext生产策略,并完成策略的调用。 1.首先定义所有策略的接口。 package cash type cashSuper interface { AcceptMoney(money float64) float64 } 2.定义三个子类,实现此接口 package cash //普通情况,没有折扣 type cashNormal struct { } func newCashNormal() cashNormal { instance...阅读全文

博文 2015-10-31 23:00:01 yzh900927

多线程并发下载器-gorc

gorc是类wget多线程下载器,支持直接从资源url并发获取资源 项目地址:https://github.com/V-I-C-T-O-R/gorc 使用说明: 1.手动选择模式和自动分配模式,参数:manual,默认为false/自动 2.指定并发线程数,参数:thread,默认为5 3.指定下载的url,参数:url 4.指定分块下载的块大小,参数:blockSize,例如,默认1代表16m,2代表32m,4代表64m,以此类推 5.指定分块下载失败后尝试次数,参数:attempt,默认为3 6.指定文件存放位置,参数:root,默认为项目的lib目录 7.程序使用秩序调用gorc.Download(url string)函数即可 ...阅读全文

继续招募go的爱好者,组建强大go团队

公司:创业团队,拿到千万级别的天使投资,方向是O2O,具体领域涉及到商业模式,在这里不细说了,总之是一个还没有巨头的大市场,非常看好。 坐标:上海,长寿路上,靠近7号地铁线。 环境:办公环境高大上,开发人员配备rmbp,再加一个28寸4k显示器 待遇:因人而异,可以谈,半年后可根据表现给予原始股激励。 准备用Go来做后端,采用微服务架构体系,欢迎喜欢Go的兄弟联系我...阅读全文

每周一个GoLang设计模式之组合模式

我是设计模式的推崇者,相信一个良好的架构能够给系统的稳定运行和后期维护带来极大的方便,因为最近有时间重新学习GoF的设计模式,于是产生了用Go实现GoF经典设计模式的想法。 这篇文章遵循GoF书中的脉络,本篇是这个系列的第一篇:组合模式(Composite),以后如果在正常工作允许的前提下,应该会每周更新一篇。欢迎大家访问我的博客,代码可以在@Zuozuohao下载。 GoF在第二章通过设计一个Lexi的文档编辑器来介绍设计模式的使用,GoF认为Lexi设计面临七个问题: 1. 文档结构 2. 格式化 3. 修饰用户界面 4. 支持多种视感 5. 支持多种窗口系统 6. 用户操作 7. 拼写检查和连字符 GoF认为Lexi的文档只针对字符、线、多边形和其他图形元素进行处理。但是Lexi的用户...阅读全文

博文 2016-09-22 08:00:06 u012813904

go语言实现设计模式(二):简易工厂

简易工厂主要是用来解决对象“创建”的问题。以下的例子取自《大话设计模式》中第一章,实现一个可扩展的“计算器”。当增加新的功能时,并不需改动原来已经实现的算法。由于是简易工厂,所以我们还是需要对工厂类进行相应修改。 1.首先,我们定义一个计算的接口 package calc type CalcSuper interface { SetData(data ...interface{}) CalcOperate() float64 } 2.接下来,我们实现这个类的两个子类,分别是加法和减法 加法,就是用两个数来相加:) package calc import "fmt" type Add struct { Num1 float64 Num2 float64 } func NewAdd() *Add...阅读全文

博文 2015-11-01 11:01:11 yzh900927

android eclipse断点调试

在android开发中,我们常常需要对程序进行调试,而常用的就是断点调试。Eclipse作为android主要的开发环境,用eclipse开发android程序的时,断点调试又如何开展呢? 一起来看看具体的操作方法和步骤吧。 1、设置断点 在编码窗体的左边框上用鼠标双击,或者右键点击菜单,选择 Toggle Breakpoint菜单项。 ![1.png](http://studygolang.qiniudn.com/151116/5fbff836eff8587d22c94e9d44a895f7.png) 2、在debug模式下运行程序进入调试状态:通过点击工具栏上的小虫按钮或者是在项目右键点击然后选择Debug As,Android Application菜单,启...阅读全文

go 语言学习历程

接触go是2012年的时候,真正开始系统的学习和开发系统是2014年了,go语言的学习也算自己2014年的重要工作之一,对go语言学习的总结,也算是年底总结之一 1.学习go的原因和动机: 1>先前做过2年Unix c开发经验, 对于C系的语言有特殊的感情,go特别适合我胃口,用过后爱不释手; 2>go语言团队太过耀眼和强大:Thompson 图灵奖获得者,unix 和C的共同发明人;Pike PLAN9操作系统的主要开发者、UTF-8发明者;Robert Griesemer 参与java的HotSpot, js v8引擎开发者; 3>国内传道者的极力推荐:许式伟兄,谢孟军兄等强力推荐及相关书籍问世; 2.学习资料: 书籍是:老许的《go语言编程》、 老谢的《go web编程》、 雨痕的《g...阅读全文

博文 2015-01-04 13:00:05 hittata

golang实践-异步系统的无锁

背景 这段时间,忙着学习AI,以及做一些服务的基础工具库,涉及到解耦的异步消息系统[eventbus],以及完善定时器[clock]。本来以为已经大幅简化了业务没问题了,结果5月份,其中一个服务因为广播事件,导致死锁。分析后,发现是一个非常基础的问题倒置,值得捋一捋。 使用场景 学习go的时候,很多资料都提到:“多用通道(chan),少用锁”。对于长期习惯同步编程,方法之间直接调用,对其中的理解并不深入。异步调用涉及到事件定义、订阅发布系统、延时返回,远远没有方法的直接调用来的方便感觉多了,通常一个项目上万行代码,很多对象都有锁来保护数据。 如果要采用通道,不用锁,就不得不在“开发效率”、“运行效率”、“资源占用”这三个方面权衡。简单来看: 基本工具库对象,单向引用,建议用锁。 通过锁进行对...阅读全文

博文 2017-06-11 11:04:03 alex_023

设计模式-装饰者模式(Go语言描述)

什么是装饰者模式 好久没有更新设计模式系列的博客了, 今天我们来聊一聊装饰者模式, 用过java的同学肯定对装饰者模式非常熟悉,就算你不知道什么是装饰者模式这概念, 你也一定在代码中经常用到这个模式,为什么这么说呢? 大家都用过java中的流吧, 我们可以这样写: new BufferedOutputStream(new FileOutputStream()); 大家对这样的代码肯定很熟悉了, 用另外一个类包装一下另外一个类, 或方便了我们的使用, 或增强了功能. 不是说设计模式嘛, 怎么扯开流了… 其实java中这种io操作的代码正式装饰者模式的一种使用. 那它有什么特点呢? 理论上它们是可以无限包装的. 装饰者和被装饰者们有相同的超类型(super). 想要拓展功能无需修改原有的代码, ...阅读全文

博文 2016-04-07 10:00:04 qibin0506

go语言实现设计模式(三):模版模式

模版模式真的是一个好东西。所谓模版模式,就是说,某几个类中相同的操作和代码提取到父类的一个函数中,并定义相同的操作为抽象函数。由子类来实现。估计我也没表达清楚,下面还是看代码来讲解吧。 例:我们有两个文档处理程序,一个处理本地数据,一个处理网络数据。这两个类的功能和执行步骤高度类似,但是,获取数据的方式不同。在这两个类中势必存在大量结构相同的代码。现在,我们使用模版模式来重构这两个类。 1.定义父类,在父类中定义实现的具体函数和一个等待子类实例化的“抽象函数” package doc import "fmt" type DocSuper struct { GetContent func() string } func (d DocSuper) DoOperate() { fmt.Printl...阅读全文

博文 2015-11-01 22:00:05 yzh900927

【小米招聘】GO研发工程师

岗位职责: -负责小米网电商相关测试平台的研发,包括自动化测试平台、性能测试平台、测试管理系统 -根据产品和项目特点,提出合理的技术解决方案,并负责设计和实现相应工具、平台,提高效率与质量 任职要求: 1. 统招本科以上学历,至少2年以上互联网公司工作经验; 2. 很强的理解系统功能和读代码的能力; 3. 较强的编程能力,熟练掌握并运用开发语言,对于面向对象模型和设计模式有比较清晰的认识,考虑问题全面有条理; 4、有软件工程意识,熟悉一般项目流程。考虑问题全面,有条理。 5、了解操作系统与各种通讯协议 简历投递邮箱: wulihua@xiaomi.co...阅读全文

谷歌的alpha go 战胜李世石与谷歌双足行走机器人

更早一段时间,谷歌旗下的机器人公司完成了双足机器人的直立行走。 昨天的对战,人工智能战胜了人类。 两年前,在技术背景的人们看来,以上两件事儿迟早会发生,只是不确定会是什么时间、什么地点。 而今天这样的事情已经成为事实。 从人类历史的宏观视角去体察,我认为今年是人工智能的新纪元,也是谷歌的新纪元,全球科技公司的新纪元。 从微观的国际形势去体察,这是谷歌的机器人、人工智能在全球范围内一骑绝尘,遥遥领先的标志。 率先掌握了下一代生产工具、战争工具。 《士兵突击》里面有一句台词,战争最终是人与人的对抗,而今后对方就是站在人工智能身后的人。 国内去年的创业如火如荼,基本是商业模式的创新,现有技术的重新整合。 但即使是也鲜有在这样的基础领域持续投入、产生突破的。 《三体》里面有一段对话,我觉得很有道理。...阅读全文

go|agent+switchy|sharp 工作原理

使用go{agent}数月有余,感觉颇爽,鉴于友人。 目前window和linux系统中均已使用(关于在linux下如何安装也是非常简单的,网上已有多人分享,在此不多说,如遇到问题,欢迎交流。) 本文只探究这对组合的工作原理,具体安装部署网上有非常详细的介绍,此不多说,推荐朋友们使用(外面的世界很精彩,自己走出去体验下吧。自由无价!!) 下面解释一下这对组合的工作原理,仅供参考。 原理图: (图片来源:https://code.google.com/p/goagent/ ,上图已充分展示了goagent的原理) 那switchy sharp作用是神马呢?提以下几点:(来源:https://code.google.com/p/switchysharp/) 1. 使用Chrome dai li ...阅读全文

博文 2015-12-27 17:00:00 lvguangj

golang 并发设计模式(一)--资源生成器模式

在应用系统中,常见的的应用场景就是调用一个生成器:生成订单号,序列号,随机数等。 golang goroutine为这种需求提供了强大的武器。 1.简单的生成器 package main import ( "fmt" "math/rand" ) func GenerateIntA()chan int { ch := make(chan int ,10) go func(){ for { ch<-rand.Int() } }() return ch } func main(){ ch := GenerateIntA() fmt.Println(<-ch) fmt.Println(<-ch) } 2.叠加增强型资源生成器 可以使用多路复用技术进行堆积叠加,增加服务能力 可以使用缓冲chan增加服...阅读全文