DockOne微信分享(五十九):基于Docker的分布式服务研发实践
【编者的话】Docker自从发布以来,短短3年的时间就迅速成长为各家争先追捧的宠儿,各家企业都希望能够借助Docker来提升自己的产品、优化现有的研发流程。本文分享Docker在天云软件分布式服务研发过程中的应用与实践,主要介绍使用Docker、Compose构建分布式服务的CI/CD体系;容器技术的引入为天云软件的SkyForm CMP带来了哪些变化;围绕着CI/CD,如何使天云软件在日常研发活动中变得更加敏捷、高效。 @Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自Rancher、携程、PPTV、蚂蚁金服、京东、浙江移动、海尔电器、唯品会、eBay、道富银行、麻袋理财、土豆网、阿里百川、腾讯游戏、数人云、点融网、华为、轻元科技、中兴通讯、中国民生银行等公...阅读全文
关于阅读大量golang源码的建议
最近打算阅读https://github.com/goraft/raft raft分布式一致性协议的源码...代码量较大,貌似也不太方便debug,请问各位大大有什么好的建议...阅读全文
分布式文件系统 bfs
bfs 是使用 Go 编写的分布式文件系统(小文件存储)...阅读全文
我看好的编程语言
golang google出品要旨在替代c语言,天生支持并发与协程,在区块链领域大放光彩 dart google出品,本来是要替代javascript没有成功,直到flutter框架的出现,可以快速在iOS和Android上构建高质量的原生用户界面 Kotlin google官方安卓开发语言,由JetBrains公司开发 R 语言 科学计算与人工智能语言,受到研究人员喜爱,非开源 Rust 与golang竞争的语言,由Mozilla开发 lua 一种小巧的脚本语言,所有脚本引擎中,Lua的速度是最快的,许多游戏的扩展脚本都由它编写,torch人工智慧框架有此语言接口 Erlang 天生的并发式语言,很古老,主要用于开发并发和分布式系统 Elixir Elixir 是一个基于 Erlang 虚...阅读全文
关于golang正则引擎的反向引用
**众所周知,golang的正则表达式是不支持反向引用的,有没有谁搞过这一块?有没有一个比较好的替代方案?*...阅读全文
低延迟图形数据库 Dgraph
dgraph 是可扩展的,分布式的,低延迟图形数据库。 DGraph 的目标是提供 Google 生产水平的规模和吞吐量,在超过TB的结构数据里,未用户提供足够低延迟的实时查询。DGraph 支持 [GraphQL](http://graphql.org/) 作为查询语言,响应 [JSON](http://www.json.org/)...阅读全文
GoCollaborate: Golang轻量级分布式服务器框架搭建系列 - 0 (索引篇)
前言 Golang 是 Google 在2007年发布的一门开源的静态编译型编程语言,在垃圾回收、结构类型以及并发编程的处理上拥有自己的独到之处,近年来更是成为使用频率上升速度最快的编程语言之一。 想必大家对于 Golang 的大名早已有所耳闻,而今天作者菌则准备通过自己的一个开源项目 GoCollaborate 为例,给大家介绍一下我们如何利用Golang快速开发高性能服务器集群,并将之应用到能源网络,量化交易,区块链,机器学习等等大数据计算场景。 GoCollaborate 是什么? 很多同学看到这里可能会问了,这个框架什么?我又能用它来做什么呢? 简而言之, GoColaborate 是一个提供分布式服务管理搭建的轻量级通用框架,您可以轻松地用它进行编程,构建扩展,以及创建自己的高性能...阅读全文
基于 MySQL 的新一代分布式关系型数据库RadonDB
RadonDB 是青云(QingCloud)基于 MySQL 研发的新一代分布式关系型数据库,于 5 月 10 日开源。 RadonDB 不仅支持分布式事务,全面兼容 MySQL,还能够实现容量与性能无限水平扩展,具备金融级数据强一致性,满足企业级核心数据库对大容量、高并发、高可靠及高可用的苛刻要求。此外,还支持智能化自动分表、自动扩容及自动运维,大幅减轻数据库运维压力。 此次开源的 RadonDB 包括 Radon 和 Xenon 两个子项目,其中: Radon 即 RadonDB 的 SQL 层实现,具有分布式事务与无限可扩展的功能; Xenon 是存储层的高可用工具,使用 Raft 选举算法与 MySQL Binlog 并行复制技术,实现后端 MySQL 集群的金融...阅读全文
go的switch case
可以一个case带几个参数: var i = 0 switch i { case 0, 1: fmt.Println(“1”) case 2: fmt.Println(“2”) default: fmt.Println(“def”) } 默认有break效果,要取消就加上fallthrough: var i = 0 switch i { case 0: fallthrough case 1: fmt.Println(“1”) case 2: fmt.Println(“2”) default: fmt.Println(“def”) } case还可以是表达式: var i = 0 switch { case i > 0 && i < 10: fmt.Println(“i > 0 and i <...阅读全文
左耳朵耗子:Go语言?Docker?对新技术怎么看?
作者|陈皓 编辑|杨爽 对于 Go 语言和 Docker 这两种技术,在国内的技术圈中有相当大的一部分人和群体还在持观望或是不信任的态度。所以,我想写这篇文章,从两个方面来论述一下我的观点和看法。本文摘自陈皓(左耳朵耗子)在极客时间 App 开设的付费专栏“左耳听风”。 Go语言,Docker和新技术 来自InfoQ 00:0001:34 本音频时长 1′34′′,12′完整音频请在【极客时间】收听。 上个月,作为 Go 语言的三位创始人之一,Unix 老牌***罗勃·派克(Rob Pike)在新文章“Go: Ten years and climbing”中,回顾了一下 Go 语言的发展过程。其中提到,Go 语言这十年的迅猛发展大到连他们自己都没有想到,并且还成为了云计算领域中新一代的开发语...阅读全文
Golang-函数式编程(闭包)
github:https://github.com/ZhangzheBJUT/blog/blob/master/closure.md 一 函数式编程概论 在过去近十年时间里,面向对象编程大行其道,以至于在大学的教育里,老师也只会教给我们两种编程模型,面向过程和面向对象。孰不知,在面向对象思想产生之前,函数式编程已经有了数十年的历史。就让我们回顾这个古老又现代的编程模型,看看究竟是什么魔力将这个概念在21世纪的今天再次拉入我们的视野。 随着硬件性能的提升以及编译技术和虚拟机技术的改进,一些曾被性能问题所限制的动态语言开始受到关注,Python、Ruby 和 Lua 等语言都开始在应用中崭露头角。动态语言因其方便快捷的开发方式成为很多人喜爱的编程语言,伴随动态语言的流行,函数式编程也再次进入了我...阅读全文
Golang实现一种生存UUID唯一标识的方法
1、什么是UUID UUID简介 通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。 UUID的目的,是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac OS X等等。 2、Go中现有的UUID第三方生成办法 目前,golang中的uuid还没有纳入标准库,我...阅读全文
分布式文件服务器godfs
godfs ========== [](https://travis-ci.org/hetianyi/godfs) [](https://goreportcard.com/report/github.com/hetianyi/godfs) ### ```godfs``` 是一个用go实现的轻量,快速,简单易用的分布式文件存储服务器。 ```godfs``...阅读全文
高薪诚聘go语言工程师
具备强大的自主研发能力,团队气氛融洽,公司环境良好,待遇丰厚! 福利待遇:五险+项目分红+各种国家法定假日 +组织外出旅游聚餐+双休+不加班 地址:北京市 朝阳区管庄 招聘职位:手游服务器程序(Go语言/Golang) 要求: 1.精通Java/Erlang/Golang/C++/Python/Lua/Go其中一种,有函数式编程经验加分 2.熟悉Redis等Nosql设计理念 3.计算机基础和算法基本功扎实 4.亲自设计过服务器架构者加分 5.熟悉TCP协议 以上需有3年以上或完整项目工作经验。勤劳勇敢善良,朴实刚健,有责任心,思维活跃。 薪水15K+上不封顶 欢迎大家奔走相告,踊跃小窗,狠投简历 请将简历发至 mlyuhx@sina.com,st...阅读全文
青年PM倪超:想让程序员多一点点幸福感
摘要: 本文主人公倪超,在内部,同事都习惯叫他花名银时,是阿里云产品经理。前不久,他所负责的企业级分布式应用服务EDAS,荣获了公司2018财年年度最佳产品奖。在五四青年节来临之际,我们有幸近距离的探访了这位青年产品经理。 21岁加入阿里巴巴集团,从一名实习生转变为主导平台级产品的PM,8年间,一直在阿里巴巴核心技术团队,倪超身上几乎所有的优点、缺点都打上了阿里巴巴的很多烙印,散发着浓浓的工程师特质,包括:敢拼、内向、稳重... 大学同班同学中,他是最务实的 据倪超的同学回忆道,在大学的时候,他就是同班同学中是最喜欢折腾技术的一个,不爱打游戏,总是坐在电脑前写代码。常常拉着我们使用他开发的网站,现在看来就是一个非常简单的系统,在我们的电脑上发表一个评论,在他自己的电脑上就能...阅读全文
谈谈Scala与Go
go的目标是替代c/c++做系统级编程,Scala目标是替代Java做应用级开发 Scala和Go的区别 Keith Morrow作为Scala的支持者,发表了这篇倾向于Scala的文章,主要也是为了反驳一年前 Paul Dix 的文章:why he prefers Go over Node and Scala,Paul Dix认为Go好于Scala的原因在于下面几个方面:并发性, 易理解性, 代码分享和学习难度。之所以时隔一年才有人反驳,一则因为双方不了解,二则可能是随着Go编写的Docker流行,拳头产品的出现让大家对Go刮目相看。 Keith Morrow则认为Go比Scala易于学习是因为Go是一种命令式语言。这相对不习惯函数语言的人来说易于掌握一些。 因为大多数人对于命令式语言比较...阅读全文
Merkle Tree学习
/*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为接触时间不长,对Merkle Tree的理解也不是很深入,如果有不对的地方,希望各位大神指正*/ Merkle Tree概念 Merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树。Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值。非叶节点是其对应子节点串联字符串的hash。[1] 1. Hash Hash是一个把任意长度的数据映射成固定长度数据的函数[2]。例如,对于数据完整性校验,最简单的方法是对整个数据做Hash运算得到固定长度的Hash值,然后把得到的Hash值公布在网上,这样用...阅读全文
go-if、for、switch、goto、break、continue
if语句: package main import "fmt" func main() { //if后面没有括号 if 1 < 2 { fmt.Println("1<2") } var a = 10 //初始化表达式-a的作用范围只在if语句块 if a := 1; a > 1 { fmt.Println("a > 1") fmt.Println(a) } else { fmt.Println("! a > 1") fmt.Println(a) } fmt.Println(a) } 输出如下: 1<2 ! a > 1 1 10 for语句: package main import "fmt" func main() { //第1种形式无限循环 a := 1 for { a++ if a > ...阅读全文
golang 有没有上线的游戏
请问各位大大 leaf、cellnet、mqant 、xingo 有没有使用这些框架有上线的游戏呀? 或者有哪位用这些框架的一种在作游戏开发呢? 目前在选一个可分布式的游戏框架 一直拿不定注意。 我还没有那种水平去写框架。 所以求指导...阅读全文
Golang软件工程师招聘
Golang分布式高级工程师(若干...阅读全文
【分布式架构】阿里免费送你分布式消息中间件MQ开发教程
课程介绍 阿里云消息队列MQ(Message Queue)是企业级互联网架构的核心产品,服务于整个阿里巴巴集团已超过8年,经过阿里巴巴交易核心链路反复打磨与历年双十一严苛考验,是一个真正具备低延迟、高并发、高可用、高可靠,可支撑万亿级数据洪峰的分布式消息中间件。 消息队列提供 MQ-MQTT 移动物联套件,连接端(如移动设备、智能家电、汽车、机器人等)和云,实现双向通信,可支撑亿级设备连接与百万消息并发。 消息队列秉持开放、共享的原则拥抱开源生态,无技术绑定,2016年阿里巴巴正式宣布将 MQ 内核引擎 RocketMQ 捐赠给 Apache 软件基金会;与此同时,全面融合 kafka 生态,做到无缝迁移,打造更安全、更可靠、更易运维的 kafka 企业级消息服务。 ...阅读全文
Go 实现的数学表达式解析计算引擎math-engine
使用 Go 实现的数学表达式微型计算引擎,无任何依赖,相对比较完整的完成了数学表达式解析执行,包括词法分析、语法分析、构建AST、运行。 [Demo](http://wx3.sinaimg.cn/large/c2a95e3dly1g4i4unamlhg211o0iokk1.gif) ## TODO ### 已实现 * 加 + * 减 - * 乘 * * 除 / * 取余 % * 整数次方 ^ * 科学计数法 e.g. 1.2e7 * 括号 () * 混合运算 e.g. 1+26/4_+_(456_-_89.2)-(2+4^5) * 友好的长数字 e.g. 123_456_789 * 友好的错误消息 e.g.
golang使用正则表达式使用
例1:package main import ( "fmt" "regexp" ) func main() { s1 := "Z22WhkC9K$N#wRIbBitpQYUFJqd%d*QVz5Ir7j&CLqz3@FOC2x5CD6ZzvhNdk@5Vv1QU^DHbSc&nBs%4!94ngFH0BJ6GxtXg2$T" reg := regexp.MustCompile(`[^a-zA-Z0-9]`) fmt.Println(reg.FindAllString(s1, -1)) reg = regexp.MustCompile(`[a-zA-Z0-9]`) fmt.Println(reg.FindAllString(s1, -1)) reg = regexp.MustCompile(`...阅读全文
为什么越来越多的人偏爱go语言
如果你是一个开发者或者程序员,你大概应该听过Go语言或者Golang语言。当然,如果没有听过也没关系,看到这篇文章的同学,就说明你对Golang是关注的,只需要这一点就够了。今天来聊聊关于Golang的几个问题。 #### 越来越多人偏爱Go语言的真相 可能你身边有程序员朋友,或者技术论坛里有人在谈论Go或者Golang,引起了你的注意,让你觉得越来越多的人喜欢Go语言。 作为一名负责人的技术普及人员,“越来越多”到底是多少,我去亲自做了数据收集,如下图: - **中国的Golang语言搜索指数** 在新文章“Go: Ten years and climbing”中,回顾了一下 Go 语言的发展过程。其中提到,Go 语言这十年的迅猛发展大到连他们自己都没有想到,并且还成为了云计算领域中新一代的开发语言。还提到了,中国程序员对 Go 语言的热爱完全超出了他们的想象,甚至他们都不敢相信是真的。这让我想起,我在 2015 年 5 月份拜访 Docker 公司在湾区的总部时,Docker 负责人也和我表达了相似的感叹:他们完全没有想到居然中国有那么多人喜欢 Docker,而且还有这么多人在为 D...阅读全文
负载均衡系统 Seesaw
Seesaw 是 Google 开源的一个基于 Linux 的负载均衡系统。Seesaw 包含基本的负载均衡特性,同时支持一些高级的功能,诸如:anycast, Direct Server Return (DSR), 支持多个 VLANs 和集中式配置。同时其设计的宗旨是易于维护。 需要注意的是,尽管该项目挂靠在 Google 名下,但并非 Google 官方产品...阅读全文
Python和Go语言的区别总结
什么是Python?Python是一种功能强大的高级编程语言,主要用于科学和工程计算。它是一种高效的语言,优雅务实,简单而强大,适合新手和专业人士的编程。Python支持多种编程范例,并提出了一个大型标准库,包括面向对象,命令式,功能性和程序性。Go是什么?Go是一种通用编程语言,由Google设计;它借鉴了许多其他许多好主意语言,同时避免导致复杂性和不可靠代码的功能。Go支持多范式,如程序,功能和并发。它的语法传统上来自C语言,但它已经做了很多修改,以改进简单性和安全性等功能。Python和Go之间的区别是什么?想要学习Python?Python学习交流群:1004391443满足你的需求,资料都已经上传群文件,可以自行下载!1、范例Python是一种基于面向对象编程的多范式,命令式和函数...阅读全文
正则表达式必知必会教程
正则表达式是软件工程中最强大、广泛适用,有时甚至是令人信服的技术之一。 从验证电子邮件地址到执行复杂的代码重构器,正则表达式具有广泛的用途,是任何软件工程师工具箱中必不可少的条目。 https://blog.patricktriest.com/you-should-learn-regex...阅读全文
golang 导出 csv文件
csv文件可以直接用Excel打开 csv方式导出,可以像导出txt一样,以文本流的方式进行流式处理,不但能导出海量信息,而且流式处理占用内存极低,服务器对浏览器的响应也是非常迅速的。 导出纯数字构成的字符串,在excel中打开csv时,容易被识别成数字,造成误解。一般加上"\t",也有人采用加" ' "单引号 等解决方式。 实现代码 package main import ( "encoding/csv" "fmt" "os" "sort" "time" ) func main() { // 不存在则创建;存在则清空;读写模式; file, err := os.Create("person_list.csv") if err != nil { fmt.Println("open file ...阅读全文
Docker工具箱继续增加
Docker容器技术的发展继续阔步向前。 总部位于旧金山的Docker公司已经事实上成为Linux分布式应用程序容器运动的领袖。上周,该公司宣布了对Docker Hub的一项更新,更新包含了一个新的应用程序架构和一个新的“前端技术堆栈”。 另外,工作负载管理专家Univa corp 本周宣称其Grid Engine Container 整合Docker容器到平台资源管理器。新功能将提供大规模运行容器以及混合容器和其他工作负载的能力。 针对用户需求,其他开源公司计划在未来几周接受Docker技术。并且将其作为他们最新产品升级的一部分。越来越多的迹象表明大规模的容器炒作逐渐让位给更广泛的Docker采用和生产环境的实际部署。 Docker Hub被用于源代码管理集成,当然...阅读全文
Go 擅长哪些方面编程?
小弟刚学Go,不懂在目前的大数据,分布式计算,微服务,网络编程,数据库编程,以及移动APP领域 GO语言是否可以胜任?都有支持吗...阅读全文
什么是云计算?什么是云服务器?有什么用?
什么是云计算?什么是云服务器?有什么用?很多人都听过云计算和云服务器这几个概念,那么到底什么是云计算、什么是云服务器呢?云服务器又有什么用呢?提供阿里云、腾讯云特惠1折秒杀活动的“尊托云数-zuntop.com”就带大家一起来了解一下。云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒种)完成对数以万计的数据的处理,从而达到强大的网络服务。云计算服务,即云服务。指可以拿来作为服务提供使用的云计算产品。...阅读全文
why go?
Go编程语言开始于2007年。原始设计者Robert Griesemer 和Unix大师 Rob Pike和Ken Thompson。2009年11月10日,Go公开公布开源自由许可。 选择go的理由: Go设计可有效地扩展,以便用于构建大的应用程序。 编译速度快。语言容易解析,编译轻快。还有就是它的依赖管理。如app.go分别依赖pkg1.go和pkg2.go对象文件,传统编译语言需求依赖pkg1.go和pkg2.go对象文件。但是Go,pkg2.go缓存在pkg1.go对象文件中,所以构建app.go只需要pkg1.go对象文件。虽然三个文件关系有些复杂,但是结果是巨大提速。 Go语法清晰和容易理解。 Go是一门强静态类型语言。 Go更好地支持并发编程。 Go提供两个集合类型: slic...阅读全文
分布式任务系统cronsun
cronsun 是一个分布式任务系统,单个结点和 `*nix` 机器上的 `crontab` 近似。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 `crontab` 一个不错的选择。 cronsun 是为了解决多台 `*nix` 机器上`crontab` 任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行)。 cronsun 是在管理后台添加任务的,所以一旦管理后台泄露出去了,则存在一定的危险性,所以`cronsun`支持`security.json`的安全设置: 如上设置开启安全限制,则添加和执行任务的时候只允许选择配置里面指定的用户来执行脚本,并且脚本的扩展名要在配置的脚本扩展名限制列表里面...阅读全文
分布式文件存储系统wfs-go
wfs 是文件存储系统,主要是解决海量文件存储的问题,特别是小文件存储,原则上是简单易用,可扩展及备份恢复 单个 wfs 可以单独运行,多个 wfs 集群 可以启动 wfs-slb 作为代理层入口。wfs 没有过多额外功能,主要是**增加文件,删除文件,拉取文件*...阅读全文
高性能跨语言 RPC Hprose
_Hprose_ 是高性能远程对象服务引擎(High Performance Remote Object Service Engine)的缩写 —— 微服务首选引擎。 它是一个先进的轻量级的跨语言跨平台面向对象的高性能远程动态通讯中间件。它不仅简单易用,而且功能强大。你只需要稍许的时间去学习,就能用它轻松构建跨语言跨平台的分布式应用系统了。 它提供了高效的序列化和反序列化库,并在此基础上提供了方便灵活的 RPC 引擎。 _Hprose_ 支持众多编程语言,例如: * AAuto Quicker * ActionScript * ASP * C++ * Dart * Delphi/Free Pascal * dotNE...阅读全文
栈_逆波兰表达式_计算器实现_Golang版本
借助栈与逆波兰表达式 实现一个计算器,编程语言用的是Golang。 逆波兰表达式可以讲复杂的计算过程转化为简单的操作过程,进而得出答案。 比如 (a+b)*(b-c) 按照逆波兰表达式的规则得到 :ab+bc-* 然后将该表达式的字符以及符号,按照从左到右的顺序,依次入栈,一碰到符号则将栈顶前两个元素取出,做运算然后放入栈内,重复该操作,直到表达式结束。 下面将结合栈与逆波兰表达式写一个简易计算器。 运行命令如下 go run counter.go --expression=\(3-5\)*4-\(5*8\)/3+78*9 代码示例: package main import ( "fmt" "strconv" "flag" ) type StackNode struct { Data int...阅读全文
go语言示例:if/else语句
if else分支在go语言里是简单明了的。 这里有个简单的例子。 if语句可以没有else。 可以在条件语句前添加别的语句。这个语句中声明的变量的作用域在所有的分支中。 注意:在go语言中条件语句没必要带圆括号。但是分支中必须有大括号。 在go语言里面没有三元条件语句,所以即使是简单的条件语句你也必须使用全机构的if语句(就是说go里没有个?:表达式 )。 Plain Text code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package main import "fmt" func main() { if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Print...阅读全文
go是函数式编程语言吗?
[2012-05-19 翻译自这里, 对原文有所扩展, 也有所删减. 版权属于原作者, 转载必须保留此声明.] go是函数式编程语言吗? 不是, 当然不是. 那么, go提供函数吗? 是的, 当然, 大多数编程语言都提供函数, go也不例外. func SayHello() { fmt.Println("Hello") } go使用关键字func定义函数, 并在函数体中编写函数逻辑. go函数可以接受参数吗? 额, 这个问题... 哦, 我懂了, 也许是我的SayHello函数给大家造成了错觉, 我会改造我的代码: func SayHelloToSomeone(name string) { fmt.Println("Hello " + name + ".") } 函数SayHelloToSo...阅读全文
淘宝发展历程最具决定性的一次技术架构演变
今天我们重点说淘宝最重要的一次架构演变,这次演变在整个淘宝发展历程中算是最具决定性的一次,没有之一!这套架构体系,如果你能用心掌握,足可以帮助你在任何一家互联网大公司站稳脚跟!淘宝技术发展历史前一篇文章“一位亲历者眼中的淘宝技术架构发展之路”,已经写过淘宝技术架构前两个阶段的发展历程。今天我们重点说淘宝最重要的一次架构演变,也就是第三到第四阶段。淘宝第三阶段面临的挑战1.从人员的角度。维护一个代名工程Denali的百万级代码怪兽(虽然物理部署是分离的),从发布到上线,从人员的角度,百号人同时在一个工程上开发,一旦线上出问题,所有代码都需要回滚,从人员的角度,也基本忍受到了极致。2.从业务的角度淘宝包含太多业务:用户、商品、交易、支付...等等,代码已经严重影响到业务的效率,每个业务有各自...阅读全文
GO语言、DOCKER 和新技术
点击上方“中兴开发者社区”,关注我们 每天读一篇一线开发者原创好文 来源:酷壳-陈亮 上个月,作为 Go 语言的三位创始人之一,Unix 老牌黑客罗勃·派克(Rob Pike)在新文章“Go: Ten years and climbing”中,回顾了一下 Go 语言的发展过程。其中提到,Go 语言这十年的迅猛发展大到连他们自己都没有想到,并且还成为了云计算领域中新一代的开发语言。还提到了,中国程序员对 Go 语言的热爱完全超出了他们的想象,甚至他们都不敢相信是真的。 这让我想起,我在 2015 年 5 月份拜访 Docker 公司在湾区的总部时,Docker 负责人也和我表达了相似的感叹:他们完全没有想到居然中国有那么多人喜欢 Docker,而且还有这么多人在为 Docker 做贡献,这让他...阅读全文
Go语言:正则表达式的使用
Go语言的正则表达式使用很简单,示例代码: package test import ( "fmt" "regexp" ) func RegixBase() { //findTest() //findIndexTest() //findStringTest() //findChinesString() //findNumOrLowerLetter() findAndReplace() } //传入[]byte,返回[]byte func findTest() { str := "ab001234hah120210a880218end" reg := regexp.MustCompile("\\d{6}") //六位连续的数字 fmt.Println("------Find------") //...阅读全文