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

Go语言、Docker 和新技术 | | 酷 壳

上个月,作为 Go 语言的三位创始人之一,Unix 老牌黑客罗勃·派克(Rob Pike)在新文章“Go: Ten years and climbing”中,回顾了一下 Go 语言的发展过程。其中提到,Go 语言这十年的迅猛发展大到连他们自己都没有想到,并且还成为了云计算领域中新一代的开发语言。还提到了,中国程序员对 Go 语言的热爱完全超出了他们的想象,甚至他们都不敢相信是真的。 这让我想起,我在 2015 年 5 月份拜访 Docker 公司在湾区的总部时,Docker 负责人也和我表达了相似的感叹:他们完全没有想到居然中国有那么多人喜欢 Docker,而且还有这么多人在为 Docker 做贡献,这让他们感到非常意外。此外,还跟我说,中国是除了美国本土之外的另一个如此喜欢 Docker ...阅读全文

博文 2017-10-31 02:05:15 CoolShell

go语言之正则表达式

go语言之正则表达式 //regexp package main import ( "fmt" "regexp" ) func main() { //需要匹配的模式 //reg := regexp.MustCompile("\\w+") 正则表达式中的\需要转义 reg := regexp.MustCompile(`^z.*1$`) //返回匹配到的结果 result := reg.FindAllString("zhangsan1", -1) fmt.Printf("%v\n", result) //演示一个匹配不到的例子 reg1 := regexp.MustCompile(`^z(.*)1$`) result1 := reg1.FindAllString("zhangsand", -1)...阅读全文

博文 2018-11-14 23:35:09 PowerMichael

go语言文件正则表达式搜索

package main import ( "fmt" "os" "path/filepath" "regexp" ) func main() { // 命令行参数 args := os.Args // 检查参数 if len(args) == 1 { fmt.Println("ff is a file find tool. use like bottom") fmt.Println("ff [dir] [regexp]") return } if len(args) < 3 { fmt.Println("args < 3") return } fileName := args[1] pattern := args[2] file, err := os.Open(fileName) if e...阅读全文

博文 2015-06-17 23:02:36 aotian16

【上海招聘】拼多多急招golang开发工程师,高薪福利佳,2年不到估值20亿美金的电商公司邀你加入!

你会 Go, node.js, 也会 angular.js ?请你一定要快来!!! 不熟悉以上技术栈,但会java/python/php,有丰富的服务端搭建经验,愿意学golang,还等什么 ! 拼多多于2015年9月正式上线,是专注于C2B拼团的第三方社交电商平台。 在不到2年的时间里,已拥有超1亿付费用户,单月交易额近70亿元。C轮估值20亿美金。 不啰嗦,放JD 聊天系统服务端开发工程师 岗位职责: 1、负责聊天系统服务端的技术架构及开发,确保系统的高可靠性和海量用户同时在线请求; 2、完善IM系统基础设施建设,提升开发和运维效率。 3、深入理解IM系统架构,发现和解决系统技术问题; 岗位要求: 1、热爱技术,并有较好有的逻辑分析能力,善于学习...阅读全文

为什么越来越多的人偏爱go语言

如果你是一个开发者或者程序员,你大概应该听过Go语言或者Golang语言。当然,如果没有听过也没关系,看到这篇文章的同学,就说明你对Golang是关注的,只需要这一点就够了。今天来聊聊关于Golang的几个问题。越来越多人偏爱Go语言的真相可能你身边有程序员朋友,或者技术论坛里有人在谈论Go或者Golang,引起了你的注意,让你觉得越来越多的人喜欢Go语言。作为一名负责人的技术普及人员,“越来越多”到底是多少,我去亲自做了数据收集,如下图:中国的Golang语言搜索指数 阅读全文

区块链智能合约开发新趋势2019

智能合约开发语言已经被Solidity统治了一段时间,它用于开发可以在以太坊虚拟机EVM上运行的智能合约。不过Solidity有一些严重的问题,包括算术溢出、类型错误以及曾经冻结了3亿美元的delegatecall漏洞。所有这些漏洞都是在开发语言层面存在的问题。换句话说,如果有一个好点的开发语言,本来应该可以创造更安全的智能合约。文本将列出在2019年值得关注的区块链智能合约开发技术趋势。 > 上汇智网,用互动方式学习以太坊、比特币、EOS、tendermint等更多[区块链开发教程](http://www.hubwiz.com/course/?type=%E5%8C%BA%E5%9D%97%E9%93%BE&affid=studygolang7878)。 2019年,Solidity的挑战...阅读全文

golang 环境搭建

操作系统 ubuntu 12.04 64 位 1. 配置编译环境 Go工具链采用C语言编写,需要安装以下开发工具 $ sudo apt-get install bison gcc libc6-dev ed gawk make 2.安装Mercurial工具 Mercurial是一种轻量级分布式版本控制系统,采用Python编写。 首先安装Python $ sudo apt-get install python2.7 $ sudo apt-get install python-all-dev $ sudo apt-get install python-setuptools 安装Mercurial $ sudo easy_install -U mercurial 安装完毕后测试以下 $ hg -...阅读全文

博文 2014-10-04 19:26:12 icePhone

笔记(一)

***只是想做个笔记,以便以后回顾并且大家分享,由于水平有限(很菜),可能会出现一些错误,请大家及时纠正 谢谢。*** * 语言设计中空引用(null reference)的存在有什么问题?假设你想要将空引用的概念从你的首选语言中移除,可能导致什么结果? 对golang来说,在解引用的时候会存在panic问题。 移除会导致与其他语言通信的时候语义缺失问题 >回顾:Go推荐通过调用panic函数报告错误,为了报告运行期间致命错误,panic函数用于停止当前控制流程并引发一个运行时恐慌,panic函数可以接受任意类型参数,但通常时string类型或者error,因为这样更容易描述运行时恐慌的详细信息。 还有,运行时恐慌并不都是通过调用panic函数的方式引发的,也可以由Go运行时系统引发。 * ...阅读全文

博文 2018-03-25 12:36:30 liumenggc

优质自助建站工具的自我修养:顾得了小白禁得起大神

一款具有良好修养的自助建站工具应该是这样的:小白看了不懵逼,大神看了灵感来。 一般自助建站工具的试用时间只有几天,而且,很多主要功能不会开放给用户,这让用户对产品认识存在一定偏差。 而现在,机会来了!这个自助建站工具你可以用一年,而且只需要一顿饭的价格,20.17元!全新的建站宝盒V9体验版就是你的! 建站宝盒V9体验版是什么? V9体验版是正式上线前的一次全民预热,旨在通过低廉的价格让更多的用户体验到零基础搭建自适应网站的乐趣。它在V8的基础上增加了一系列自适应模板,用户只需安装自适应模板进行修改,网站完成后在市面上所有尺寸的移动终端都能自动适配,保证统一的用户体验,极大地方便了企业和个人用户建站。 如此喜庆的编辑后台,是2017新春限定哦! ![e61190ef7...阅读全文

阿里李睿博谈自己的折腾路:整个过程爱最重要

摘要: 整个过程我觉得还是爱最重要。有爱才有勇气才有希望。我是真的爱写代码。从小学就开始爱,到现在快三十年了也还爱。 《沉淀》是云栖社区展示专家风采的人物栏目。它呈现每个专家独一无二的人生经历、认识和感悟的同时,也能帮助你沉淀技术,收获对技术和人生的判断。我们的想法是:“若你想精进为一个很厉害的人,不妨细细品味这些技术牛人背后的沉淀。”如果你想了解这些云栖专家更多分享时,请点击云栖专家频道,当然我们也欢迎你往前走一步,成为我们的云栖专家(https://yq.aliyun.com/expert),与技术大牛一起“煮酒论英雄”。 1. 如果人生可以重新来过一次,你会怎么做? 相信很多人都会列好一大堆计划和想法,而李睿博却和云栖社区的同学讲了一个往事: “小时候一帮小朋...阅读全文

Golang: 函数式编程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chao2016/article/details/81558491 golang并不是传统的函数式编程语言,但是它支持函数式编程。 这里主要讲闭包的应用。 函数式编程 vs 函数指针 函数式一等公民:参数,变量,返回值都可以是函数 高阶函数 函数->闭包 “正统”函数式编程 不可变性:不能有状态,只有常量和函数 函数只能有一个参数 golang没有以上规定 golang闭包的应用 更为自然,不需要修饰如何访问自由变量 没有lambda表达式,但是有匿名函数 1. 累加器 1.1 functional/adder/adder.go 1.2 Output: 2. 实现斐波那契数列 2.1 funct...阅读全文

博文 2019-05-05 04:31:42 chao2016

Docker

简述 Docker是基于GoLang编写的,2013年推出。越来越多的厂商都开始用Docker作为基础设施自动化的工具。Docker是开源的应用容器引擎。Docker容器将软件以及它运行安装所需的一切文件打包到一起,保证了不管在什么样的环境,程序都能以相同的方式运行,实现一次构建,到处运行。 Docker是一种"容器即服务" ,container as a service (caas),使得开发和运营团队对于应用的构建、发布、维护、运行更加敏捷的控制。 Docker是一个为开发人员和管理人员用于构建、发布、运行的分布式应用程序的开放式平台。该平台由Docker引擎(打包工具)和DockerHub(共享应用程序和自动化工作流的云服务)组成。 Docker的优点 1.高可移植性2.开发敏捷,自由...阅读全文

golang小记

切片与数据 学golang时,书上提过从数组生成切片时,切片实际上是有一个指针指向那个数组,所以对切片和数组的操作会相互影响。 好奇的是切片是变长的,当切片超过原生数组长度后,还会保持那个指针么,或者有更高级的方式,今天试了一下,比较失望的是,对切片执行append操作,当超过该切片的capacity时,go会分配一个新的数组给切片,两者从此分道扬镳。 append操作会在切片底层数组不够时分配新数组,所以使用切片的话,最好还是得计算要用的空间大小。 可能是最近受函数式编程的immutable variable影响,总觉得切片跟数组共享同一片内存会有点危险。 函数式语言中有大量的复制操作,处于性能及内存考虑,他们的集合实现应该跟普通的集合不一样,有空去看看它们的实现。 New and Mak...阅读全文

golang channel 有缓冲 与 无缓冲 的重要区别

golang channel 有缓冲 与 无缓冲 是有重要区别的 我之前天真的认为 有缓冲与无缓冲的区别 只是 无缓冲的 是 默认 缓冲 为1 的缓冲式 其实是彻底错误的,无缓冲的与有缓冲channel有着重大差别 那就是一个是同步的 一个是非同步的 怎么说?比如 c1:=make(chan int) 无缓冲 c2:=make(chan int,1) 有缓冲 c1<-1 无缓冲的 不仅仅是 向 c1 通道放 1 而是 一直要有别的携程 <-c1 接手了 这个参数,那么c1<-1才会继续下去,要不然就一直阻塞着 而 c2<-1 则不会阻塞,因为缓冲大小是1 (其实是缓冲大小为0)只有当 放第二个值的时候 第一个还没被人拿走,这时候才会阻塞。 打个比喻 无缓冲的 就是一个送信人去你家门口送信 ,...阅读全文

博文 2014-10-04 19:26:59 健哥大人

进程、线程、协程和goroutine

日晷 进程(process): 狭义定义:进程就是一段程序的执行过程例如启动的某个app。 广义定义:进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程即是基本的分配单元,也是基本的执行单元。 1)进程是一个实体,每个进程都有自己的地址空间,一般情况下,包含文本区域、数据区域、堆栈 2)进程是执行中的程序,程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称之为进程 3)进程本身不会运行,是线程的容器。线程不能单独执行,必须组成进程 4)一个程序至少有一个进程,一个进程至少有一个线程 5)对于操作系统来讲,一个任务就是一个进程,比如开一个浏览器就是启动一个浏览器进程。打开一款app就是打开一个进...阅读全文

博文 2019-05-10 00:35:00 微尘_yule

go 学习笔记之学习函数式编程前不要忘了函数基础

在编程世界中向来就没有一家独大的**编程风格**,至少目前还是**百家争鸣**的春秋战国,除了众所周知的**面向对象编程**还有日渐流行的**函数式编程**,当然这也是本系列文章的重点. 越来越多的主流语言在设计的时候几乎无一例外都会参考**函数式特性**( `lambda` 表达式,原生支持 `map,reduce...`),就连面向对象语言的 `Java8` 也慢慢开始支持函数式编程,所以再不学习函数式编程可能就晚了! ![go-functional-programming-about-function.jpg](https://upload-images.jianshu.io/upload_images/16648241-dc2ceed42a0b1fc1.jpg?imageMogr2/...阅读全文

博文 2019-09-16 09:44:36 snowdreams1006

Go学习笔记之:Switch 语句

当条件判断分支太多的时候,我们会使用switch语句来优化逻辑。 package main import "fmt" import "time" func main() { // 基础的switch用法 i := 2 fmt.Print("write ", i, " as ") switch i { case 1: fmt.Println("one") case 2: fmt.Println("two") case 3: fmt.Println("three") } // 你可以使用逗号来在case中分开多个条件。还可以使用default语句, // 当上面的case都没有满足的时候执行default所指定的逻辑块。 switch time.Now().Weekday() { case ti...阅读全文

博文 2014-11-27 23:00:03 Goopand

兄弟连区块链培训Go语言爬虫编写

兄弟连教育建议,用户在考虑培训周期时要切实结合自身目前所掌握的区块链知识的多少、培训的目的是简单的认知提升还是借此高薪就业等等。兄弟连Go全栈与区块链培训课程设置为5个半月共计22周的学习时长,由浅入深进行讲解,助力于小白用户向区块链工程师的转型。 课程体系设计架构包括了区块链的基础语言Go语言、区块链后端技术体系、区块链公链、区块链分布式应用开发等内容讲解,以及到最后的面试指导和项目实战。课程由清华微软谷歌名师团队精心打造,历时半年时间共同研发而出。上次用Scala写了个爬虫。最近在闲工夫之时,学习Go语言,便用Go移植了那个用Scala写的爬虫,代码如下:package mainimport ( "fmt" "io/ioutil" "net/http" "regexp")var ( pt...阅读全文

博文 2018-08-20 16:34:50 兄弟连区块链培训

Go之旅-Switch

## Go之旅-Switch switch支持初始化语句,注意要用分号结束。后跟条件表达式,如果省略条件表达式,默认为true。不需要显示执行break语句,case执行完毕后自动终端。多个匹配条件,其中一个条件符合即可。case执行中断后,如果需要继续执行下一个case块的内容,在下一个case块结尾执行fallthrough并且可以在fallthrough前使用break语句阻止。但不继续继续后续case块。 ```golang package main import ( "fmt" ) func main() { // 简单声明几个变量 a, b, c, d := 1, 2, 3, 4 switch x := 2; x { // switch支持...阅读全文

Go语言:正則表達式的使用

Go语言的正則表達式使用非常easy。演示样例代码: 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------...阅读全文

博文 2015-12-22 03:00:01 gcczhongduan

区块链和数据库

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链技术是一种不依赖第三方、通过自身分散式节点进行网路数据的存储、验证、传递和交流的一种技术方案。因此,有人从金融会计的角度,把区块链技术看成是一种分散式开放性去中心化的大型网路记账薄,任何人任何时间都可以採用相同的技术标准加入自己的信息,延伸区块链,持续满足各种需求带来的数据录入需要。 通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个资料库,你可以把资料库看成是就是一个大账本。那麽谁来记这个账本就变得很重要。目前就是谁的系统谁来记账,微信的账本就是腾讯在记,淘宝的账本就是阿裡在记。但现在区块链系统中,系统中的每个人都可以有机会参与记账。在一定时间段内如果有任何数据变化,系统中每个人都可...阅读全文

博文 2019-09-26 17:02:45 链客

Golang 流式解析 Json

json-iterator 库:https://github.com/json-iterator/go 动机 现有的golang解析json的库都是push模式的,缺少一种基于pull api的库。另外就是看一下golang解析json的速度到底如何,还有多少的提高空间。 API 风格 api 风格上是以 StAX 为基础,但是针对 JSON 做了特别的优化。比 StAX 和 SAX 都更简单可控。当然如果需要最简单,还是 DOM 类的 api 最简单。使用流式pull的api为的就是最大化控制解析过程。 解析 Array iter := ParseString(`[1,2,3]`) for iter.ReadArray() { iter.ReadUint64() } 可以看到,pull a...阅读全文

博文 2017-02-10 10:31:36 taowen

分布式分布订阅消息系统

image.png 几千行 C 代码实现了的一个优先级/延时队列,短小精悍 概念 tube - 消息通道,类似于 kafka 里面的 topic, 用来存储某一类或者业务的任务 job - 生产和消费的基本单元,每个 job 都会有一个 id 和 优先级 特点 1、协议,类 Memcached 协议, 非二进制安全 2、全内存, 可开启 binlog, 断电从 binlog 恢复数据 3、单线程, 使用 epoll/kqueue 来实现事件机制 基于golang和beanstalk封装的分布式发布订阅消息系统 主要工作 1、producer消息路由 2、维护client与topic的订阅关系 3、dispatcher并发投递消息给多个相关订阅者,从而支持1对N的关系 delivery gua...阅读全文

博文 2019-03-22 18:34:43 loloxiaoz

GO 使用channel进行同步 (缓冲channel)

上一篇文章提到了普通的channel用来进行线程的同步。Go语言里面还有一种缓冲式的channel。 ch := make(chan int, 100) 需要执行类型和缓冲区的大小。 package main import "fmt" func main() { c := make(chan int, 2) //建立int类型大小为2的缓冲区 c <- 1 //缓冲区1赋值为1 c <- 2 //缓冲区2赋值为2 fmt.Println(<-c) //输出缓冲区1 fmt.Println(<-c) //输出缓冲区2 } 可以循环 for i := range c 来不断从 channel 接收值,直到它被关闭。 package main import ( "fmt" ) func fibon...阅读全文

博文 2015-06-17 23:08:22 genispan

Go 实验报告:函数式编程之泛型

在 2017 年的年中,我在 GopherCon 上发表了《Go 的函数式编程》的演讲。我提出了一些函数式编程的概念,Gophers 使用它,可以提高编程效率,代码更加简洁。 ![](https://raw.githubusercontent.com/studygolang/gctt-images/master/go-experience-report-generics-for-functional-patterns/functional-programming-in-go.jpeg) > 函数式编程在 Go 是可以实现,只是不明显 演讲中一半是理论,另一半是可以让人使用的模式概念,其中大约四分之一是我认为是有实践价值的,其他的姑且值得一提。你需要"代码生成"(code generation...阅读全文

博文 2018-05-10 21:26:19 lightfish-zhang

逻辑编程入门--clojure.core.logic

此文已由作者张佃鹏授权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。1. 逻辑编程思维:逻辑编程(逻辑程序设计)是种编程范型,它设置答案须匹配的规则来解决问题,而非设置步骤来解决问题。过程是:事实+规则=结果简单的说,事实就是一些已知输入,规则是应该遵循的限定条件,输入和输出应该遵循一定的规则,然后找出所有满足这些规则的输出,便是结果。在逻辑编程时,我们没必要去关心寻找结果的过程,而注重的是输出结果。   逻辑编程的要点是将正规的逻辑风格带入计算机程序设计之中,数学家和哲学家发现逻辑是有效的理论分析工具,很多问题可以自然地表示成一个理论。说需要解答一个问题,通常与解答一个新的假设是否跟现在的理论无冲突等价。逻辑提供了一个证明问题是真还是假的方法。创建证明的方法是人所皆知的...阅读全文

博文 2018-11-13 16:34:46 网易云社区

Go语言技巧 · Zablog

一句话技巧 把你面向对象的大脑扔到家里吧,去拥抱接口。@mikegehard 学习如何使用Go的方式做事,不要把别的的编程风格强行用在Go里面。@DrNic 多用接口总比少用好。@evanphx 拥抱这种简洁、并行、工整的语言。@francesc 阅读官网golang.org上所有的文档,真是棒呆了。@vbatts 别忘了用gofmt。@darkhelmetlive 多读源代码。@DrNic 学习工具和组件,然后创造你自己的!码代码和学代码一样对成功必不可少。@coreyprak 学而不思则罔,思而不学则殆。《论语》 引入package的多种方式有几种非常规方式来引入包(package)。接下来我会使用fmt来作为例子: import format "fmt" - 为fmt创造一个别名。把代...阅读全文

博文 2017-09-02 10:59:59 zablog.me

基于consul构建golang系统分布式服务发现机制

在分布式架构中,服务治理是一个重要的问题。在没有服务治理的分布式集群中,各个服务之间通过手工或者配置的方式进行服务关系管理,遇到服务关系变化或者增加服务的时候,人肉配置极其麻烦且容易出错。 之前在一个C/C++项目中,采用ZooKeeper进行服务治理,可以很好的维护服务之间的关系,但是使用起来较为麻烦。现在越来越多新的项目采用consul进行服务治理,各方面的评价都优于ZooKeeper,经过几天的研究,这里做一个总结。 zookeeper和consul比较 开发语言方面,zookeeper采用java开发,安装的时候需要部署java环境;consul采用golang开发,所有依赖都编译到了可执行程序中,即插即用。 部署方面,zookeeper一般部署奇数个节点方便做简单多数的选举机制。c...阅读全文

博文 2017-03-17 05:52:23 失去梦想的咸鱼

有哪些不用写代码就能轻松制作HTML5网页的工具?

目前的HTML5页面制作工具可以分为两类:基于HTML5的网站制作工具和专门针对移动终端的H5页面制作工具。网上对移动端H5的工具推荐很多,却鲜有人专门整合下网站页面制作工具,今天笔者给大家分享一下自己知道的不用写代码就能制作HTML5网页的工具。 1、9466网页助手 ![01.png](http://studygolang.qiniudn.com/170116/f3fcd5f8e17d7421eae77102a5be874c.png) ![02.png](http://studygolang.qiniudn.com/170116/aa8323580f7b21d7961a0833846e4013.png) 提供较丰富的模板供用户进行“克隆”,只要在模板基础上修改页面...阅读全文

Go by Example: Functions

函数(Function)是Go的核心,我们将会通过多个不同的例子来学习函数。 package main import "fmt" // 这个函数输入两个int型数据,计算并返回int型的和 func plus(a int, b int) int { // Go需要使用return语句显式地返回值 // 它不会自动返回函数中最后一个表达式的值。 return a + b } func main() { // 正如你所想的那样,通过“name(args)”来调用函数 res := plus(1, 2) fmt.Println("1+2 =", res) } 输出 $ go run functions.go 1+2 = 3 Go语言的函数还有其他一些功能。其中一个就是下一章节将会学习的多值返回。 ...阅读全文

博文 2014-12-08 01:00:01 codemanship

Go 语言中的两种 slice 表达式

在此之前,已经有许多关于 Golang 中 slice 的介绍,比如 * [Go Slices: usage and internals](https://blog.golang.org/go-slices-usage-and-internals) * [How to avoid Go gotchas](https://blog.golang.org/go-slices-usage-and-internals) 本文只是关注于 slice 的表示方式,它们可以创建两种类型的值: * 截断的 string * 指向 array 或者 slice 的指针 Go 语言对 slice 有两种表示方式:简略表达式与完整表达式。 ## 简略表达式 Slice 的简略表达式是: ```go Input[l...阅读全文

博文 2018-08-24 16:45:54 polaris

基于consul构建golang系统分布式服务发现机制

在分布式架构中,服务治理是一个重要的问题。在没有服务治理的分布式集群中,各个服务之间通过手工或者配置的方式进行服务关系管理,遇到服务关系变化或者增加服务的时候,人肉配置极其麻烦且容易出错。 之前在一个C/C++项目中,采用ZooKeeper进行服务治理,可以很好的维护服务之间的关系,但是使用起来较为麻烦。现在越来越多新的项目采用consul进行服务治理,各方面的评价都优于ZooKeeper,经过几天的研究,这里做一个总结。 zookeeper和consul比较 开发语言方面,zookeeper采用java开发,安装的时候需要部署java环境;consul采用golang开发,所有依赖都编译到了可执行程序中,即插即用。 部署方面,zookeeper一般部署奇数个节点方便做简单多数的选举机制。c...阅读全文

博文 2017-02-24 08:00:44 石匠

Golang入门

## Go的特性 ### 1.没有对象,没有继承多态,没有泛型,没有try/catch ### 2.有接口,函数式编程,CSP并发模型(goroutine+channel) ### 3.介于c/c++和python之间,不需要库的支持,属于静态语言 ### 4.天生支持并发,开发效率高 ### 5.库很丰富,部署简单,强大的GC 在线的golang文档 https://studygolang.com/pkgdoc go有且只有一个入口main() 调用函数必须导入包,每个文件必须声明一个包暨必须有一个package,程序必须有一个main...阅读全文

博文 2018-08-27 15:04:11 ace_kylin

Go 中的正则表达式

文 kinds of single-character expressions examples any character, possibly including newline (s=true) . character class [xyz] negated character class [^xyz] Perl character class (link) \d negated Perl character class \D ASCII character class (link) [[:alpha:]] negated ASCII character class [[:^alpha:]] Unicode character class (one-letter name) \pN Un...阅读全文

博文 2017-04-30 09:00:26 中柠檬

互链独家|招商银行张育明:我们真的需要为每个应用建一条链吗?

【互链脉搏讯】招商银行是较早使用区块链技术的银行,2017年12月,招商银行联手永隆银行、永隆深圳分行,成功实现了三方间使用区块链技术的跨境人民币汇款。这是全球首笔基于区块链技术的同业间跨境人民币清算业务。在4月10日深圳举办的2019中国国际区块链技术与应用大会上,招商银行区块链负责人张育明介绍了该行区块链领域最新的进展,除了落地13个项目外,还牵头搭建了一个许可链平台。 张育明介绍,招行银行所做的十多个许可链项目,一个项目搭建一条链。但遇到很大的问题;节点数量少,网络存在安全性问题;复用度低,资源损耗大;网络管理复杂,维护成本高。“十几个项目,不到10个节点。”张育明提出一个问题:“我们真的需要为每个应用建一条链吗?”因此招商银行提出了分层建设许可区块链的思路,和有区块链技术开放能力的合...阅读全文

数据存储系统 Cockroach

CockroachDB (蟑螂数据库)是一个可伸缩的、支持地理位置处理、支持事务处理的数据存储系统。CockroachDB 提供两种不同的的事务特性,包括快照隔离(snapshot isolation,简称SI)和顺序的快照隔离(SSI)语义,后者是默认的隔离级别。 蟑螂是一个分布式的K/V数据仓库,支持ACID事务,多版本值存储是其首要特性。主要的设计目标是全球一致性和可靠性,从蟑螂的命名上是就能看出这点。蟑螂数据库能处理磁盘、物理机器、机架甚至数据中心失效情况下最小延迟的服务中断;整个失效过程无需人工干预。蟑螂的节点是均衡的,其设计目标是同质部署(只有一个二进制包)且最小配置。 蟑螂数据库实现了单一的、巨大的有序映射,键和值都是字节串形式(不是unicode),支持线性扩展,理论上支...阅读全文

开源项目 2014-05-30 16:00:00 cockroachdb

go任务调度11(分布式crontab架构分析)

crontab是单机工具(所有worker都在调度,如果有1000个任务,所有worker都在调用者1000个任务。对于编译型语言来说,排序一个一千万的数组只需要一秒,对于一千一万的调度,无需担心性能)(相当于完成一个到worker集群的通知,通知它们杀死任务...阅读全文

博文 2019-04-21 16:35:13 梁十八

html5建站工具使用测评

目前的HTML5页面制作工具可以分为两类:基于HTML5的网站制作工具和专门针对移动终端的H5页面制作工具。网上对移动端H5的工具推荐很多,却鲜有人专门整合下网站页面制作工具,今天笔者给大家分享一下自己知道的不用写代码就能制作HTML5网页的工具。 1、9466网页助手 提供较丰富的模板供用户进行“克隆”,只要在模板基础上修改页面即可,可以用来做个人网站。提供的模板大部分只专门针对PC或者移动站,页面数量比较少,不能实现跨屏。一些高级的组件向用户收费开放。 2、Rapid Weaver Mac上的一款HTML网页制作工具,一样的拖拽操作,不用对网页代码非常熟悉(一点点还是要的),苹果官网上宣传广告是在几分钟内能做出专业性水准的网页。如果是Windows系统,需要进...阅读全文

阿里专家为你讲解分布式数据库技术与实现

课程介绍 本课程主要讲解分步式数据库系统的主要功能和实现方式,课程中首先阐述传统数据库所存在的问题,结合此问题说明分步式数据库系统如何解决这些问题,以及阿里云平台下分步式数据库系统如何优化这些问题 讲师介绍: 林晓斌,阿里云RDS数据库内核组高级技术专家,负责RDS MySQL源码分支维护。专注于数据存储系统、MySQL源码研究和改进、MySQL性能优化和功能改进。活跃的MySQL社区贡献者。在系统瓶颈分析、性能优化方面拥有丰富的经验。 课程目标 • 掌握分步式数据库系统的主要功能和实现方式 适合人群 • 云计算开发者 • 数据库开发者 课时列表 • 课时1:传统数据库回顾 • 课时2:分布式数据库概述 • 课时3...阅读全文

58.蛤蟆笔记go语言——函数式编程

58.蛤蟆笔记go语言——函数式编程 使用函数式编程使代码更抽象和更容易理解 先看个例子如下: packagemain import( "fmt" ) typeStudentstruct{ Name string Age int Heightint } funcmain(){ Students:=[]*Student{ &Student{"Danny",15,165}, &Student{"Jacky",16,180}, &Student{"Alan",17,172}, &Student{"Sandy",18,168}, } result1:=[]*Student{} for_,s:=rangeStudents{ ifs.Age>16{ result1=append(result1,s) }...阅读全文

博文 2016-08-20 12:00:03 notbaron

Go语言的断言返回值和类型转换的区别

1.类型转换 (1)、语法:<结果类型> := <目标类型> ( <表达式> ) (2)、类型转换是用来在不同但相互兼容的类型之间的相互转换的方式,所以,当类型不兼容的时候,是无法转换的。 例如 各种int类型,[]byte和string类型 2.类型断言 二、类型断言 (1)语法: <目标类型的值>,<布尔参数> := <表达式>.( 目标类型 ) // 安全类型断言 <目标类型的值> := <表达式>.( 目标类型 ) //非安全类型断言 (2)类型断言的本质,跟类型转换类似,都是类型之间进行转换,不同之处在于,类型断言实在接口之间进行。 (3) 在switch中 <目标类型的值> := <表达式>.( type )后,case 目标类...阅读全文