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

资深GOLANG 开发工程师

招聘PHP工程师和C++ 工程师,15K, B轮、双休、golang熟练, 工作地点深圳南山科技园,地铁高新园B出口。有意者15002093278,或者chenrs@welearn.com . 在线辅导第一品牌。公司的核心团队来自腾讯、阿里、迅雷、华为、快播、新东方。是一个混搭型的团队,公司管理的核心理念是“以人为本,让工作成为实现个人价值的最佳途径”,在管理模式上,采取基于信任的管理...阅读全文

go sync.once用法

欢迎关注go语言微信公众号 每日go语言 golang_everyday sync.once可以控制函数只能被调用一次。不能多次重复调用。示例代码: package main import ( "fmt" "sync" "time" ) func main() { o := &sync.Once{} go do(o) go do(o) time.Sleep(time.Second * 2) } func do(o *sync.Once) { fmt.Println("Start do") o.Do(func() { fmt.Println("Doing something...") }) fmt.Println("Do end") } 输出结果: Start do Doing somethi...阅读全文

博文 2015-05-19 03:00:11 baiyuxiong

瓜子二手车招聘Golang研发工程师

有意者可联系 caojia at guazi.com 岗位职责: 负责瓜子后端系统业务的设计和研发; 负责用户产品的设计和研发; 负责Web应用的优化和架构升级; 负责业务的快速迭代与实施,具有快速解决问题的能力. 任职要求: 3年以上Web开发经验,,精通PHP编程,有出色的组织能力及协调能力,对研发流程有基本的实践; 有一定的数据库规划能力,熟悉各种WEB缓存技术,精通MySQL,对Memcache、Redis有精深的了解; 掌握基础的HTML、JS、CSS等前端技术; 具备良好的编程习惯,熟练掌握OOP编程和常见设计模式; 具备团队开发经验,熟练掌握SVN、Git等常见工具的使用; 责任心强,思维活跃,个性开朗...阅读全文

Trie树

Trie树,又称字典树,前缀树,是一种很常用的树结构,它被广泛用于各个方面,比如字符串检索、中文分词、求字符串最长公共前缀和字典排序等等。 字典树设计的核心思想是空间换时间,所以数据结构本身比较消耗空间。但它利用了字符串的共同前缀(Common Prefix)作为存储依据,以此来节省存储空间,并加速搜索时间。Trie 的字符串搜索时间复杂度为 O(m),m 为最长的字符串的长度,其查询性能与集合中的字符串的数量无关。其在搜索字符串时表现出的高效,使得特别适用于构建文本搜索和词频统计等应用 字典树的性质 根节点(Root)不包含字符,除根节点外的每一个节点都仅包含一个字符; 从根节点到某一节点路径上所经过的字符连接起来,即为该节点对应的字符串; 任意节点的所有子节点所包含的字符都不相同; 下图...阅读全文

博文 2019-05-22 17:34:48 helloGlobal

[坐标深圳] 时代复兴寻找后端工程师

关于公司 北京时代复兴投资管理有限公司是业内领先的全资产组合管理机构,是经中国证券基金业协会认可并备案的私募管理机构(登记号 P1016372 )。我们致力于为客户提供有效的全资产组合管理方案。 在股票、债券、商品、外汇、另类投资、量化及程序化交易领域拥有核心竞争力。 关于入职部门 这次招聘的部门是交易执行部,负责统一交易后端( RestTrader )的开发和维护, RestTrader 是时代复兴整个交易系统的核心,通过支持全市场各个资产大类的交易柜台,为策略平台提供稳定、高效、快速的服务。 关于前景、团队、文化 决定跳槽或者选择一家企业的核心点主要有三个:前景、团队成员的靠谱程度、文化。 前景:我们的资产管理规模在 3 年内会超过 50 亿,量化对冲...阅读全文

Android 系统架构的核心层 — 框架层

Android系统架构包括应用层、框架层、硬件抽象层等,但其中最核心、最重要的还是框架层,这个层级是Android系统设计思想集中体现的部分,提供了大量的 API 供开发者调用,而弄清楚这些 API 的具体功能和用法则是 Android 应用程序开发过程中最为重要的环节。 框架层不只是应用程序开发的基础,也是软件复用的重要手段,任何一个应用程序都可以发布它的功能模块——只要发布时遵守了框架层的约定,那么其他的应用程序也可以使用这个模块。 框架层由多个系统服务(SystemService)组成,包括组件管理服务、窗口管理服务、地理信息服务、电源管理服务、通话管理服务等。所有的系统服务都寄宿在系统核心进程(System Core Process)中,在运行时,每个服务...阅读全文

Go语言程序设计.epub

【下载地址】国外最经典的Go语言著作,Go语言编程的先驱者Mark Summerfield的实践经验总结。这是一本Go语言实战指南,帮你了解Go语言,按Go语言的方式思考,以及使用Go语言来编写高性能软件。作者展示了如何编写充分利用Go语言突破性的特性和惯用法的代码,以及Go语言在其他语言之上所做的改进,并着重强调了Go语言的关键创新。注重实践教学,每章都提供了多个经过精心设计的代码示例。由国内第一个核心服务完全采用Go语言实现的团队——七牛团队核心成员翻译...阅读全文

博文 2019-03-18 20:32:38 weixin_33963594

When in Golang, do as the Gophers do.

前两天在某 golang 的 QQ 群里,有人对 channel 批判了一番。当时我就很想送他一副图,两句话。 When in Rome, do as the Romans do. When in Golang, do as the Gophers do. 这本是为了参加 ECUG 2011 Con. 的幻灯片里制作的一副图。 自己感觉很满意。能体现使用 golang 的方法的核心思想。 分享出来,大家开心一下吧...阅读全文

博文 2014-10-09 16:16:13 mikespook

Docker 核心技术与实现原理

Home Menu Docker 核心技术与实现原理 30 Nov 2017 docker namespaces cgroups unionfs aufs server Namespaces 进程 网络 libnetwork 挂载点 chroot
 CGroups UnionFS 存储驱动 AUFS 其他存储驱动 总结 Reference 提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。 同样,由于项目的发展、功能的拆分以及各种奇怪的改名 PR,让我们再次理解 Docker 的的...阅读全文

博文 2017-12-02 11:31:02 draveness.me

go语言资料集合

go语言资料集合 Go语言核心技术(卷一)之2.1-整数 Mac系统搭建Go语言Sublime Text 2环境配置 go语言实现排序算法 Go语言核心技术(卷一)之1.5-作用域 Go语言核心技术(卷一)之1.4-包和文件 Go语言核心技术(卷一)之1.3-赋值及类型声明篇 在go语言中优雅退出goroutines Go语言以匿名组合的方式实现继承 Go语言核心技术(卷1):基本单元1 Go语言核心技术(卷1):基本单元2 Go语言核心技术(卷一):序-必读 Go语言核心技术(卷1):Go的基本单元1 Go语言核心技术(卷1):序-必读 golang go语言与C语言互调,通过cgo Go语言学习4:Slices Go语言黑魔法中的问题修正 Go语言用堆排序的方法进行一千万个int随机数排...阅读全文

博文 2016-03-16 18:00:01 daisongwan

Caprice: Golang版的高性能实时全文检索引擎(segment 设计篇)

承接前文Caprice: Golang版的高性能实时全文检索引擎(实现篇),本文是系列文章的第四篇。系列文章地址如下:一. 如何构建实时全文检索引擎二. Caprice: Golang版的高性能实时全文检索引擎三. Caprice: Golang版的高性能实时全文检索引擎(实现篇)本篇主要介绍segment的设计。我们知道FST被认为是构建高效的倒排索引的核心,但它的缺点是修改不易,因此为了克服这个问题,包括lucene在内的检索引擎,在使用FST的时候几乎都选择了segment这个概念去处理这个问题。将一段时间内的document集中起来处理,生成FST,同时利用LSM的设计思想,避免直接update和delete,但是代价就是索引并不能实时可见,不过好在很多使用全文检索的场景对实时性要求...阅读全文

数据库厂商都怕低价竞争?阿里云说并不可惧

摘要: 2017年Gartner发布的数据库厂商推荐报告中首次收录了来自中国的数据库厂商,分别是阿里云、巨杉数据库SequoiaDB以及南大通用GBase。在这三家厂商中,巨杉数据库和南大通用是专注于企业级市场的数据库厂商,而阿里云严格来说则是一家云计算公司。 2017年Gartner发布的数据库厂商推荐报告中首次收录了来自中国的数据库厂商,分别是阿里云、巨杉数据库SequoiaDB以及南大通用GBase。在这三家厂商中,巨杉数据库和南大通用是专注于企业级市场的数据库厂商,而阿里云严格来说则是一家云计算公司。   为什么云计算公司会想要“跨界”数据库领域,而且还搞得有声有色呢?什么样的数据库才是云原生数据库?有何标准?……针对这些问题,我们在DTCC 2018开幕之前采访了阿里云...阅读全文

golang sync map思考总结

一、核心结构体先贴一下 type Map struct { mu Mutex //互斥锁,用于锁定dirty map read atomic.Value //优先读map,支持原子操作,注释中有readOnly不是说read是只读,而是它的结构体。read实际上有写的操作 dirty map[interface{}]*entry // dirty是一个当前最新的map,允许读写 misses int // 主要记录read读取不到数据加锁读取read map以及dirty map的次数,当misses等于dirty的长度时,会将dirty复制到read } type readOnly struct { m map[interface{}]*entry amended bool // true...阅读全文

博文 2019-03-05 22:34:50 凯文不上班

如何搭建一个数字货币交易所?

如果从0开始去搭建一个数字货币交易所,会涉及到方方面面很多因素,我们从中梳理出其中的四大关键要素:核心技术、安全、全球合规、流动性。我们目前手上有一套完整的源码,包含前后端,线上稳定运行2年以上,持续优化中 1、后台管理系统是 php 开发 2、交易所主程序是:采用 golang 开发,框架采用的是 Golang gin web3、前端框架:vue4、撮合引擎:viabtc,撮合性能 10000+tps5、已完成主流币种的对接工作6、钱包是冷热分离的,20%资金是在热钱包,80%资金在冷钱包7、全面支持 API 对外接口调用8、后台管理+前端网站+iOS+Android需要请加 v:①③⑦⑤0⑧0️⑥②0️⑨① 核心技术虽说交易所是一个相对标准化的产品,从主功能框架来看并没有太多需要创新的功...阅读全文

博文 2019-12-13 21:32:41 报告大师

golang实现LRU缓存淘汰算法

LRU缓存淘汰算法 LRU是最近最少使用策略的缩写,是根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 双向链表实现LRU 将Cache的所有位置都用双链表连接起来,当一个位置被访问(get/put)之后,通过调整链表的指向,将该位置调整到链表头的位置,新加入的Cache直接加到链表头中。 这样,在多次操作后,最近被访问(get/put)的,就会被向链表头方向移动,而没有访问的,向链表后方移动,链表尾则表示最近最少使用的Cache。 当达到缓存容量上限时,链表的最后位置就是最少被访问的Cache,我们只需要删除链表最后的Cache便可继续添加新的Cache。 代码实现 type Node struct { Key int Value i...阅读全文

博文 2018-12-26 17:34:45 caelansar

go语言资料集合

go语言资料集合 Go语言核心技术(卷一)之2.1-整数 Mac系统搭建Go语言Sublime Text 2环境配置 go语言实现排序算法 Go语言核心技术(卷一)之1.5-作用域 Go语言核心技术(卷一)之1.4-包和文件 Go语言核心技术(卷一)之1.3-赋值及类型声明篇 在go语言中优雅退出goroutines Go语言以匿名组合的方式实现继承 Go语言核心技术(卷1):基本单元1 Go语言核心技术(卷1):基本单元2 Go语言核心技术(卷一):序-必读 Go语言核心技术(卷1):Go的基本单元1 Go语言核心技术(卷1):序-必读 golang go语言与C语言互调,通过cgo Go语言学习4:Slices Go语言黑魔法中的问题修正 Go语言用堆排序的方法进行一千万个int随机数排...阅读全文

博文 2018-08-13 14:32:36 daisongwan

golang的sync.Pool的使用

可以看这篇文章 https://blog.csdn.net/yongjian_lian/article/details/42058893 这个玩意的出现是为了解决 gc 的问题, 核心点在于 重用对象, 提高性能. 减少内存的分配. 下面看个例子 package main import ( "sync" "fmt" ) func main() { p := &sync.Pool{ New: func() interface{} { return 0 }, } a := p.Get().(int) fmt.Println(a) p.Put(1) p.Put(4) p.Put(2) p.Put(5) b := p.Get().(int) // runtime.GC() // 执行回收操作后 1 ...阅读全文

博文 2019-03-08 01:34:40 个00个

Go语言核心技术(卷一)之2.4-布尔值

布尔值有两种:true和false。if和for语句中的条件都是布尔值,比较运算符== 、<等也会产生一个布尔值。一元运算符! 是逻辑取反操作,所以!true就是false。Go语言提倡简洁的风格,因此我们会将x == true这种表达式直接写成x:if x {..} 。 布尔值可以结合&&(AND) 、|| (OR)一起使用,这两个操作符都有短路特性,如果操作符的左边表达式就能决定结果了,那操作符右边的表达式不会求值:s != "" && s[0] == 'x' 如果s是空字符串,那s[0]会panic,但是因为s为""的时候,&&左边的表达式是false,因此根据短路规则,&&右边的表达式不会求值,也就不会panic。 因为&&比||的优先级更高,所以下面的条件表达式不需要括号:if '...阅读全文

博文 2016-03-16 20:00:02 abv123456789

Go语言核心技术(卷1):基本单元1

一.命名篇 1.Go的函数、变量、常量、自定义类型、包(Package)的命名方式遵循以下规则: 1)首字符可以是任意的Unicode字符或者下划线 2)剩余字符可以是Unicode字符、下划线、数字 3)字符长度不限 2.Go只有25个关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 3.Go还有37个保留字 Constants:true false iota nil Types: int int8 int16 int32 in...阅读全文

博文 2016-03-14 23:00:03 abv123456789

7.MIT 6.824 LAB 4A(分布式shard database)

第一步 阅读文档 https://pdos.csail.mit.edu/6.824/labs/lab-shard.html 一直读到4B之前,理解他的每个段落的意思。我是读到第三遍 才全部读清楚。 第二步 整理这个DB的架构思路 lab4 的架构是典型的 M/S 架构(a configuration service and a set of replica groups),不过实现十分基础,很多功能没有实现:1) shards 之间的传递很慢并且不允许 concurrent client acess;2) 每个 raft group 中的 member 不会改变。 configuration service 由若干 shardmaster 利用 raft 协议保证一致性的集群; 管理 con...阅读全文

博文 2019-05-14 21:34:57 西部小笼包

go语言文件汇总

归并排序及go语言实现 堆排序算法及go语言实现 Go语言基础学习(一)变量 【Leetcode】:Counting Bits问题 in Go语言 基于go语言的心跳响应 【Leetcode】:Single Number III问题 in Go语言 Go语言学习一 :基础语句 关于Go语言,自己定义结构体标签的一个妙用. Go语言内存模型 Go语言内存模型 目录: 名词定义 背景介绍 Happens Before 同步方法 Uber是如何基于Go语言构建高QPS服务的? 基于GO语言最简单的HTTP服务器 Go语言分析 go语言注释 go语言赋值 go语言学习---错误 go语言学习记录7 Go语言使用Beego的ORM插入Mysql后,时区不一致的解决方案 改变未来IT世界的十种编程语言:...阅读全文

博文 2016-04-19 21:00:02 watsondai1234

从零开始写GO-API框架 一 [重复造轮子 - Golang] - 草稿

先嘚啵几句 大家好,Golang这么棒的语言学习的人越来越多,github上的轮子也是逐渐多起来,但很多刚学的朋友没有深入理解轮子的原理,看轮子使用手册直接就用,每个人轮子的规则策略基本都有自己的特性,我们不能每次都跟重新学本书一样,人脑有限是学不过来的 俗话说:『知其然知其所以然』。为了不让每个轮子都重新学一遍,最好的办法把轮子的核心思想掌握,这样拿过来一个同样属性的轮子,你就能从上层一眼看透整体轮子的架构,稍微学学就知道好处和痛点在什么地方。 不管API框架轮子有多少,但核心思想基本一致,就拿php/java/go,他们三者的web框架核心思想也大致相同,不相信可以去尝试找3个框架读一读,读完你不会失望的 我个人本身是一位phper,虽说语言只是工具,但职场上需要我们掌握更多的工具才能发...阅读全文

博文 2020-03-29 01:32:42 晓亮1988

Bystack的高TPS共识算法

共识算法是分布式系统保证节点数据状态一致性的方法,在区块链的共识算法分POW(工作量证明)和POS(权益证明)两大类。第一类POW模式是在公链项目中运用的最广泛应用的共识算法,比特币长达10年的运行已充分证明POW的安全性与稳定性。POW的特性是将去中心化与安全性发挥到了极致,但却牺牲了性能。 如比特币的峰值TPS为3.87, 平均每笔交易被打包入块需要10分钟;比原链的峰值TPS为36.32,平均每笔交易被打包入块需要2.5分钟。第二类的POS模式是由通过算法来选择出块共识节点,多用于联盟链和一些追求高TPS的新公链项目中。POS的特性是通过支持更小的出块间隔来达到最优的性能,但却牺牲了部分的安全性与去中心化。 Bystack是一个基于主侧链架构的区块链BaaS平台,将区块链分为Layer...阅读全文

博文 2019-05-27 15:34:41 比原链Bytom

golang实现剑指offer:动态规划题型

丑数 LeetCode 面试题49:丑数 题目描述 我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例: 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 核心思想: 动态规划 三指针 解题思路: 已知丑数只包含因子 2, 3, 5,因此第N个丑数一定是 前面某个丑数 * 某个因子(2,3,5)得到 我们可以创建一个数组,里面的数字是排好序的丑数,里面的每一个丑数是前面的某丑数乘以2、3或者5得到的 定义三个指针p2,p3,p5,它们指向的数字分别只 X 2,X3,X5 每次基于p2,p3,p5指向的数字计算出三个丑数,取最小的minVal 将minVal添加进数组 fu...阅读全文

博文 2020-04-15 11:33:01 阿篮go

BBFT共识算法深度解析丨Bystack是如何实现单条侧链 20000+TPS的

共识算法是分布式系统保证节点数据状态一致性的方法,在区块链的共识算法分POW(工作量证明)和POS(权益证明)两大类。第一类POW模式是在公链项目中运用的最广泛应用的共识算法,比特币长达10年的运行已充分证明POW的安全性与稳定性。POW的特性是将去中心化与安全性发挥到了极致,但却牺牲了性能。 如比特币的峰值TPS为3.87, 平均每笔交易被打包入块需要10分钟;比原链的峰值TPS为36.32,平均每笔交易被打包入块需要2.5分钟。第二类的POS模式是由通过算法来选择出块共识节点,多用于联盟链和一些追求高TPS的新公链项目中。POS的特性是通过支持更小的出块间隔来达到最优的性能,但却牺牲了部分的安全性与去中心化。 Bystack是一个基于主侧链架构的区块链BaaS平台,将区块链分为Layer...阅读全文

博文 2019-06-06 15:32:48 比原链Bytom

Golang

12核心跑满计算质数 func main() { primes := []int{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,71,73,79,83,89,97} var limit = make(chan int , 12) m := sync.Mutex{} for i := 100; i < 10000000; i++ { limit <- i go func(i int) { p := true for j := 0;j < len(primes); j++ { pri := primes[j] if float64(pri) <= math.Sqrt(float64(i)) && i%pri == 0 { p = false ...阅读全文

博文 2020-04-17 23:32:48 CAICAI0

删除排序链表中的重复元素

题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路 1.这道题的核心思想是跳过值重复的结点。 2.可以设置一个哑结点,防止链表中全部的值都是重复的。 3.可以设置两个值,分别用于标记当前结点是否重复。 4.整体流程就是: 进入循环 保存当前结点 循环跳过重复结点 判断当前结点是否移动过,若移动过,需要跳过 Java代码实现 class Solution { public int findMin(int[] array) { if(array.length == 0) return 0; int left = 0; int right = array.len...阅读全文

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