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

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

罗辑思维招聘--Go高级研发工程师

工作职责: 1. 采用Go语言(Golang)开发稳健可扩展的后端程序; 2. 负责得到app服务端的基础架构优化及升级,不断提升代码质量、可扩展性和可维护性; 3. 根据公司产品需要不断提高产品用户体验和更好实现业务目标; 4. 根据技术部门要求完成技术研究工作,并输出研究成果和推动成果落地工作。 任职要求: 1. 计算机或者数学相关专业,本科以及以上学历; 2. 具有3年以上Go/PHP一种或以上服务端开发经验,以及熟悉相关语言下的常用技术框架; 3. 对函数式编程思想有研究,且深入理解面向对象编程设计理念,对设计模式和设计原则有较好的把握,有大型项目的研发经验; 4. 精通MySQL/SqlServer/Oracle一种或以...阅读全文

理解 Go 指针

#指针 变量存储的是一个值,但是这个值在内存中有一个地址,而指针保存的就是这个地址,通过这个地址,可以获取到值。 看例子: ```go func main(){ var a int = 123 p := &a fmt.Println(*p) } ``` 上面例子中,首先定义的了一个 `a` 变量,值为:`123` 其后通过 `&` 符号,为 `a` 生成一个指针,其实就是内存地址 最后,通过 `*` 符号可以将 `p` 指针的值给取出来 这个过程兜兜转转又回来原点,其实这么做的目的是为了能获取到 `a` 变量的原始值。 因为给函数传递的参数是对变量的建立副本,简单来说就是 `a` 变量赋值给另外一个变量,对这个副本变量修改不会影响到 `a` 变量。 而有些时候想要获取到原始值,就可以这么做。...阅读全文

我是如何在2年内逆袭成为BAT年薪40W的资深开发工程师的?

身边的师弟师妹经常问到:非计算机专业出身,你是在2年内如何逆袭成BAT年薪40W的资深开发工程师的。其实很简单——努力!我16年毕业于普通的二本学校,非计算机专业出身,只因为对软件开发感兴趣,所以找工作的时候就一直投IT行业的职位。刚踏入这个行业时,以为突击一下东拼西凑的面试材料,就能有个很好的收获。结果却是,别说大公司了,就是很多看不上的小公司的笔试题都过不去。焦躁阶段后来我去了本地的一个小公司去做服务端的开发。虽然叫服务端开发,但其实就是做系统指标监控功能,从DB中读取一些指标数据,通过图表的形式展现在浏览器中,所用的技术无非就是Spring MVC那一套。 这种CRUD的工作内容做时间长了,就纯粹是体力劳动了,技术视野没办法打开。即使写这么简单的功能代码,却还总是被leader批评,说...阅读全文

博文 2018-12-06 21:24:05 Javaspring12

golang设计模式

方法装饰器 func Decorator(decoPtr, fn interface{}) (err error) { var decoratedFunc, targetFunc reflect.Value decoratedFunc = reflect.ValueOf(decoPtr).Elem() targetFunc = reflect.ValueOf(fn) v := reflect.MakeFunc(targetFunc.Type(), func(in []reflect.Value) (out []reflect.Value) { fmt.Println("before") out = targetFunc.Call(in) fmt.Println("after") return...阅读全文

博文 2019-12-12 15:32:47 悟道人

那些年面试的笑话

我花了3天入门了golang,然后花3天看完了beego的源码;半天入门了python,半天用python写了一个爬虫。端的牛逼,我从来没有见过像我这样的天才,一蹦三尺高的跑去面试: 问:请设计一个中继服务器,转发客户A->客户B的请求,并想办法缩短tcp 3次握手时长,并保证安全性和完整性。 我:??? 问:请设计一个nginx集群,当其中某一台机器故障的时候迅速调整并自动恢复,不会因为运维去生孩子了导致无法恢复。 我:这个我知道,用raft算法每台机器发送心跳包巴拉巴拉... 问:多master部署情况呢? 我:??? 问:php进程死锁造成的原因有哪些?怎么自动检测和自动恢复? 我:??? 问:mongodb集群的数据聚合原理是什么,有哪几种方案? 我:??? 问:mysql怎么解决脏...阅读全文

博文 2017-10-13 12:04:45 lucode

golang 之单态模式(singleton)

前一篇文章,我说到在项目中引入了golang开发一个终端程序,体会到了golang的一些很有吸引力的特质,想要灵活的使用一门语言,当然不能只停留在hello world阶段。 温故而知新,我想通过对设计模式的回顾,来逐步掌握golang的使用,废话不多说,come on 。 有个有趣的现象,如果你参加过软件工程师的面试,当被问到设计模式的问题,超过80%的人的答案都会提到Singleton,原因很简单,单态模式是最简单也是最易学的设计模式之一,下面我们来看看单态模式在golang中的应用... 单态模式非常好记忆,如同它的名称描述的一样,提供一个对象的实例,并保证在整个应用中没有重复.当第一次调用这个类的时候,创建实例,在应用的其它部分重用这个实例。 下面,我们来回顾一下单态模式的一些应用场...阅读全文

博文 2017-05-23 03:02:24 Markwei

同样是Java开发,为什么别人年薪五十万而你却只有15万?

![image.png](https://static.studygolang.com/181224/efb1b4562a315b4b1bd88c78d5d98fcf.png) 在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase、Hadoop、MQ、Netty、SpringCloud等等 。 一些独角兽公司以及腾讯、阿里、百度、网易等知名大厂对Java人才的需求量连年升级,有2年工作经验的优秀程序员能轻松达到30w+的水平,但与此同时对人才的要求也越来越高。 比如,大厂的面试官经常会以如下句式来询问: 聊一聊你对JVM的原理,如何减少Full GC的情况? 针对高并发场景,如何优化,都采用了什么技术? 相比关系型数据库,No...阅读全文

博文 2018-12-24 18:04:33 Javaspring12

Golang笔记01之学习方法

2019-06-13 今天开始,我有了新的目标,就是加入简书这个公司。我看到他们公司在招聘golang/ruby相关的技术人员,我特别希望我能够去简书工作。于是打算在简书这里书写一些技术博客。 我的go语言学习方法: 复盘go标准库中的代码 阅读书籍和维基百科了解go的设计模式 观看先关技术先驱的教程学习go语言的软件工程 自己从零开始制作一个go语言的小型网站 end... 附录:我的go语言书籍,排名分先后: 《Go程序设计语言》 我最喜欢的一本go语言的...阅读全文

博文 2019-06-13 11:02:47 我加入简书的路程

职业生涯:阿里实习offer五面经验与总结

前言 目前楼主已经拿到阿里实习offer,一共经历了5次面试,其中4轮技术面,1轮HR面试。今天收到阿里的实习录用意向书,在这里分享一下自己的面试经验和学习总结。写这篇面经主要是希望能够帮助更多的小伙伴,最近各大公司已经陆陆续续开始春招了,希望这篇面经能够帮到大家。我本科毕业于中南大学信管专业,真正开始学习Java是在大三下学期,研究生就读北航的移动云计算专业。刚开始也是小白,也是一步步成成起来的。希望能够给与我有相同经历的亲们一个参考。需要提的一点是,你将来是需要靠这个吃饭的,所以请对找工作保持十二分的热情,而且越早准备越好,摆正心态和位置,那么就开始努力吧!! 阿里一面 一面是在上午9点多接到支付宝的面试电话的,因为很期望能够尽快接到阿里的电话,所以非常兴奋。电话接通之后还是非常紧张的,...阅读全文

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

目录(?) [-] Go语言并发的设计模式和应用场景 生成器 服务化 多路复合 select监听信道 结束标志 菊花链 随机数生成器 定时器 TODO 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类似的东西)。 当然我们的信道并不是简单的做阻塞主线的功能来使用的哦。 下面是一个制...阅读全文

golang 并发原语[草稿]

总结一下昨天 鸟窝 在《Go 同步和并发设计模式》 分享的 golang 并发开发相关的知识。主要分为四个部分,同步原语,分布式同步原语,channel,内存模型。这里主要从初学者角度,以鸟窝的ppt为大纲,来梳理一下常用的功能,用法和代码实现。 前沿背景 这里贴出一篇关于golang流行开源项目涉及到并发bug的论文 image.png 上图可以看到,golang主流的开源项目用到的并发原语的比例。主要集中在Mutex和channel,所以这应该是我们学习的重点部分。 同步原语 Mutex 结构定义 // A Mutex must not be copied after first use. type Mutex struct { state int32 sema uint32 } 注释可...阅读全文

博文 2019-05-27 18:34:40 咔叽咔叽_

Go设计模式学习笔记

学习对象:https://github.com/tmrts/go-p...。这个repo使用go语言实现了一些设计模式,包括常用的Builder模式,Singleton模式等,也有列举出还未用go实现的模式,如Bridge模式等。 本文并非完整地介绍和解析这个repo里的每一行代码,只对个人认为值得学习和记录的地方进行说明,阅读过repo代码后再阅读本文比较合适。 Functional Options 这个模式是一种优雅地设置对象初始化参数的方式。考虑的点是: 如何友好地扩展初始化的选填参数 如何友好地处理默认值问题 函数签名见名知意 比较以下几种初始化对象参数的方法: //name是必填参数, timeout和maxConn是选填参数,如果不填则设置为默认值 // pattern #1 f...阅读全文

博文 2019-03-06 21:34:38 shanyin

对一名Java实习生来说 互联网公司有哪些要求

对于实习生而言,其实很多公司要求都不是很高,毕竟对你的要求要对的起给你的工资水平,很多公司肯定都知道你本身的大体水平,不会期望太高,只是让你边学习边工作,如果你足够聪明伶俐,足够好学,可能就多培养你一些。 不过不同水平的公司,肯定是对你的培养程度不同的,相应的对你实习的要求肯定是不同的。不要认为对你要求越高,得到的实习工资就会高,不是的,像腾讯阿里等公司对于实习生技术要求很高,但工资就在两三千左右,但以后的发展却是远远大于这个价值的。 一、BAT企业对实习生的要求(以阿里为代表): Java基础非常重要,当然也要深入理解原理,什么JVM,JMM,Classloader,还有一些常见类的源码,自己可以试着分析一遍,现在让你说出LinkedList的内部实现你能不能说出来,HashMap不用多说...阅读全文

博文 2018-09-27 15:34:49 千锋郑州

[北京-滴滴招聘]运维架构师&云平台产品经理

以下职位,隶属于滴滴基础平台部(也就是章文嵩所带领的团队),在滴滴,我们尊重每个人的发展,「把个人的成长当做最重要的事情」是滴滴工程师文化最重要的体现之一。对于高水平的人才,滴滴提供超越行业的待遇,包括现金和期权激励。 滴滴私有云产品经理 滴滴私有云,旨在构建全公司统一的云计算平台,实现统一资源调度,并提供一站式的周边服务,提升资源利用率、资源管理效率和运维研发效率。 该项目已经持续迭代了1年时间,到年底预计会有2000台物理机规模的业务接入; 诚招一位产品经理,从产品全局来推进私有云平台的发展; 岗位要求: 有大规模面向企业用户的产品设计和主导的经验; 有云服务、云平台建设相关的工作经历; 有责任感,具备创新精神,用户价值导向,乐观,抗压; 联系方式: 邮箱:laiwei (at) did...阅读全文

博文 2017-06-07 06:07:03 laiwei

用Golang写一个搜索引擎(0x0B)--- 第一部分结束

这一篇算给这一个系列告一个小的段落,之前开始写这些文章的时候,只是想把自己最近用Golang写的这个搜索引擎说一说,准备了大概3,4篇的量,但是一写下来,发现有点收不住,写到后面其实和Golang没什么关系了,主要在写搜索引擎的架构和一些数据结构了,我觉得这比写代码注释有用吧,而且通过这样写下来,我自己对这些个数据结构的理解也更深了。 一个月的时间,写了14篇了,虽然14篇文字不足以说明一个搜索引擎的实现,但我觉得基本上一些重要的东西我都说了,搜索引擎本身原理上其实比较简单,并且我们并没有涉及搜索引擎爬虫的部分,所以说起来并不是很复杂,复杂是复杂在外围一些算法上的东西,比如分词,比如排序之类的。 来看看我们都说了些啥 开了个头以后,先说了一下搜索引擎的基本概念,包括docid的概念,以及整个...阅读全文

博文 2017-02-09 08:21:00 吴yh坚

Linux搭建golang开发环境

go语言最近是比较火的,go语言是很不错的一门语言。所以最近就把一些基础的东西写出来,随后也会也一些go的算法和设计模式等,希望能够和大家一起学习。首先下载golang的安装包,可以去官网下载,也可以在国内的网站下载:https://studygolang.com/dl安装包下载之后,我们需要将其解压到 /usr/local 目录下,可以使用如下命令:sudo tar -C /usr/local/ -xzvf go1.10.2.linux-amd64.tar.gzsudo命令这里不做过多介绍。接下来就是配置环境变量,我们可以修改 /etc/profile 文件,也可以修改当前用户的 .profile 文件,区别是前者适用于所有用户,后者只是对当前用户起作用。这里建议使用前者:sudo vim...阅读全文

golang设计模式-成员变量赋值

常见golang的struct赋值有两种: 1)定义变量同时初始化 val := &Options{ UID:int(1), } 2)先定义变量,再赋值 val := new(Options) val.UID = int(3) 赋值设计模式: 1)每个属性一个方法,方法名称与属性有关 2)赋值方法的返回值是统一的,可由同一个方法无差异执行 package main import ( "os" ) func main() { //err := New("/tmp/empty.txt") //if err != nil { // panic(err) //} err := New("/tmp/file.txt", Length(200), UID(1000), Contents("Lorem I...阅读全文

每周一个GoLang设计模式之Abstract Factory

这篇文章遵循GoF书中的脉络,本篇是这个系列的第4篇:Abstract Factory,因为下周不能按时更新,所以在周末赶写了这个post。欢迎大家访问[我的博客](http://zuozuohao.github.io/),代码可以在[@Zuozuohao](https://github.com/Zuozuohao/GolangGOFPatterns)下载。 GoF在第二章通过设计一个Lexi的文档编辑器来介绍设计模式的使用,在上一篇文章[每周一个GoLang设计模式之Decorator](http://zuozuohao.github.io/2016/07/06/Golang-Design-Patterns-Decorator/)中我们为Lexi的文本编辑器增加了Border和Scr...阅读全文

macos升级Catalina后golang错误

今天将旧的go项目全部迁移使用go mod管理。在go get的时候,出现下面的错误。 _cgo_export.c:3:10: fatal error: 'stdlib.h' file not found # crypto/x509 /usr/local/go/src/crypto/x509/root_cgo_darwin.go:16:10: fatal error: 'CoreFoundation/CoreFoundation.h' file not found #include ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 如果上面的问题出现在 可以使用下面的方式解决: 10.14 解决方法 在终端...阅读全文

永续合约是交易所布局高粘度生态体系的关键

数字货币交易所的盈利模式相对来说比较简单,交易类型也不复杂。近几年,大批交易所应运而生,现如今交易所都是以交易流量来进行盈利(维持生计)。当市场波动性不是特别大的时候,用户交易频次就会降低,就会迫使交易所必须找寻一件途径放大市场波动性,增大投资属性,从而为交易所带来流量(用户)与盈利点。合约恰好符合这一特性,而在合约中永续合约的杠杆倍数更高,就会将市场波动性放大到和杠杆等比的倍数,波动性更大,能够给交易所带来流量和资金,因而永续合约备受交易所青睐。​​永续合约的特点:1、永续合约不会交割,可以一直持有,比较适合做长线的投资者,也能节省由于交割带来的手续费。永续合约的杠杆可选择范围也是比较大,可以从1到100倍。2、在标记场内价格的同时,实时调取、计算全球主流交易所现货价格作为指数价格参考,综...阅读全文

Go编程语言中if...else语句的语法

在这四次救火中,举2个印象最深的例子,有一天晚上9点多,领导给我打电话说厦门某项目的系统今天下午系统挂了一次,他们在那边搞不定,希望我能出差支持一下,我说好的那我明天去,领导说能否今天晚上就去,没办法,订了10点多的机票,匆匆忙忙的赶到机场,由于飞机晚点,到厦门已经是凌晨2点了。到了以后,我还没找到地方住下,厦门这边的PM就给我打电话,直接去他们的办公场所解决问题,于是直接去了厦门软件园,到了以后,当时心里是很感动的,因为还有一波人在那里等着我一起和他们解决问题,想想大家都挺不容易的。 1.五个人打算过一座吊桥,开始时他们都位于该桥的一侧。 2.天很黑,五个人手里只有一个手电筒。 3.该桥一次最多只能同时过两个人,无论是一个人还是两个人过桥,都需要携带手电筒看路。而且手电筒只能通过人携带过桥...阅读全文

每周一个GoLang设计模式之Decorator

这篇文章遵循GoF书中的脉络,本篇是这个系列的第3篇:Decorator,这周依旧很开心可以有时间来更新这个系列,希望下周可以继续更新。欢迎大家访问[我的博客](http://zuozuohao.github.io/),代码可以在[@Zuozuohao](https://github.com/Zuozuohao/GolangGOFPatterns)下载。 GoF在第二章通过设计一个Lexi的文档编辑器来介绍设计模式的使用,在上一篇文章[每周一个GoLang设计模式之策略模式](http://zuozuohao.github.io/2016/06/30/Golang-Design-Patterns-Startergy/),中我们简单的实现了策略模式的Lexi的文本编辑器。这一周我们将继续...阅读全文

log4go日志分级输出

//@description 调试日志输出(各级日志采用隔离方式)依赖loggor //@author hanse //@data 2017-04-10 09:31 初稿 // 2017-05-04 21:31 调试 // 2017-05-17 21:31 增加调试模式,大小分割调试OK // 2017-05-25 21:31 修复之前日志文件名称错误 package log4go import ( "log" "runtime/debug" "util/loggor" ) const ( _TABLE_ = "\t" //日志文件行分隔符 ) const ( LEVER_UNKNOW = 0 LEVER_DEBUG = 1 LEVER_INFO = 2 LEVER_WARN = 3 LEV...阅读全文

博文 2017-05-25 04:59:55 hansegod

Go 中的单例设计模式

多线程应用程序非常复杂,尤其是当你的代码没有组织并且与资源访问、管理和维护保持一致时。如果你想最大限度地减少错误,你需要哲学和规则来生活。这里有一些我的: - 资源的分配和回收应该在同一类型中抽象和管理 - 资源线程安全性应该在同一类型中抽象和管理 - 公共接口应该是访问共享资源的唯一手段 - 任何分配了资源的线程都应该释放同类型的资源 在 Go 中,没有线程,只有 `Go Routines`。Go 运行时抽象了这些例程的线程和任务交换。无论如何,相同的哲学和规则也适用。 我最喜欢的设计模式之一是单例模式(Singleton)。当你只需要一个类型的实例并且该类型管理共享资源时,它提供了一个很好的实现。访问由该引用管理的共享资源是通过静态公共接口抽象出来的。这些静态方法还提供了线程安全性。使用...阅读全文

博文 2018-04-01 20:26:20 shniu

golang单例模式的优雅实现

通过sync.Once实例来保证一个Once实例的Do只会执行一次,无论Do里的func有多个或者一个,利用这个特性来实现设计模式里的单例模式,golang里没有类这个东西,所以拿结构体来测试:type singleton struct{} var ins *singleton var once sync.Once func GetIns() *singleton { once.Do(func(){ ins = &singleton{} //ins = new(singleton) }) return ins}sync.Once doc:type OnceOnce is an object that will perform exactly one action.type Once stru...阅读全文

博文 2018-06-21 08:34:47 夜空一起砍猩猩

过年GO HOME

过年回家喽 设计一款产品真心不易,不打个几十个来回,敲不定一个方向,还好,所有的问题都会得到解决,团队协作才是取胜的关键所在~! 技术之路漫长而寂寞 转型之路曲折而难耐 问路在何方。不是在脚下,而是在胸前。 昨日之事不可留,今日之事多烦忧。 硬件软件都有规范与设计模式,都需要经验的打磨,产品中的历练,面面俱到是不可能了。迫切需要一种思维模式,来思考,迫切需要一种环境,在规范中成长,好的经验好的管理,抓质量,严谨而缜密的思考,何时才能想德国一样严谨,何时能像日本一样精细,最适合按键盘的力度是60克 都需要无数次的实验。何时,何时,何时。这才是我想要的环境,一个作为技术人员才会有的迫切需求。 -kunka 2016-02-0...阅读全文

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

我是设计模式的推崇者,相信一个良好的架构能够给系统的稳定运行和后期维护带来极大的方便,因为最近有时间重新学习GoF的设计模式,于是产生了用Go实现GoF经典设计模式的想法。 这篇文章遵循GoF书中的脉络,本篇是这个系列的第一篇:组合模式(Composite),以后如果在正常工作允许的前提下,应该会每周更新一篇。欢迎大家访问[我的博客](http://zuozuohao.github.io/),代码可以在[@Zuozuohao](https://github.com/Zuozuohao/GolangGOFPatterns)下载。 GoF在第二章通过设计一个Lexi的文档编辑器来介绍设计模式的使用,GoF认为Lexi设计面临七个问题: 1. **文档结构** 2....阅读全文

最难学的十大编程语言,C++排第二,它竟是第一名!

编程语言是开发者们代码工作的核心,也是许多开发者最爱讨论的话题。编程语言的选择对开发者和工具制造商都十分重要,前者需要保持最新和具备市场潜力的技能,后者则亟需确保他们能够提供最有用的 SDK。开发者经济分析公司 SlashData 曾发布了《 2018 年第 2 季度各国开发者状况》调查报告,共有 167 个国家的 20500 多名开发者参与其中。报告面向全球所有类型的程序员,对使用每种主要编程语言的活跃开发者数量进行了最新的估计。其中,JavaScript 仍是最流行的编程语言,Python 流行程度接近 Java。 哪种语言最难学呢?每个人也许都有着自己的想法,衡量标准各不相同。现在我们从一个全新的,无可反驳的角度来分析一下各个编程语言难学程度。第十名、R语言颁奖词R语言,一种自由软件编...阅读全文

博文 2019-03-08 01:34:40 学习编程__

Golang设计模式——状态模式

状态模式及其结构 状态模式(State):当一个对象的内部状态发生改变时,会导致其行为的改变,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。 模式的结构 UML 状态模式.png 在状态模式结构图中包含如下几个角色: Context(环境类):环境类又称为上下文类,它是拥有多种状态的对象。由于环境类的状态存在多样性且在不同状态下对象的行为有所不同,因此将状态独立出去形成单独的状态类。在环境类中维护一个抽象状态类State的实例,这个实例定义当前状态,...阅读全文

博文 2019-04-17 03:34:41 CodePanda_Li

【Go 语言教程】Go 语言简介

1 Go 语言介绍 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言。 Go是静态强类型语言,是区别于解析型语言的编译型语言。 解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。 编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行。 2 Go语言特性 跨平台的编译型语言 语法接近C语言 管道(channel),切片(slice),并发(routine) 有垃圾回收的机制 支持面向对象和面向过程的编程模式 3 Go 语言特色 编程模式比较简单,没有复杂的设计模式 全部源码编译到一个文件,编译速度很快 最新版本也有动态库形式,对跨语言调用的支撑更到位 开源框架比较成熟,新崛起的互联网公司都在用——如滴滴,uber,百度,...阅读全文

博文 2019-02-20 01:34:43 万能的华哥Dean

Golang:使用 air 热重启

前言 在 Web 开发中,热重启在很多地方都会用到,它能极大提升开发效率,在我们修改完代码后保存,就能自动重启运行得到最新的代码的运行结果,比如前端开发的 HMR 就是一个典型的例子。 Go 语言中的热重启 在 Go 语言开发中实现热重启,推荐使用 air ,自 Go1.4 出来,官方就推荐使用 Go Modules 管理依赖,来进行模块化开发,那么我们就使用 Go Modules 构建我们的项目(注意:我使用的版本是 Go1.3)。首先创建一个项目目录如: go-restart ,然后进入目录,在该目录下执行终端命令初始化 Go Modules: go mod init github.com/startdusk/go-restart 注意 github.com/startdusk/go-r...阅读全文

博文 2020-03-17 05:32:49 Rollover

golang设计哲学

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lengyuezuixue/article/details/79753412 世界是并行的----先不说宇宙,就整个地球来说,世界万物都是并行发生的;天生对并发支持良好的go语言更容易描述并行的世界; 世界是由物质组合构成的---微观世界:由小的粒子组合成大的粒子;宏观世界:由小的物体组合成大的物体; 继承只能描述现实世界的一小部分,使用继承是不全面的;go的设计选择的是组合,这个和现实世界比较吻合的设计,表现力更强; 世界是标准化的---随着生产力的发展,社会分工越来与详细,越来越多行业有了国际标准,任何一个国家的、任何一个公司只要按照这个标准生产器件,就能装配到一台机器上;IBM/PC就是硬...阅读全文

博文 2019-03-04 17:31:36 lengyuezuixue

设计模式-golang实现之七大设计原则

七大设计原则 离娄之明,公输子之巧,不以规矩,不能成方圆。 ——邹·孟轲《孟子·离娄上》 如果您觉得文章不错,可以到GitHub赏一个star,感激不尽,里面有全部的23种设计模式和面试常考的数据结构的实现。 开闭原则 开闭原则(Open Closed Principle,OCP) 由勃兰特.梅耶(Bertrand Meyer)提出,他在1988 年的著作《面向对象软件构造》( Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension, but closed for modification),这就是开闭原则的经典定义。 开闭原则是设计模...阅读全文

博文 2019-12-30 10:32:41 qq570850096

golang-设计模式-简单工厂模式

需求:使用任何一种您熟悉的面向对象语言写一个计算器(加减乘除) 分析:有四个方法,分别是加法、减法、乘法、除法。要达到最大的解耦合,就必须将计算逻辑与输出分离。四个方法要相对独立,不互相影响。故此设计了这个UML图。 图片上传失败,请问各位大侠,我要怎么操作才能将UML截图放在这里? 接口类:calculatorInterface.go ```javascript package simple_factory type CalculateEngine interface { Calculate(num1, num2 float64) float64 } ``` 实现类:calculatorRealization.go ```javascript...阅读全文

最难学的十大编程语言,原来这个C++这么难是因为这个?

编程语言是开发者们代码工作的核心,也是许多开发者最爱讨论的话题。编程语言的选择对开发者和工具制造商都十分重要,前者需要保持最新和具备市场潜力的技能,后者则亟需确保他们能够提供最有用的 SDK。根据《2018-2019中国开发者调查报告》,对使用每种主要编程语言的活跃开发者数量进行了最新的估计。在编程语言方面,Java、R 和 Java 成为开发者使用最多的编程语言,但得益于人工智能的持续火爆和深度应用,Python 却是开发者近期最想学的开发语言,其次是 Java 和 R,占比分别为 35% 和 26%。 在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群:954607083,领取C/C++学习资料 哪种语言最难学呢?每个人也许都有着自己的想法,衡量标准各不相同。现在我们从一...阅读全文

博文 2019-03-30 02:34:40 筠子_ca05

对于Java实习生

对于实习生而言,其实很多公司要求都不是很高,毕竟对你的要求要对的起给你的工资水平,很多公司肯定都知道你本身的大体水平,不会期望太高,只是让你边学习边工作,如果你足够聪明伶俐,足够好学,可能就多培养你一些。不过不同水平的公司(BAT>TMD>其他优秀的互联网公司>小型创业公司),肯定是对你的培养程度不同的,相应的对你实习的要求肯定是不同的。不要认为对你要求越高,得到的实习工资就会高,不是的,像腾讯阿里等公司对于实习生技术要求很高,但工资就在两三千左右,但以后的发展却是远远大于这个价值的。 BAT企业对实习生的要求(以阿里为代表):java基础非常重要,当然也要深入理解原理,什么JVM,JMM,Classloader,还有一些常见类的源码,自己可以试着分析一遍,现在让你说出LinkedList的...阅读全文

博文 2018-11-19 19:34:42 QFdongdong

回顾2018 | 我的年末总结

前言2018走的很快,干了一些我不敢想的事,认识了许多很nice的人,离开大学看见的东西不一样,对待技术的态度也改变很多,重新看到了自己身上的许多不足。现在也是时候该做一个年末总结了,记下这一年。3月这段时间在做学校的创业大赛,当时准备做少儿编程教育,自己还挺较真的,特别想搞出点东西,毕竟是我的想法,于是拉上一帮朋友开始做。熬了不知道多少个夜,自己其实说实话付出很多在上面,虽然最后我们的点子没有被看上,哈哈。 创业大赛 最后收获可以说是很深刻——团队非常重要,人非常重要,特别是在合作这一点上,人多并不会力量大。4月刚接触第一个后端框架spring boot,简单配置就能跑这一点让我特别爽,准备开始好好研究,结果有学校有一个小项目不仅要做后端,而且要做一个android应用程序,我们小组其他同...阅读全文

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

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

博文 2015-06-29 01:00:07 na17p9f

Faceu激萌研发类职位大放送!!!

岗位一览:【IOS初/高级攻城狮/leader】——初高工还有18个空缺,IOS leader只剩1个坑啦!【Android开发】——你会是14位之一吗?【后台C++开发】——还需要5位C++大将~【Web前端开发】——还缺2位啦【移动端测试开发】——1位1位只缺一位哦【CV 算法leader】——CV大神您在哪?—————————————————————————————————————————滴滴滴!!!插播个小广告:加入faceu,你可以获得:1、开放氛围,扁平管理,团队成员“牛逼哄哄”;2、免费三餐,休闲下午茶,就近租房补贴;3、六险一金,免费年度体检;4、开工利是,儿童节、女生节、端午节、中秋节礼品;5、公司内部活动、拓展活动,部门每月团建;6、运动日:羽毛球、篮球、游泳、足球。职位...阅读全文

博文 2018-07-19 20:34:51 互联网Amy