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

如何让新站点1小时内快速被收录

每个站长刚刚建好一个站的时候都特别希望自己的网站被很快的收录。但是大部分人需要10几天甚至1个月才会被收了。但是有的几个小时就收录,甚至十多分钟就可以,是不是很神奇。这些是很有技巧性的。为什么搜索引擎收录新站点会有那么大的时间差距,那些1小时内被收录的网站究竟做了些什么手法? http://www.nss168.com/archives/46.htm...阅读全文

Erlang和Go的并行化concurrent比较

说到concurrent,一般会想到Erlang和Go语言,这两种语言的主打特性都是concurrent,Erlang有着20多年的历史,是为简化开发电信大并发和高可靠性应用而发明的语言,Go是Google从2007年开始设计,2009年opensource出来的,Go属于一种system language,opensource的就算这两种语言吧,公司内私有的语言则有TNSDL,SDL的一个变种,以前写过一篇SDL和Erlang比较的文章(http://bookjovi.iteye.com/blog/1233299),这三种concurrent语言各有不同,下面看看: 1)语言设计 Erlang的实现基于虚拟机beam,Go是编译型语言,有着独成一体的compiler(不同于gcc,Go很好...阅读全文

博文 2015-04-10 22:42:48 bookjovi

golang gc 问题(转的)

在实际使用go语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究。本文对研究的结果进行一下总结。 什么是垃圾回收? 曾几何时,内存管理是程序员开发应用的一大难题。传统的系统级编程语言(主要指C/C++)中,程序员必须对内存小心的进行管理操作,控制内存的申请及释放。稍有不慎,就可能产生内存泄露问题,这种问题不易发现并且难以定位,一直成为困扰开发者的噩梦。如何解决这个头疼的问题呢?过去一般采用两种办法: 内存泄露检测工具。这种工具的原理一般是静态代码扫描,通过扫描程序检测可能出现内存泄露的代码段。然而检测工具难免有疏漏和不足,只能起到辅助作用。 智能指针。这是c++中引入的自动内存管理方法,通过拥有自动内存管理功能的指针对象来引用对象,是程序员不用太关注...阅读全文

博文 2016-05-07 15:00:00 jackluo

Erlang和Go的并行化concurrent比较

文链接:http://www.csnuts.com/msg/?id=9067 说到concurrent,一般会想到Erlang和Go语言,这两种语言的主打特性都是 concurrent,Erlang有着20多年的历史,是为简化开发电信大并发和高可靠性应用而发明的语言,Go是Google从2007年开始设 计,2009年opensource出来的,Go属于一种system language,opensource的就算这两种语言吧,公司内私有的语言则有TNSDL,SDL的一个变种,这三种concurrent语言各有不 同,下面看看: 1)语言设计 Erlang的实现基于虚拟机beam,Go是编译型语言,有着独成一体的compiler(不同于gcc,Go很好的解决了依赖的问题, 所以编译go程序时...阅读全文

VS Code中如何关闭保存Go语言文件时自动去除未引用包的行为

在使用Visual Studio Code编写Go语言(Golang)程序代码的时候,有时候引用的包明明是正确引用了,但在保存的时候却会被自动删除掉,是被误认为未引用了。这时候,参照以下步骤就可以解决。在VS Code中的Preference的Settings中搜索goimports,会看到“Go: Format Tool”一项,将使用的goreturns或goimports换成gofmt即可。因为goreturns或goimports都会自动做自动包导入或者将未引用的包去除的工作。当然,这样设置了之后,使用到了但却没有导入(import)的包一定要记得自己手动确保导入。方便性两者不可兼得...阅读全文

博文 2020-04-18 17:32:48 陆满庭

双11同款!阿里云发布全局事务服务GTS:每秒处理10万笔事务

摘要: 5月30日,阿里云宣布全局事务服务产品GTS正式商用,每秒可处理10万笔事务,将分布式事务这个“贵族技术”变为“平民技术 ”,可解决跨数据库、消息、服务的分布式环境下的事务一致性问题,让开发者无需考虑复杂的事务问题,加速微服务落地,效率比传统的XA协议提升了10倍之多。 5月30日,阿里云宣布全局事务服务产品GTS正式商用,每秒可处理10万笔事务,将分布式事务这个“贵族技术”变为“平民技术 ”,可解决跨数据库、消息、服务的分布式环境下的事务一致性问题,让开发者无需考虑复杂的事务问题,加速微服务落地,效率比传统的XA协议提升了10倍之多。 分布式事务是企业在搭建微服务时无法绕过的一道墙,全局事务服务GTS可以将复杂分布式事务逻辑与具体的业务系统分离,实现分布式事务的生命周期...阅读全文

golang 网络编程之如何正确关闭tcp连接以及管理它的生命周期

欢迎访问我的个人网站获取更佳阅读排版 golang 网络编程之如何正确关闭tcp连接以及管理它的生命周期 | yoko blog (https://pengrl.com/p/47401/) 本篇文章部分内容涉及到tcp协议以及socket编程的通用底层知识。讨论的tcp连接对象皆为golang的net.conn对象。如果存在错误,请一定指正,谢谢。 先上结论 Read方法返回EOF错误,表示本端感知到对端已经关闭连接(本端已接收到对端发送的FIN)。此后如果本端不调用Close方法,只释放本端的连接对象,则连接处于非完全关闭状态(CLOSE_WAIT)。即文件描述符发生泄漏。 Write方法返回broken pipe错误,表示本端感知到对端已经关闭连接(本端已接收到对端发送的RST)。此后本...阅读全文

博文 2019-06-22 15:32:39 notokoy

企业打开云HBase的正确方式,来自阿里云云数据库团队的解读

摘要: 一、HBase的历史由来 HBase是一个开源的非关系型分布式数据库(NoSQL),基于谷歌的BigTable建模,是一个高可靠性、高性能、高伸缩的分布式存储系统,使用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 一、HBase的历史由来 HBase是一个开源的非关系型分布式数据库(NoSQL),基于谷歌的BigTable建模,是一个高可靠性、高性能、高伸缩的分布式存储系统,使用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase最初是以Hadoop子项目的形式进行开发建设,直到2010年5月才正式成为Apache的顶级项目独立发展。伴随着互联网时代数据的澎湃增长,HBase作为基础存储系统得到了快速发展与应用,大...阅读全文

Google公布实现Go 1.5自举的计划

本文转自InfoQ的公众号,分享给大家。 ​ Google最近公布了实现Go 1.5自举(Bootstrap)的计划。相关文档的作者是Go核心开发者Russ Cox,他在Go语言上已经耕耘了接近6年。据Russ介绍,Google就“如何从Go源码树中去除所有的C程序”已经酝酿了一年。 自举(Bootstrapping) 是这样的过程,“用要编译的目标编程语言编写其编译器(或汇编器)”。一般而言,自举有几个优势,比如: 用于测试被自举的语言; 支持使用通常更为高级、提供更多高级抽象的语言来编写编译器; 编译器也可以得益于语言层面的任何改进。 如前所述,Google在一年前就开始了从Go源码树中去除C代码的努力,转换计划分为5个步骤: 第1阶段——开发一个从C语言到Go语言的翻译器,将现有的C编...阅读全文

博文 2015-03-24 01:00:01 codemanship

Go结合windows dll开发程序

使用Go结合windows dll开发程序 Go程序有一个优点是很好地做到”跨平台”,一般开发的情况,我们使用内置的相关模块实现相关功能,通过 GOOS=操作系统代号 go build 就能编译出对应平台的二进制文件. 然后把二进制文件扔往对应的服务器无论是linux或windows, 基本都能正常运行. 但是Go也不是完全的跨平台,个别情况下并没有提供Windows下的相关方法,只能通过syscall包去调用Win库. 本文主要说说我们做跨平台的时候,针对windows的一些处理: 一种常见的方式是我们需要在go的代码里面使用个别的dll文件。 DLL是微软公司在微软视窗操作系统中实现共享函数库概念的一种实现方式。 这些库函数的扩展名是.DLL、.OCX(包含ActiveX控制的库)或者....阅读全文

博文 2020-03-13 01:32:55 哆啦在这A梦在哪

轻量高性能的任务队列系统Fireworq

Fireworq 是一个轻量、高性能、语言无关的任务队列系统。具有以下特性: 可移植性:适用于任何能使用 HTTP 的语言 可靠性:构建于 RDBMS (MySQL) 之上,即使任务队列进程死亡,也不会将任务丢失 可用性:支持主/备份节点。一个节点成为主节点,其他节点成为备份节点。当主节点挂了之后,备份节点将自动激活 可伸缩性:它始终与每个队列的单个调度程序一起运行 灵活性:支持多队列、延迟任务、任务重试 可维护性:支持在 Web UI 上进行管理,还提供了适合监控的指...阅读全文

开源项目 2017-12-27 14:00:03 网友

Go基本概念(1)

1.Go 的安装 1.1需要提前安装JDK 1.2安装Go server ubuntu系统: 预先下载好.deb安装包 dpkg -i go-server-${version}.deb 服务状态查看,启动,停止 sudo /etc/init.d/go-server status sudo /etc/init.d/go-server start sudo /etc/init.d/go-server stop Redhat安装: 预先下载好rpm包 rpm -i go-server-${version}.noarch.rpm 服务状态查看,启动,停止 相关安装文件: /var/lib/go-server 二进制文件,数据库文件 /etc/go pipeline配置文件/var/log/go-se...阅读全文

博文 2014-12-23 17:00:08 biheyu

go中的main函数和init函数

Go里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于package main)。这两个函数在定义时不能有任何的参数和返回值。虽然一个package里面可以写任意多个init函数,但这无论是对于可读性还是以后的可维护性来说,我们都强烈建议用户在一个package中每个文件只写一个init函数。 Go程序会自动调用init()和main(),所以你不需要在任何地方调用这两个函数。每个package中的init函数都是可选的,但package main就必须包含一个main函数。 程序的初始化和执行都起始于main包。如果main包还导入了其它的包,那么就会在编译时将它们依次导入。有时一个包会被多个包同时导入,那么它只会被导入一次(例如很多包可能都会用...阅读全文

博文 2015-06-18 09:09:13 rznice

Express作者TJ告别Node.js奔向Go

首先这是一篇翻译自TJ 的 Farewell Node.js ,我本人在看完这这篇文章之后确实是受到了一些冲击,但我并不认同作者的某些看法,比如我认为 Node.js 的package register 是其许多优势之一,反而 Go 在这方面却略显匮乏。 由于个人水平所限,在翻译的时候有许多不懂的地方,我也去作者博客、stackoverflow 上问了一些问题,获得了解答。翻译仍有许多不到位的地方,希望能获得指出意见。 PS. 作为一位Node.js 的入门菜鸟,感谢TJ 的付出,一路走好。 正文: 告别Node.js 离开Node.js领域 我一直与Node.js在生产中一起战斗了足够久的时间,很不幸的是,既然我已经不再喜欢从事这份工作,至少在此刻,这是我的正式告别。更重要的是,我需要维护...阅读全文

博文 2016-03-15 20:00:01 bamboolsu

go mobile 得生命周期事件

生命周期事件,就是状态从一个阶段切换成另外一个状态时触发的事件。所以我们可以看到 lifecycle.Event 的定义如下: 生命周期一共有下面四个阶段: lifecycle.StageDead, lifecycle.StageAlive, lifecycle.StageVisible, lifecycle.StageFocused, 具体定义如下图: 一个可以用来分析各个事件先后顺序的代码: // +build darwin linux package main import "log" import "golang.org/x/mobile/app" import "golang.org/x/mobile/event/lifecycle" import "golang.org/x/mo...阅读全文

Go 多态功能实现

Go 多态功能实现 Go本身不具有多态的特性,不能够像Java、C++那样编写多态类、多态方法。但是,使用Go可以编写具有多态功能的类绑定的方法。为什么这么说呢?因为Go使用struct构建类,根据不同类调用不同的方法。下面将展示如何使用Go编写多态功能。 package main import ( "fmt" ) type strCase struct{} type intCase struct{} func (text strCase) Add(x string, y string) string { return x + y } func (number intCase) Add(x int, y int) int { return x + y } func StartPolymorp...阅读全文

博文 2016-08-04 20:00:05 abcijkxyz

Go 的 JSON 处理库 gabs

Gabs 是一个用来处理动态或未知json结构的golang库。通过包装json.Marshal/json.Unmarshal的行为和map[string]interface{} 对象,Gabs提供了更大的便利性。 ![image](https://static.oschina.net/uploads/space/2016/0916/125723_GcnI_2432165.png) ### 解析和搜索 JSON

...

import "github.com/Jeffail/gabs"

jsonParsed, err := gabs.ParseJSON(...阅读全文

开源项目 2016-09-17 16:00:13 Jeffail

自动化部署运维工具TiDB Operator

TiDB Operator 是 [TiDB](https://www.oschina.net/p/tidb) 在 Kubernetes 平台上的自动化部署运维工具,借助 TiDB Operator,TiDB 可以无缝运行在公有云厂商提供的 Kubernetes 平台上,让 TiDB 成为真正的 Cloud-Native 数据库。 第一,使用传统的自动化工具带来了很高的部署和运维成本。TiDB 的分层架构对于分布式系统是比较常见的,各个组件都可以根据业务需求独立水平伸缩,并且 TiKV 和 TiDB 都可以独立使用。比如,在 TiKV 之上可以构建兼容 Redis 协议的 KV 数据库,而 TiDB 也可以对接 LevelDB 这样的 KV 存储引擎。 但是,这种多组件的分布式系统增加了手...阅读全文

浅谈GO语言中interface

接触了go语言已经有几个月的时间了,虽然大部分的系统包还不是很熟练,但是对于go也算是有一定的了解。go语言在语言的层面上并没有非常亮眼的地方。在效率方面,go语言不及c/c++,在移植性上go语言不及java,在高并发方面erlang也能做的很好。所以go会给人有一种很全能的感觉,在各个方面都做了适当的取舍。在开发效率上go会比较快些。 go语言中,interface是重点。在面向对象设计中,有组合优于继承这句话。go语言放弃了继承,在组合方面表现的很好。首先来看看interface的用法。interface有两种用法: 1,空接口,用过C/C++的人看了空接口的定义第一时间想到的就是C/C++中的void*。 var Businesser interface{} var IntData ...阅读全文

博文 2015-09-23 16:00:01 wenjianming

西天取经尚需要一个团队,App开发亦是如此

“将一切不可能变为可能!” 这正是互联网赋予这个时代的定义。 在移动互联网的发展进程中,app成就了手机在智能设备中的霸主地位,手机也同样成就了app无可限量的商业价值! 现如今,app已成为人们日常生活中再寻常不过的一种工具,在享受app带来便捷服务的同时,可能大家并不会关注开发一款app到底有多难,但对于很多移动创业公司,如何让业务能够快速落地,迈出产品到运营的第一步,却成为很多创业者头疼的问题。 那么,到底需要具备什么样的能力才能开发一款app呐?柚子君通过本文为你一一揭晓! 售前工程师 在大部分软件服务公司,每个项目都配有售前工程师的岗位,在立项时,需要具备一份完整的开发需求文档,前期准备的越充分,后续问题出现的几率就越少。 【具备技能】对不同产品的功能、技术实现、开发周期、行业技术...阅读全文

博文 2018-08-24 11:35:52 APICloud

[翻译]Go 版本 1 发布

文:http://blog.golang.org/2012/03/go-version-1-is-released.html —————-翻译分隔线—————- Go 版本 1 发布 今天,在 Go 编程语言的开发上标记了一个主要的里程碑。我们宣布 Go 版本 1,或者简称为 Go 1,定义了一个语言和一系列的核心库作为基础,用于创建可信赖的产品、项目和出版物。 Go 1 是 Go 的第一个发布,提供了二进制包。可用于 Linux、FreeBSD、Mac OS X 以及,令人非常兴奋的——Windows。 对于用户来说 Go 1 驾驭起来相当稳定。编写 Go 1 程序的人可以完全确信在大多数环境下,即使再过若干年,仍然无需对程序做任何修改,它还能编译和运行。类似的,编写关于 Go 1 书籍的...阅读全文

博文 2014-10-09 16:15:46 mikespook

Golang goroutine的生命周期及其控制权

开了goroutine如何才能退出呢?如何控制它并了解其生命周期?这里包括主动退出和外部的被动退出 一. 如何退出goroutine? 1. 主动自己退出: 经过多少时间后主动退出 (channel) func main() { var wg sync.WaitGroup quit := time.Tick(time.Second * 2) // 给个定时器 wg.Add(1) go func() { defer wg.Done() <-quit fmt.Println("over goroutine") return }() wg.Wait() fmt.Println("over all") } 通过context通知goroutine退出: func main() { var wg sy...阅读全文

博文 2018-11-24 19:34:40 Gopherzhang

区块链相关概念解说

最近在研究区块链,由于之前不了解这方面的概念,在学习过程中造成了很大的困扰,时不时冒出来的新名词都让我不知所谓,故此在此将一些相关的概念做一个简单的整理,希望能帮助到正在研究区块链技术的朋友。后续也会将学习成果分享出来,对区块链有兴趣的朋友可以加我的微信一起交流。 1.比特币 说区块链就不得不提比特币,08年10月31日,中本聪提出比特币设计白皮书 2008年10月31日中本聪提出比特币设计白皮书,比特币首次真正意义上实现了足够安全可靠的去中心化数字货币机制,比特币作为一种数字货币主要解决了现有金融货币系统的几个问题: 被掌握在发型机构手中; 自身的价值无法保证; 无法匿名化交易。 比特币与现有的金融货币最大的不同在于它不依靠特定的货币发行机构发行(即不需要类似央行这样的中央系统发行货币,所...阅读全文

博文 2017-06-29 14:07:19 梦想天空分为蓝

Mirantis决定采用Kubernetes作为 Openstack的生命周期管理工具

Mirantis是OpenStack的主要贡献者,今天他宣布将使用Kubernetes作为底层编排引擎重写其私有云平台。我们认为这是推进OpenStack和Kubernetes 社区伟大的一步。 Openstack的用户将会享受到Kubernetes带来的巨大的效率、可管理性与弹性的提升,同时他们的应用将能够使用更多的云原生模式。 在一个平台上管理基于容器与虚拟机的应用也让Kubernetes社区更加有信心。 ## 云原生路径 谷歌花了十几年时间开发、应用和提炼云原生计算的原则。云原生应用是: ● 容器封装,应用程序是由封装好的、可在多种环境重用的单元组成的 ● 动态调度,提高基础设施的效率和降低操作开销 ● 基于微服务,松耦合的组件大大...阅读全文

关于go语言的学习经历2:2017-1-8

ps:周末有时间学习,所以连记了两个笔记 关于go语言中的接口:接口赋值 go中的接口按《go语言编程》的介绍来讲,是非常重要的。 关于接口的实现,有一句概念性的话:Go语言中,一个类只需要实现了接口要求的所有函数,我们就说这个类实现了该接口 (重点) 比如有个接口(本不想用原书的例子,但是这么描述真的很简单) type Integer int//新增了一个基于int的类型 Integer type MyInterface interface {//这是一个接口 这是一个go语言接口 啊,这个接口就长这德行呀 Less(b Integer) Integer Add(b intteger) } 接下来是实现这个接口方式,根据概念而言 func (a Integer) Less(b Intege...阅读全文

博文 2017-01-08 14:00:06 Mr_Zhang_920717

企业网站推广有什么方法

企业网站推广的主要方法 对于企业建站来讲,做一个网站最主要的目的就是为了能够把自己推出去,让用户知道你,搜索到你。如果网站推广做不好,那你做这个网站等于完全起不到作用,能为你企业带来效益的网站才是好网站,不光要外表绚丽,还要让被人看的到你才行。 企业推广的方法: 一、 网站内部优化 做企业网站推广最核心,最重要的一步就是你自身网站的优化。如果自身站优化都没做好,那到了做外部推广的时候就不能得到更好的效果。 网站内部优化: 1. 内容页面的优化 2. 页面关键词的选择 3. 网站布局 4. 栏目分类 5. 网站地图 6. 页面之间的跳转 二、 外部推广 一般外部推广就是我们统称的外链,做外链有多种方法。每一种不同的方法得到的效果也不一样。投放外链每个做...阅读全文

运维架构服务监控Open-Falcon

摘要:监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。一、 介绍监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。之后,随着业务规模的持续快速增长,监控的对象也越来越多,越来越复杂,监控系统的使用对象也从最初少数的...阅读全文

博文 2017-10-12 08:38:14 肆虐的悲傷

Go 1.13设置代理

在Go 1.13中,我们可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理。 设置GOPROXY代理: go env -w GOPROXY=https://goproxy.cn,direct 设置GOPRIVATE来跳过私有库,比如常用的Gitlab或Gitee,中间使用逗号分隔: go env -w GOPRIVATE=*.gitlab.com,*.gitee.com 如果在运行go mod vendor时,提示Get https://sum.golang.org/lookup/xxxxxx: dial tcp 216.58.200.49:443: i/o timeout,则是因为Go 1.13设置了默认的GOSUMDB=sum.golang.org,这个网站是...阅读全文

博文 2019-09-05 17:32:46 shallot

Go 1.7 中值得关注的几个变化

零、从Release Cycle说起 从Go 1.3版本开始,Golang核心开发Team的版本开发周期逐渐稳定下来。经过 Go 1.4 、 Go1.5 和 Go 1.6 的实践,大神 Russ Cox 在 Go wiki 上大致定义了 Go Release Cycle 的一般流程: 半年一个major release版本。 发布流程启动时间:每年8月1日和次年2月1日(真正发布日期有可能是这个日子,也可能延后几天)。 半年的周期中,前三个月是Active Development,then 功能冻结(大约在11月1日和次年的5月1日)。接下来的三个月为test和polish。 下一个版本的启动计划时间:7月15日和1月15日,版本计划期持续15天,包括讨论这个major版本中要实现的主要功能...阅读全文

博文 2016-08-18 04:00:03 wming0523

Logrus源码阅读(2)--logrus生命周期

上一篇介绍logrus的基本用法, 本篇文章介绍logrus的整个生命周期 func main() { log.Info("hello logrus") } 从上面这个简单的例子, 追踪logrus的整个生命周期 初始化 // exported.go:L108 func Info(args ...interface{}) { std.Info(args...) } Info函数的参数是一个可变参数, 接收任意类型的参数 // exported.go:L11 var ( // std is the name of the standard logger in stdlib `log` std = New() ) func StandardLogger() *Logger { return st...阅读全文

博文 2019-10-09 22:32:44 aside section ._1OhGeD

现代企业应用架构-使用Docker CaaS交付敏捷的、可移植的、受控的应用

年初,火得发烫的独角兽IT公司Docker发布了一款新的企业级产品 Docker Datacenter (简称:DDC)。作 为拥有原生Docker容器技术的公司,其每个市场动作都会让轻量级容器生态圈内的公司不敢小觑。而要揣度Docker对商业改变的理解、对容器 技术栈应用的理解以及对新产品和服务在生态圈中的定位,就有必要对Docker的这款产品做一些比较深刻的了解。而其技术白皮书 恰是我们了解 Docker该产品的入口。这里我就基于自己对容器相关技术栈的粗浅理解,翻译一下这篇篇幅不长的技术白皮书,希望能给大家带来些许帮助。 标题:现代企业应用架构-使用Docker CaaS交付敏捷的、可移植的、受控的应用 译文全文如下: 摘要 开发人员不接受被锁住的平台。就像《金发小女孩和三只熊》 故事那...阅读全文

重磅干货免费下载!阿里云RDS团队论文被数据库顶会SIGMOD 2018收录

摘要: 来自阿里云RDS团队的论文“**TcpRT: Instrument and Diagnostic Analysis System for Service Quality of Cloud Databases at Massive Scale in Real-time” (TcpRT:面向大规模海量云数据库的服务质量实时采集与诊断系统)**被数据库顶会SIGMOD 2018收录。 ACM SIGMOD数据管理国际会议是由美国计算机协会(ACM) 数据管理专业委员会(SIGMOD)发起、在数据库领域具有最高学术地位的国际性学术会议。 SIGMOD和另外两大数据库会议VLDB、ICDE构成了数据库领域的三个顶级会议。相对而言,SIGMOD比另外两个会议的含金量更高,被录取的难度...阅读全文

[易学易懂系列|rustlang语言|零基础|快速入门|(6)]

有意思的基础知识 我们现在回过头来看看,一些基础知识。 因为理解了前面的重要概念:所有权,借用,生命周期。 我们现在看基础知识就很简单了。 先看变量定义: let a = true;//rust不要求显式定义类型,编译器女王自动会根据上下文和用途,来自动定义类型,这里 //是:bool let b: bool = true;//如果显式定义类型,则通过:分号+类型 let (x, y) = (1, 2); let mut z = 5; z = 6; 在rust,这些变量定义叫变量绑定。 为什么这样说?因为rust的变量,默认是不可变的。 如果,要变成可变变量,要用关键字:mut。 那如果是常量呢? 看代码: 常量(const): const N: i32 = 5; 静态变量(static):...阅读全文

Docker

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

非技术型产品新人如何看待开发给出的工期?

非技术出身的产品经理,想必在从事产品工作前都会问,做产品需要技术基础吗?而大部分人都会告诉你,产品经理不会技术也可以。真是这样么? 那对于非技术出身的产品经理而言,如何看待开发给出的工期呢?比如在我面前说一个月,在老板面前说一个周,这个怎么破? 其实,对于非技术出身的产品经理,很难判断开发工期,但也不是完全没法解决,我们可以通过以下这两个方面提升自己来解决。 一方面,作为产品经理,你需要有长期的经验积累。做产品,有一方面的能力叫做技术理解力,技术理解力对于非技术出身的产品经理非常重要,应该不断的去学习跟产品相关的技术、大概逻辑,不用了解具体的细节,但应该大概知道大概逻辑,复杂程度,大概框架,并进行一定的学习,多和技术同学请教,培养自己的技术理解力。 另一方面,工期的评...阅读全文

为什么选择使用Go语言

为什么选择使用Go语言 国内很多云创业公司都会选择把Go作为首要语言,例如DaoCloud。为什么会选择Go呢?与其他语言的应用相比,它有什么优点呢? 1、学习曲线 它包含了类C语法、GC内置和工程工具。这一点非常重要,因为Go语言容易学习,所以一个普通的大学生花一个星期就能写出来可以上手的、高性能的应用。在国内大家都追求快,这也是为什么国内Go流行的原因之一。 2、效率 Go拥有接近C的运行效率和接近PHP的开发效率,这就很有利的支撑了上面大家追求快速的需求。 3、出身名门、血统纯正 之所以说Go出身名门,是因为我们知道Go语言出自Google公司,这个公司在业界的知名度和实力自然不用多说。Google公司聚集了一批牛人,在各种编程语言称雄争霸的局面下推出新的编程语言,自然有它的战略考虑。...阅读全文

Go框架解析-gin

前言 今天是我golang框架阅读系列第三篇文章,今天我们主要看看gin的框架执行流程。关于golang框架生命周期源码阅读下面是我的计划: 计划 状态 Go框架解析-beego done Go框架解析-iris done Go框架解析-gin done Go框架解析-echo doing Go框架解析-revel doing Go框架解析-Martini doing 再完成各个golang框架生命周期的解析之后,我会计划对这几个框架的优略进行一个系列分析,由于业内大多都是性能分析的比较多,我可能会更侧重于以下维度: 框架设计 路由算法 第一波我们主要把重点放在框架设计上面。 安装 上次阅读iris我们使用的glide安装的,今天我们安装gin尝试下使用gomod,具体步骤如下。 使用go ...阅读全文

博文 2019-07-08 09:02:39 TIGERB

轻量级可组合的 routerchi

chi 是一个轻量级可组合的 router,用于构建 Go HTTP 服务,支持 Go 1.7+。它特别擅长帮助编写大型 REST API 服务,这些服务随着项目的增长和变化而保持可维护性。chi 基于 Go 1.7 中引入的新 context 包,用于处理 handler 链中的信令、取消和请求范围值。 chi 的设计的关键考虑因素是:项目结构、可维护性、标准 http 处理程序(仅限 stdlib)、开发人员生产力以及将大型系统解构为许多小部件。 特性: **轻量** - 核心代码小于 1000 行 **快** - [benchmarks](https://github.com/go-chi/chi#benchmarks) **完全兼容 net/http** **模块...阅读全文

有软件开发,就要有软件测试!

移动app市场很大且还在不断发展。有多大呢?两个最流行的移动平台,iOS和Android,为我们提供了一些数据: ▪▪ 1,250,000个可供下载的 app(去年增长了85%) ▪▪ 63,000个新提交的app(并没有全部通过) ▪▪ 每月20亿的下载量 ▪▪ 765,000,000名活跃的iOS和Android用户 ▪▪ 70,000名专门的app开发员 这些数据是相当惊人的。哪儿有软件开发,哪儿就(应该)有测试!本文中,我会试着回答以下问题:移动app测试需要专业测试知识吗?还是只要常识就行?接下来,我会分析测试移动app和“常规”软件的区别并试着找出答案。 测试策略中的变化 当然,一个好的测试策略是基于产品风险分析的。“常规”...阅读全文

Redis之父:如何成为一个高效的程序员?

作者|antirez 编辑|薛命灯 Fred Brooks(《人月神话》的作者)最早在他的论文“没有银弹——软件工程的本质和偶然性(No Silver Bullet - Essence and Accidents of Software Engineering)”中提出了“10x程序员”的概念。技术社区对于这个概念呈现出两级分化的观点。Redis之父Salvatore Sanfilippo(antirez)列出了9种特质,他认为,如果一个程序员同时具备了这9种特质,那么就可以说他是一个10x程序员。以下内容已获得antirez的翻译授权。 一个10x程序员,在相同条件下,可以完成十倍于普通程序员的工作。这里所说的“普通程序员”,是指那些能够胜任自己工作的程序员,只是他们不具备10x程序员的神...阅读全文

Go Commons Pool发布以及Golang多线程编程问题总结

趁着元旦放假,整理了一下最近学习Golang时,『翻译』的一个Golang的通用对象池,放到 github Go Commons Pool开源出来。之所以叫做『翻译』,是因为这个库的核心算法以及逻辑都是基于 Apache Commons Pool 的,只是把原来的Java『翻译』成了Golang。 前一段时间阅读kubernetes源码的时候,整体上学习了下Golang,但语言这种东西,学了不用,几个星期就忘差不多了。一次Golang实践群里聊天,有人问到Golang是否有通用的对象池,搜索了下,貌似没有比较完备的。当前Golang的pool有以下解决方案: sync.Pool sync.Pool 使用很简单,只需要传递一个创建对象的func即可。 var objPool = sync.Po...阅读全文

博文 2016-01-19 10:37:26 jolestar

Apache的Mesos和Google的Kubernetes 有什么区别?

Apache的Mesos和Google的Kubernetes 有什么区别?本文来自StackOverFlow上的一个问题,主要讨论Mesos和Kubernetes的区别,相信我们很多人也有同意的疑问。 Kubernetes的开发者Craig回答了这个问题,同时masi也做了概述,不一定对,供读者参考。Kubernetes主要针对容器集群,而 Mesos适用于任何的框架和应用,所以Kubernetes可以运行于Mesos上。Kubernetes是一个开源项目,它把谷歌的集群管理工具引入到虚拟机和裸机场景中。它可以完美运行在现代的操作系统环境(比如CoreOS 和Red Hat Atomic),并提供可以被你管控的轻量级的计算节点。Kubernetes使用Golang开发,具有轻量化、模块化、便...阅读全文

tm域名注册要求

说起TM,给人的第一印象就是商品上TM标志。在生活上,我们都知道TM就是商标的意思,带有TM的商品都会给人一种品质的保障。放在域名届里,.tm域名也不例外,带有.tm后缀的域名网站,给浏览用户的第一印象就是觉得这个网站是个正规网站、知名网站。那tm域名怎么样注册呢?注册tm域名有什么要求呢? 首先你要了解注册tm域名的要求: 1. 两位以下含两位的域名被注册局保留,两字的ISO3166国家代码,国家名称都被注册局保留 2. 人或单位均可注册,根据国际惯例遵循先申请先注册的原则。在此前提下为体现公平原则,优先受理权益所有人的注册申请 3. 首尾不能有:- 、+、 @、&、空格等字符 4. 年限与线下商标同步,必须注册十年 5. tm域名续期宽限期是30天 ...阅读全文

API网关使用教程

课程介绍 API 网关(API Gateway),提供API托管服务,涵盖API发布、管理、运维、售卖的全生命周期管理。辅助用户简单、快速、低成本、低风险的实现微服务聚合、前后端分离、系统集成,向合作伙伴、开发者开放功能和数据。 产品详情:https://www.aliyun.com/product/apigateway 课时列表 • 课时1:创建一个 API • 课时2:如何调用 API • 课时3:如何生成和使用 SDK • 课时4:如何设置流量控制 • 课时5:这些地方容易出错 开始学习http://click.aliyun.com/m/27880/ ...阅读全文

GO语言垃圾回收机制

常见的垃圾回收方法: 引用计数:对每个对象维护一个引用计数,当引用该对象的对象被销毁时,引用计数减1,当引用计数器为0是回收该对象。 优点:对象可以很快的被回收,不会出现内存耗尽或达到某个阀值时才回收。 缺点:不能很好的处理循环引用,而且实时维护引用计数,有也一定的代价。 代表语言:Python、PHP 标记-清除:从根变量开始遍历所有引用的对象,引用的对象标记为"被引用",没有被标记的进行回收。 优点:解决了引用计数的缺点。 缺点:需要STW,即要暂时停掉程序运行。 代表语言:Golang(其采用三色标记法) 分代收集:按照对象生命周期长短划分不同的代空间,生命周期长的放入老年代,而短的放入新生代,不同代有不能的回收算法和回收频率。 优点:回收性能好 缺点:实现复杂 代表语言: JAVA ...阅读全文

依赖管理工具漫谈--从Maven,Gradle到Go

本文从Maven谈起,分析了Maven的主要思想以及Gradle对Maven的改进,最后谈了下Go语言面临的依赖管理问题。 为什么要有依赖管理工具? 谈依赖管理之前我们先谈谈为什么要有依赖管理工具这东西。 我们学了一种编程语言,然后写了个『Hello World』,然后宣称自己学了一门语言,这时候确实不需要关心依赖问题。 然而,当你要写一个稍微复杂点的应用,那怕就是留言板这样的,需要读写数据库,就需要依赖数据库驱动,就会遇到依赖管理的问题了。 再进一步,你写了一个库,想共享给别人使用,更需要了解依赖管理的问题。 当然,如果项目足够简单,你可以直接将依赖方的源码放置在自己的项目中,或者将依赖库的二进制文件(比如jar,dll)放置在项目的lib里。要提供给别人呢?把二进制包提供下载或者给别人传...阅读全文

小猿圈之解读Go语言的特点?

随着互联网的不断发展,语言也在不断的更新,现在时代正在走向数据化、人工智能的新时代,python、Go语言开始崛起,python已成为当今时代的主流,go语言也开始流行,现在正在向Go发展,越来越多的公司需要这门技术,薪资也在不断提升,那小猿圈为你解读Go语言的特点都有哪些?一、什么是Go语言Golang(GO)是由Google在2009年推出的编程语言,是一门全新的、现代的、语法简洁并容易上手的编程语言,是具备独立的运行时库,就像C语言一样。大神们创建Go语言的初衷是:近十年来开发程序之难让我们有点沮丧,于是Go诞生了。二、Go语言的特点1、学习曲线容易Go语言语法简单,包含了类C语法。因为Go语言容易学习,所以一个普通的大学生花几个星期就能写出来可以上手的、高性能的应用。Go语言的语法特...阅读全文

博文 2019-06-10 15:32:51 小猿圈加加