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

数据库防火墙DBShield

DBShield 是用 Go 语言开发的数据库防火墙,用来保护你的数据免受 SQL 注入的侵扰。 支持的数据库包括:DB2、MySQL、MariaDB、Oracle、PostgreSQL。 一般正常的数据库访问如下图所示: ![image](https://static.oschina.net/uploads/img/201702/16084257_prsM.png) 使用 DBShield 进行查询检测: ![image](https://static.oschina.net/uploads/img/201702/16084258_vSls.png) 收集完数据库运行在保护模式下: ![image](https://static.oschina.net/uploads/img...阅读全文

开源项目 2017-02-17 03:56:14 nim4

Golang设计模式实现1-工厂模式

工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 介绍 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 主要解决:主要解决接口选择的问题。 何时使用:我们明确地计划不同条件下创建不同实例时。 如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。 关键代码:创建过程在其子类执行。 应用实例: 1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。 2、Hibernate ...阅读全文

阿里P8架构师十年的开发经验以及职业生涯规划

初级程序员:做一些静态的界面; 程序员:做一些增删改查的小模块; 中级程序员:做逻辑较复杂的模块; 高级程序员:做核心模块; 项目经理:系统的整体架构; 部门经理:多项目的管理; 总裁:多部门以及企业的发展规划。 那么你想成为这些程序员中的哪一类呢?你的技术又能达到哪一类呢? 我认为,随着你工作年限的增长、对生活对生命认识的深入,应当不断思考几个问题: 我到底适不适合当一名程序员? 我到底应不应该一辈子以程序员为职业? 我对编程到底持有的是一种什么样的态度,是够用就好呢还是不断研究? 想清楚这几个问题最少不会让你每一年都在原地踏步。 程序员的工资: 说到程序员那么肯定首先会想到的就是BAT互联网三大巨头,下面我们就用阿里的一份级别评定及工资等级来看看程序员的工资。 阿里薪资结构:一般是12+...阅读全文

博文 2018-10-22 19:20:04 Java007

Golang设计模式—简单工厂模式(Simple Factory Pattern)

Golang设计模式——简单工厂模式 背景 假设我们在做一款小型翻译软件,软件可以将德语、英语、日语都翻译成目标中文,并显示在前端。 思路 我们会有三个具体的语言翻译结构体,或许以后还有更多,但现在分别是GermanTranslater、EnglishTranslater、JapaneseTranslater,他们都共同实现了一个接口Translator。 //翻译接口 type Translator interface { Translate(string) string } //德语翻译类 type GermanTranslator struct{} func (*GermanTranslator) Translate(words string) string { return "德语"...阅读全文

博文 2019-03-29 20:34:42 AprilBoy

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语言社区的大家庭,以下是社区提供个小白用户、初学者的一些资料: Go语言电子书集合和部分视频: 链接: https://pan.baidu.com/s/1K0kfZNol1KpDF9knvLLudA 提取码: vfqp Go语言实战项目:驾考系统: 链接: https://pan.baidu.com/s/1zbT7H0diSrbDlPw0VdRPJQ 提取码: xuyh Go语言设计模式: 链接: https://pan.baidu.com/s/1dhfyOzQESTZtYVsC3YQiTg 提取码: 9fxg Leaf框架分析: 链接: https://pan.baidu.com/s/1B_roU2usAQG6bCnKJ0QszA 提取码: ytfh ...阅读全文

博文 2018-11-26 09:34:38 Golang语言社区

高级Java面试题,测试自己的硬实力

#### 前言 **又到年底了,又是一轮跳槽季** 城外的人想进去,城里的人想出来 **为什么离职?** 马云说过,要么工资低,要么受了委屈 我想大多数人离职是这个原因,出来混的,跳槽也都是为了更好的生活,干技术的,工资都是跳出来的,跳得高低,关键看你有多少实力 **如何测试自己的硬实力?** ![](https://upload-images.jianshu.io/upload_images/11633898-299b97a09bc81e81.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) **下面是小编整理的Java面试题,都来挑战一下,看看自己有多厉害。题目都带超详细的解答,需要的可以加小编QQ群937053620。即可获...阅读全文

博文 2019-01-08 16:39:17 _pangzi

Go 语言高效分词gse

Go 语言高效分词, 支持英文、中文、日文等 [词典](https://github.com/go-ego/gse/blob/master/dictionary.go)用双数组trie(Double-Array Trie)实现, [分词器](https://github.com/go-ego/gse/blob/master/segmenter.go)算法为基于词频的最短路径加动态规划。 支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行[JSON RPC服务](https://github.com/go-ego/gse/blob/master/server/server.go)。 分词速度[单线程](https://github.com/go-ego/gse/blob/ma...阅读全文

设计模式-策略模式(Go语言描述)

好久没有更新博客了,最近也是在忙着充电,从今天这篇博客开始,我们来了解一下设计模式。 设计模式 那什么是设计模式呢?首先来看看我从百科上copy下来的概念吧。 设计模式/软件设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 恩,大概的意思就是在撸码界由码神们总结的、能够解决软件设计中反复出现的问题的、由大多数人任何的设计方式,也可以说是一种编码规则。 初始编码我们总是按照自己的套路来写代码,等项目的代码量庞大了,需求又要改了,突然发现尼玛这个改起来好麻烦,好多文件要动,为了适合新的需求改动这个文件可能会对其他的业务逻辑产生影响,改动这个文件会不会引入bug?一系列...阅读全文

博文 2016-01-27 14:00:01 qibin0506

Golang并发模式下数据一致性问题

-- 前言 -- 在Golang中,并发编程变得容易实现,仅需要起一个goroutine即可开启并发模式: go f ( "goroutine" ) 但是,在并发编程中存在不少需要注意的地方。这篇文章简单讨论下,在多个goroutine对MongoDB数据库进行操作时,保证操作一致性的方法。 ---- 问题描述 ---- 假设我们起了多个goroutine,如下: go func () { //step1: 获取所有 status==true 的记录 records , _ := models . Record . FindStatus ( true ) for _ , v := records { //step2: then we do something about record v ....阅读全文

博文 2017-11-22 02:35:51 薛锦

GO语言编程

花了一周的时候 、算间歇式时间把许式伟(七牛云存储CEO)写的“Go语言编程“看完了 。说下具体感受吧: 首先有C基础的,学习GO语言会倍感亲切,毕竟GO语言作者之一就是C语言程序设计的作者Thompson。 GO首次将代码风格强制到语言中去,因此不管是编写还是阅读都很舒服。 GO语言新增的特性(相对于C)包括:goroutine协程 ,channel通信,GC ,TEST单元测试,更多的内置类型 ,接口的组合等。使用起来也比较简单顺手。 阅读作者的书籍,能够感受到作者对OOP思想的深刻认识 ,包括音乐播放器例子,游戏服务器例子 ,简单相册网址例子 。自己也有种冲动去买各种书籍学习OOP、设计模式。 音乐播放器: mplyer:mlib+mp 游戏服务器:client -server 简单相...阅读全文

博文 2016-04-10 20:00:03 haie1011

go 语言学习历程

go 语言学习历程 2015-01-04 10:57 8160人阅读 评论(4) 收藏 举报 分类: go语言(34) 版权声明:本文为博主原创文章,未经博主允许不得转载。 接触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引...阅读全文

博文 2016-10-18 16:00:03 notbaron

大型互联网架构师谈:手把手教你如何成为年薪100的架构师 or CTO

​架构师也好,CTO也罢,这些IT领域的TOP职位,除了经验的积累外,更重要的是整个知识体系的建立,以及更重要的怎样来建立的方法论,以及不断考察自己是否适合成为一名架构师 or CTO的潜力?一个是技术专家领域,一个是技术、产品、情商、管理、协调等综合领域的掌握。未来我希望用一段时间在优知学院,给大家一起来探讨架构师、CTO这个系列,真正把架构师和CTO这事说清楚、讲彻底!怎样成为一名架构师凡事老的读者,都知道我一直强调学习是要建立知识体系,而不是仅仅学习其中一部分,或者全部都要掌握到精通这样的两极分化的思维误区。任何从0到1学习的人,都知道建立知识体系的重要性。从不会到会,从0到1,从入门到进阶,从简单到复杂,这个在早期的学习过程是非常有效,特别适合转行进入IT领域以及从0到1的同学。工作...阅读全文

博文 2018-12-05 16:44:04 Javaspring12

Redis 中 Lua 脚本的应用和实践

引言 前段时间组内有个投票的产品,上线前考虑欠缺,导致被刷票严重。后来,通过研究,发现可以通过 redis lua 脚本实现限流,这里将 redis lua 脚本相关的知识分享出来,讲的不到位的地方还望斧正。 redis lua 脚本相关命令 这一小节的内容是基本命令,可粗略阅读后跳过,等使用的时候再回来查询 redis 自 2.6.0 加入了 lua 脚本相关的命令,EVAL、EVALSHA、SCRIPT EXISTS、SCRIPT FLUSH、SCRIPT KILL、SCRIPT LOAD,自 3.2.0 加入了 lua 脚本的调试功能和命令SCRIPT DEBUG。这里对命令做下简单的介绍。 EVAL执行一段lua脚本,每次都需要将完整的lua脚本传递给redis服务器。 SCRIPT...阅读全文

博文 2019-01-30 17:34:44 燕南飞Liam

大话设计模式(golang) 六、原型模式

模式特点:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 程序实例:从简历原型,生成新的简历,简历类Resume提供Clone()方法。 package main import ( "fmt" ) type PersonalInfo struct { name string sex string age string } type WorkExperience struct { timeArea string company string } type Resume struct { PersonalInfo WorkExperience } func (this *Resume) SetPersonalInfo(name string, sex string, age s...阅读全文

博文 2016-08-04 20:00:14 平凡之路

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增加服...阅读全文

go 语言学习历程

go 语言学习历程 2015-01-04 10:57 8160人阅读 评论(4) 收藏 举报 分类: go语言(34) 版权声明:本文为博主原创文章,未经博主允许不得转载。 接触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引...阅读全文

博文 2016-09-02 07:00:04 notbaron

邂逅“中本聪”,原来天才也有烦恼

天才,这是只有在电视里才会看得到的现象,看到天才聚集最多的综艺节目是《最强大脑》,这是我非常喜欢看的一档节目,为什么喜欢看,排除节目效果的因素,则是内心里对天才从小就渴望,到现在依旧对天才心生敬畏。若不是上周末参加黑客马拉松比赛,也许“天才”二字就只是停留在想象当中,当做无所不能的大神顶礼膜拜。 你对天才怎么定义?你身边有过天才吗?你觉得天才有怪癖吗?围绕天才的话题是可以无尽展开,其实我们上学读过《伤仲永》依稀记得“泯然众人矣”,然后从商业角度去想,世界五百强的公司老总富豪们有几个是天才级别的人物? 先说我和天才是怎么认识,然后是如何一步步被打破对天才的固有观念。 提示:不想看前因后果的读者们可以跳过灰色字内容。 7月底的一个周末,以志愿者的身份出现在“**柚子杯黑客马拉松**”比赛现场,一...阅读全文

博文 2018-07-31 22:34:49 Thehrdertheluck

Go 语言高效分词, 支持英文、中文、日文等

Go 语言高效分词, 支持英文、中文、日文等 词典用双数组trie(Double-Array Trie)实现, 分词器算法为基于词频的最短路径加动态规划。 支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行JSON RPC服务。 分词速度单线程9MB/s,goroutines并发42MB/s(8核Macbook Pro)。 ## 安装/更新 ``` go get -u github.com/go-ego/gse ``` ## Build-tools ``` go get -u github.com/go-ego/re ``` ### re gse To create a new gse application ``` $...阅读全文

谷歌挖出 iMessage 新漏洞,运行旧系统的 iPhone 只能重置修复

在 iMessage 中输入特定的字符串,并将其发送给其他人,可能会引发一些奇怪的事情。我们曾在过去报道过多次这样的偶然发现,万幸苹果通常会很快完成 bug 修补,并发布软件更新。不过近日,谷歌 Project Zero 团队曝光了又一个重大的 iMessage 漏洞。若收到一组特定的字符,你的 iPhone 可能会变得一团糟。 这个 bug 会导致受害者的 iPhone 被锁定,唯一的解决方案就是恢复出厂设置,意味着你将无法恢复未保存的丢失数据。早在 4 月中旬,谷歌 Project Zero 研究员 Natalie Silvanovich 就已经发现了这个漏洞,并解释称其只会影响 iOS 设备。在 Mac 上,这个 bug 会导致 soagent 崩溃重启。但在 iPhone 上,该代码...阅读全文

博文 2019-07-07 23:32:43 Linux技术

go 语言资料参考

1.Less is exponentially more 2.Getting Started 3.Effective Go 4.Learning-go 5.Unix编程艺术 6. 了解OOP 概念, 知乎 酷壳 TDD权衡 重构 改善现有代码的设计 TDD并不是看上去的那么美 单元测试要做多细 Actor Scala CSP erlang ORM Explin Concurrency is not parallelism The Go Memory Model 代码之美 编码规范的重要性 .谷歌编码规范 苹果安全编码规范 书,effective系列 github资源利用 interface 的内部实现 设计模式实现 面向模式的软件架构 Lexical Scanning in Go 程序员修理...阅读全文

设计模式-建造者模式(Go语言描述)

在上一篇博客设计模式-装饰者模式中我们介绍了如何在golang中实现装饰者模式,今天我们接着上篇博客继续设计模式系列文章,今天还是来看一个简单的设计模式-建造者模式。 介绍 相信做过android的同学对建造者模式还是比较熟悉的, 一定用过开源的图片加载框架ImageLoader吧, 在ImageLoader的配置中我们就使用了建造者模式, 那什么是建造者模式呢?来看一下定义: 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。 建造者模式中有一下几个角色需要我们熟悉: Product 这是我们要创建的复杂对象(一般都是很复杂的对象才需要使用建造者模式)。 Builder 抽象的一个东西, 主要是用来规范我们的建造者的。 ConcreteBuilder 具体的Build...阅读全文

博文 2016-05-04 14:00:00 qibin0506

Go 工厂方式几种

1. 何为工厂模式 写socket开源框架时当用多协议时出现的疑问可不可以使用传统面向对象语言的工厂模式根据不同情况调用不同协议。 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。 在面向对象的编程语言中(如java,C++)设计模式的概念广为人知, 应用的也非常广泛。设计模式让我们的代码变得灵活起来,具有很强的扩展性。但在与C语言比肩的Go语言中,设计模式的概念并没有十分突出,甚至很少听到。在Go的开发中,借鉴design pattern的理念同样回味无穷我们的开发带来极大的便利。 2.golang中简单工厂模式 package main import ( "fmt" ) type Operater interface { Operate(int, int) ...阅读全文

博文 2018-09-12 18:34:40 tuzisir

大话设计模式(golang) 五、工厂方法模式

模式特点:定义一个用于创建对象的接口,让子类决定实例化哪一个类。这使得一个类的实例化延迟到其子类。 程序实例:计算器。 package main import ( "fmt" ) type Operation struct { a float64 b float64 } type OperationI interface { GetResult() float64 SetA(float64) SetB(float64) } func (op *Operation) SetA(a float64) { op.a = a } func (op *Operation) SetB(b float64) { op.b = b } type AddOperation struct { Operation...阅读全文

博文 2016-08-04 20:00:15 平凡之路

Go语言并发与并行学习笔记(三)

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用来生成自增的整...阅读全文

现代Java进阶之路必备技能——2019 版

java技术的学习阶段有三第1个是java基础,比如对集合类,并发,IO,JVM,内存模型,泛型,异常,反射,等有深入了解。第2个是全面的互联网技术相关知识,比如redis,mogodb,nginx,代码自动生成,自动部署,并发问题,性能调优,前端流行框架,spring,mybaties深入了解,能够定位问题。第3个是编程,算法与架构能力,比如分布式,微服务。下面是我为大家罗列出来的一些系统全面学习的导图。并发编程​开源框架源码源码分析有三大内容: spring的源码分析,里面包括FactoryBean和MVC和事务处理与Spring源码中设计模式分析;持久层 ;企业级开发前瞻,一共耗时2个月​微服务架构应对复杂的业务需求变更、用户膨胀,SOA已成为现在互联网公司标准的解决方案,微服务相关的...阅读全文

博文 2019-03-26 15:42:17 a1127889067

学习C/C++的简单方法

如何学习C++呢。C和C++是很多专业的必修课,尤其对计算机专业来说,更是重中之重。C++语言是早期发展的高级语言,具备执行速度快,语法优美等特点。是底层高效率系统的首选开发语言。今天就和大家分享一下怎么学好C/C++语言吧 ^_^ 怎么学好C++、C语言呢 工具/原料 C/C++学习资料 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190117170128574.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlbnBlbmcyMzE=,size_16,color_FFFFFF,t_70)...阅读全文

博文 2019-01-17 17:48:56 wenpeng231

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

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

博文 2014-10-30 07:00:01 tsatianne955

Java高级架构师必读书籍

### 序言 读书是另一种感知世界的方式,是另一种提升自我的方式,是另一种与人交谈的方式,一周不读书就觉得自己俗了,长久不看书,写东西就找不到感觉了,网络上,电视上,各种电子设备上的内容当然不少,但都比不上读书,读书静心,读书能闻到古埃及的味道。 关乎于程序员,除了做项目来提高自身的技术,还有一种提升自己的专业技能就是,多!看!书!毕竟,书是学习的海洋呢! So,Java程序员你们准备好了吗?双手奉上Java架构师必读热门书单。在这些书籍中小编还是要建议大家可以先去关注英文原版,毕竟翻译的书籍中都有一定的语法错误。 **小编整理了一些Java架构师热门书籍,由于平台不能上传文件,需要可以加小编的QQ交流群937053620,在里面获取书籍。(需要的朋友都可以获取,希望可以帮助到大家)** #...阅读全文

博文 2019-01-04 16:18:08 _pangzi

趣文一篇:孔乙已之C++

欧欧匹代码的格局,是和别的编程模式不同的:首先要有一个构造函数;基类里只定义了函数的形式,可以随时通过派生增加不同的实现。那些程序员们,每每学会了继承和多态,便可以接一个项目,——这是十年前的事,现在至少要懂得设计模式,——靠柜台外站着,写些代码换一个鸡蛋灌饼吃;倘若懂一些多线程的知识,便可以在鸡蛋灌饼里加火腿肠,或者里脊了,如果懂得语言的实现原理,那就能做一些底层代码的优化,换一盘炒菜。但这些程序员,多是初级水平,大抵没有这样深入。只有懂得内存模型的,才能接一些底层的项目,打开调试器和剖析器,慢慢的坐着优化代码。 有兴趣一起交流学习c/c++的小伙伴可以加群:466572167,里面有大神会给予解答,也会有许多的资源可以供大家学习分享,欢迎大家前来一起学习进步! 我从十二岁起,便在村口的g...阅读全文

博文 2019-01-06 21:34:45 程序员___

ByteEdu 每日新闻(2019-02-27)

ByteEdu 每日新闻(2019-02-27) Golang资料集Go最新资料汇总链接更改 http://www.byteedu.com/forum.php?mod=viewthread&tid=25 零基础学习U3D之常用控件学习(VIP免费) http://www.byteedu.com/forum.php?mod=viewthread&tid=194 零基础学习Go语言设计模式(游戏常用) http://www.byteedu.com/forum.php?mod=viewthread&tid=196&extra=page%3D1 零基础学习U3D之网络库使用及封装 http://www.byteedu.com/forum.php?mod=viewthread&tid=195&extr...阅读全文

博文 2019-02-27 07:34:39 Golang语言社区

设计模式-05-命令模式

命令模式 概述 在开发中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。我们希望做到只需在程序运行时指定具体的请求接收者即可,可以使用命令模式来进行设计,消除请求发送者与请求接收者彼此之间的耦合,让对象之间的调用关系更加灵活。 实现 使用一个音乐播放器的例子,有播放,暂停和停止播放三种命令。 总结与分析 命令模式的本质是对命令进行封装,将发出和执行命令的责任分割开。命令模式中的每一个命令都是一个操作,请求方发出请求,要求执行一个操作;接收的一方收到请求,并执行操作。 代码实现: 命令模式(php/go...阅读全文

博文 2019-04-11 10:34:41 疯狂的卡卡

Python设计模式六大原则

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。 **1、开闭原则(Open Close Principle)** 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话...阅读全文

京东资深架构师经验—Java程序员最高最好的学习效率!(附教程)

如何更高效的学习?很多新人程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显,工作的方向也会逐渐变得清晰起来。但是没过多久,能了解到的资料就开始超过每天学习的能力,像是买了没看的书、收藏没读的贴、mark了之后再也没有关注过的文章越积越多,更别提每天面对各种技术分享或者微博里的新鲜玩意了。大多数人每天能留给自己学习的时间有限,这个阶段如何提升学习效率就成了要解决的重点。说说自己提升学习效率的心得,其实非常简单:体系化的学习。我曾经很喜欢看一些博客或者是一些“看起来”比较通俗易懂的文章,每天在微博微信里刷到什么技术文章就mark下来,基本上几分钟就能读完。可一段时间下来,虽然读了不少东西,但是还是有种在原地打转的状态,并没有感受到有什么实际的提高...阅读全文

博文 2019-04-27 18:57:30 javaworid

Golang 工厂模式

1_CdjOgfolLt_GNJYBzI-1QQ.jpeg 简单工厂模式 简单工厂模式(Simple Factory Pattern) :定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。 简单工厂需要: 工厂结构体 产品接口 产品结构体 示例说明 创建一个饺子店工厂结构体,和饺子类的接口。该工厂的其中一个方法用来生产不同口味的饺子,如韭菜的猪肉馅的。 type DumplingsShop struct{ Generate(t string) *Dumplings } type Du...阅读全文

博文 2020-04-13 11:32:46 frederick_hou

Go语言并发与并行学习笔记(三)

Go语言并发与并行学习笔记(三) 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{ ...阅读全文

博文 2014-10-25 21:00:01 yangzhengyi68

设计模式-单例模式(Go语言描述)

这篇博客我们继续来看设计模式,今天带来的是一个最简单而且最常用的模式-单例模式。那什么是单例模式呢?相信大家最它最熟悉不过了,那我们就来快速的了解一下它的定义。 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 这个解释足够简单。说白了就是假如我们希望我们在我们的系统中该类仅仅存在1个或0个该类的实例。虽然单例模式很简单,但是熟悉java的同学可能了解,单例模式有很多写法,懒汉式、饿汉式、双重锁。。。 这么多形式,难道有什么目的?确实,不过他们的目的很明确,就是保证在一种特殊情况下的单例-并发。 ok,既然了解了单例模式,那下面我们就开始用代码描述一下单例模式。首先是最简单的单例,这里我们并不去考虑并发的情况。 package manager import ( "fmt" ) var ...阅读全文

博文 2016-02-24 21:00:01 qibin0506

结合自己的经历谈谈怎么更好地学习Go语言

之所以会写这篇文章,是因为在自学Go语言的过程,总会有些困惑和迷茫,总希望更好地学习下去,因此有了一些想法,在这里梳理一下,以便日后回过头来也可以看看此时此刻的想法。 关于基础 基础,除了学习Go语言的基础外,也应该加强计算机基础的学习。 对于Go语言的基础,很多从其他语言转过来的人,会觉得Go的基础就是简单的语法知识,因此没有注重这块知识的学习,其实,我觉得对于Go语言的基础除了基础语法之外,还有Go语言的使用规范、编程思维、CSP模型等,都需要深入学习和研究。 另外一个就是计算机基础,这方面的基础比较枯燥,包括数据结构、算法、计算机原理、计算机操作系统、计算机网络等,我觉得计算机基础知识是一个程序员能走多远的关键因素,没有这些基础知识的加持,对于Go语言的学习与使用,只会停留很基础的层面...阅读全文

阿里P7架构师谈职业生涯规划,给遇到瓶颈,迷茫期的人群一些建议

一、规划工作3年了,感觉自己的技术现在到了一个瓶颈,在做一些重复性的业务性的工作,没有长进,提高太慢;因此停下脚步对自己的职业生涯做了一个规划,并为之努力奋斗:20-27岁:技术积累阶段在这 5 年时间里面,你要积累足够的技术底子,打磨自己的技术实力,成为某一个技术细分领域的牛人;28-35岁:形成思维方法论和知识体系的阶段形成思维方法论和知识体系的阶段 当你积累足够的技术实力,例如超过 10 万行代码以后,你应该形成了自己的思维方法论和自己独立的学习技巧,任何新的技术在你眼中都能迅速的看到技术的本质,快速吸收成为你的知识体系的一部分;35岁以后:了解自己,把自己变现的阶段。最关键的是了解自己。知道自己擅长什么,自己的优势在哪里,怎样才能够最大化自己的价值,同时也知道自己有什么重大缺陷;鸡汤...阅读全文

博文 2018-11-05 19:29:33 Austh

Go语言开发招聘

初级Go语言开发 岗位职责 负责多人联机类游戏的服务端逻辑开发 任职要求 1、扎实的计算机基本功,对算法和数据结构、网络通讯有很好的掌握和理解,熟悉常用设计模式; 2、熟悉Go语言最佳,或者至少熟练使用C++、Java或C#的任一种语言; 3、对并发编程有一定的了解; 4、至少了解一种关系型数据库,对NoSQL了解者优先; 5、代码风格良好,积极上进,沟通良好,有责任心,具有良好的团队合作精神; ============================ 中级Go语言开发 岗位职责 负责多人联机类游戏的服务端逻辑开发 任职要求 1、至少一年以上的Go语言开发经验; 2、热爱游戏开发,有独立游戏项目经验优先; 3、热衷于技术钻研,工作踏实、负责...阅读全文

来自一个六年 Java开发者百度、阿里、腾讯的面试心经

前言我觉得有一个能够找一份大厂的 offer的想法,这是很正常的,这并不是我们的饭后谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司 / 小公司,如果说能够在这样的公司锻炼几年,相信对自己能力的提升还是非常大的。不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的。因为大厂面试一般都有专业团队负责,某个知识点你到底是掌握了还是单纯背下来,面试官一问就可以看出来(PS:真正到面试特别是你觉得准备面试的时间不够的时候,你可以多挑一些面试常问的问题来看,注意理解,一定不要死记硬背)。一定不要过分寄希望于各种面经,试着去提高自己的综合能力。“ 80% 的 offer 掌握在 2...阅读全文

博文 2019-02-15 18:12:26 chendada

go学习篇之设计模式

在纯粹的面向对象设计语言中,设计模式对于我们大多数人来说应该是最熟悉最得力的武器了,可是在go语言中,从接触至今这大半年的时间里还没遇到过go设计模式这个概念,这几天想起来也就翻翻资料,找找关于go设计模式相关的资料,可是很少很少,就连最简单的单例模式,自己想了很久也不知道用go语言怎么去写,因为go中没有静态的概念,很是揪心。今天我们一起学习下他人写的关于go的迭代器,其实完全是模仿JAVA C#语言中的迭代器,不过也很具有参考价值,至少为...阅读全文

博文 2015-06-17 23:07:50 xixionedream

golang: Baa框架文章列表

database: mongodb服务启动脚本 golang: Baa框架中的依赖注入(DI)是个什么鬼? golang go get出现unrecognized import path 微服务实践 - golang Thrift 开发一个月的感受 Algorithm: 移动盒子 python: django学习之旅 - 基础命令讲解 配置文件: mongodb 安装 mongodb: 「译」 MapReduce in MongoDB 从Baa开发中总结Go语言性能渐进优化 nodejs: nodejs、mongodb、Subversion环境搭建 golang: 从Baa开发中总结Go语言性能渐进优化 windows: windows上安装golang1.7的编译环境 duplicate:...阅读全文

博文 2016-06-13 12:00:02 daisongwan

三年Java开发工程师,面试电话接到手软

#### 序言 对于职场来说,简历就如同门面。若是没想好,出了差错,耽误些时日倒不打紧,便是这简历入不了HR的眼,费力伤神还不能觅得好去处,这数年来勤学苦练的大好光阴,岂不辜负? 简历,简而有力。是对一个人工作经验的简单介绍。对公司而言,在挑选人才时,可以通过简历对人才有整体认识,减少人才误用的风险。而对于个人来说,借着撰写简历,重新经历自己的过去、审视收获和缺憾,为面谈预先作好准备,来找到一份适合自己的理想工资。 ![](https://upload-images.jianshu.io/upload_images/11633898-2c671fb794227cff.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) **小编整理了...阅读全文

博文 2019-01-05 19:57:57 _pangzi

golang 内存分配

golang 的内存分配类似于tcmalloc(全局缓存堆和进程所属私有缓存)内存分配策略,大致采用三层内存分配模式。其中主要分为mheap, mCentral, mCache.mheap:直接向操作系统申请内存,申请对象以页为基础单位,同时还负责大内存的直接分配。mCentral:作为上级mheap, 下级mCache的中间项,起承上启下的作用, 当下级mCache内存不够时,mCache向mCentral申请,mCentral不够时,向mheap申请。mCache:与MPG并发调度模型中的P关联,每个P拥有一个mCache,由于单个P每个时刻只能调度一个goroutine,所以不存在多个goroutine同时共享一个mCache,也避免了分配内存时候的加锁。mCache主要负责小对象的内...阅读全文

博文 2019-08-09 00:32:55 SuperGopher

如何快速的学习一门语言

1 为什么想写这个主题工作的这些年,对于一个技术初级到高级,到架构,到总监的转身,有许多的感概,有许多的想法。曾经会想那个还在大学的自己,忙碌于图书馆博览全书,从概率论的股票分析,到人工智能的机器学习,每一本你能看到的前沿的书,如果咱们是一个学校的,或许你也曾经摸到过一样的破旧的或者散发着书香的纸皮和书名,文人说“书非借不可读也”,“随便翻翻”,所以我看书也是以这个理论来指导,当然核心的知道思想就是我非常明确我上这个学就是为了更容易的找到一份好工作。转眼间终于毕业了,刚工作那会看着自己手里拿的工资,想着也听说着高级工程师的工资水准,以及高级工程师们的住宿方式(有自己独立的空间,花费我1/2的工资来租房,房间啥都有,可能最重要的是有一个自己独立的空间,可以好好思考怎么写代码吧)。北上广深,一线...阅读全文

博文 2019-01-30 23:34:43 华哥Dean

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

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

博文 2016-09-16 17:00:00 Blues1021

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

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

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

程序员过关斩将--你的面向接口编程一定对吗?

妹子开始抱怨起来 业务背景 妹子的游戏是个对战类的游戏,其中有一个玩家的概念,玩家可以攻击,这个业务正是妹子开始挠头的起点 第一次需求 产品经理:玩家有很多属性,例如:身高,性别 blalalala ,玩家可以攻击其他玩家。 YY妹子写程序也是很利索,一天就把程序搞定了,而且还抽象出一个palyer的基类出来,堪称高级程序员必备技能。 //玩家的基础抽象类 abstract class Player { public string Name { get; set; } //. //. //. //玩家的攻击 public abstract void Attack(); } //真实玩家 class PersonPlayer : Player { public override void At...阅读全文