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

go语言坑之list删除所有元素

go提供了一个list包,类似python的list,可以存储任意类型的数据,并提供了相应的API,如下: type Element func (e *Element) Next() *Element func (e *Element) Prev() *Element type List func New() *List func (l *List) Back() *Element func (l *List) Front() *Element func (l *List) Init() *List func (l *List) InsertAfter(v interface{}, mark *Element) *Element func (l *List) InsertBefore(v i...阅读全文

博文 2017-04-13 07:18:12 songleo

大佬带玩-一个旧手机的威力

这里的手机指安卓机。 大家都知道安卓机用的是Linux内核,所以理论上Linux可做的事情,手机都能做,下面列举一些有意思的事情。 必备技能: 会Linux。 安装Linux发行版 其实这个比较简单,只需装一个App, 但是有些技巧可以讲讲。 所需材料 安卓手机 必须 拥有公网IP的机器 非必须 无限流量卡 非必须 root权限 必须 Root root手机根据手机信号的不同,会有不同的办法,所以这里就不细讲,请自行百度,或google. 安装linux deploy 通过某个应用市场下载并安装 在线安装 在线安装是比较扯淡的,因为在国内实在是比较慢的,原因你懂的。 离线安装 通过以下地址可下载自己所需的镜像 http://sourceforge.net/projects/linuxonan...阅读全文

博文 2018-10-27 19:34:40 还未如愿见着不朽365

十年•杭研技术秀 | “网易云存储服务”从0到1发展之路

欢迎访问网易云社区,了解更多网易技术产品运营经验。2016年对于网易杭州研究院(以下简称“杭研”)而言是重要的 – 成立十周年之际,杭研正式推出了网易云。“十年•杭研技术秀”系列文章,由杭研研发团队倾情奉献,为您展示杭研那些有用、有趣的技术实践经验,涵盖云计算、大前端、信息安全、运维、QA、大数据、人工智能等领域,涉及前沿的分布式、容器、深度学习等技术。正是这些宝贵的实践经验,造就了今天高品质的网易云产品。本文的分享来自网易杭州研究院云计算平台产品部,翔实地描述了网易云存储系统从无到有以及一路披荆斩棘不断完善的历程。 一、从0诞生 2012年云计算在业界已经风起云涌,其为企业带来的价值为世界所认同,按需提供的计算、存储、网络等底层IaaS基础设施,以及丰富的PaaS和SaaS服务,为IT公司...阅读全文

博文 2018-11-23 01:34:43 yijian2595

《Go语言编程》【2.7 完整示例】的错误

今天看《Go语言编程》再次发现了两处错误,一处是目录名称algorithms,根据上下文推测,目录名应当是没有最后一个字幕s的algorithm,因为最后main主程序import导入包时、调用排序函数时,以及编译环节时,都采用了algorithm,书中结构如下图: 这个名字同时按照书中所示的程序目录结构编译会报错: can't load package cannot find package 经过重新整理,修改成如下目录结构后编译不再报无法加载包和无法找到包的错误: 下图是修改成正确结构后编译和运行程序的结果: 本文出自 “松松” 博客,请务必保留此出处http://dongsong.blog.51cto.com/916653/158890...阅读全文

博文 2014-12-11 22:00:06 董松

如何正确理解消息送达成功率?

初接触极光推送的使用者,为了衡量消息推送的质量。经常会纠结到消息的"送达率"这个概念.那么究竟什么是送达率呢?或者如何正确理解消息的送达情况呢?   基本概念   先来看与消息送达相关的几个基本概念:   iOS 目标用户数:匹配推送条件的 iOS 用户的数量。   iOS 推送成功数:推送到 APNS 并被 APNS 成功接收的数量。如果 device token 变更,过期或者与推送环境不匹配则不会成功。   Android 目标用户数:匹配推送的条件的Android 用户数(1个月内与服务器有过连接的用户。如果超过1个月都没有与 JPush server 产生任何连接,那么将不向此用户推送)。   Android 在线推送数:消息推送时,目标用户在线...阅读全文

如何用QuickBI制作图表联动的销售报表

摘要: 在仪表板的制作实践中,大家经常有这样的需求:点击仪表板中某个图表控件中的某个区域,仪表板中和这个图表控件相关的其他图表控件的内容就根据当前被选择区域对应的维度的维度成员的内容发生联动。本文以阿里云数加QuickBI的数据建模中提供的样例数据集为例,如何制作一张图表联动的仪表板。在仪表板的制作实践中,用户经常有这样的需求:点击仪表板中某个图表控件中的某个区域,仪表板中和这个图表控件相关的其他图表控件的内容就根据当前被选择区域对应的维度的维度成员的内容发生联动。以阿里云数加QuickBI的数据建模中提供的样例数据集为例,我们在下面描述如何制作一张多图关联的仪表板。该仪表板由两个图表控件组成,分上下两部分,上面为一个饼图,内容为区域利润数据。下面为一个交叉表,内容为区域内的城市的销售和利润...阅读全文

博文 2017-07-19 09:15:10 yuun

Kubernetes利用Patroni部署高可用PostgreSQL(1)-- 准备

部署高可用的PostgreSQL一直都是一个比较麻烦的事情,因为官方或者社区并没有一个official的解决方案。由于项目需要,所以花了一些时间去调研并且实践了一些关于PostgreSQL的主流HA方案,包括:Crunchy, Stolon 和 Patroni, 还有就是pgpool+repmgr这种方案。看到网上关于Stolon的blog有一篇,但是那篇其实是翻译人家老外的,结果被到处转发(说明我们还是懒喜欢别人汉化的)。在国内外暂时还没找到Patroni在Kubernetes上部署的Blog。所以这里就简单分享一下,以便大家以后有遇到问题可以相互帮助。 方案选型 几种方案简单比较一下: 首先repmgr这种方案的算法有明显缺陷,非主流分布式算法,直接pass; Stolon和Patron...阅读全文

博文 2019-03-17 18:34:41 大雄good

图解Golang的垃圾回收(GC)算法

虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。 以下是Golang GC算法的里程碑: v1.1 STW v1.3 Mark STW, Sweep 并行 v1.5 三色标记法 v1.8 hybrid write barrier 经典的GC算法有三种: 引用计数(reference counting)、 标记-清扫(mark&sweep)、 复制收集(CopyandCollection)。 Golang的GC算法主要是基于 标记-清扫(markandsweep)算法,并在此基础上做了改进。因此,在此主要介绍一下标记-清扫(mark and sweep)算法,关于引用计数(reference counting)和复制收...阅读全文

博文 2019-04-13 01:34:39 豆瓣奶茶

Go打印函数printf格式简介

fmt.print参数规约 printf输出规约是按照预定义好的参数格式输出的,参数和对应说明如下表所示。 parameter description %d decimal integer %x, %o, %b integer in hexade cimal, octal, binar y %f, %g, %e floating-p oint number: 3.141593 3.141592653589793 3.141593e+00 %t boole an: true or false %c rune (Unico de co de point) %s string %q quoted str ing “abc” or rune ‘c’ %v any value in a natural...阅读全文

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

Java、Scala、Go以相同方式实现快速排序代码量比较

在程序猿的世界,语言之争是个永恒的话题,在此,我想说:让争论来的更猛烈些吧。 在此,我要用相同的方式实现快速排序。首先,我们简单的回顾一下什么是快速排序。 快速排序: 快排的精髓在于”分治“。注意:这是两个方面,”分“讲的是利用所选的元素(往往是第一个元素,在此命名为Key),以Key为分水岭将列表分为:比Key元素大的和比Key元素小的两部分;”治“讲的是将分开的两部分以同样的方式(”分”的方式)继续排序,直至完全排完。如下图所示: 很显然,用“递归”的方式是很不错的。下面,每个语言用最最简洁的方式实现这个排序,然后比较一下代码量: 给出的需要排序的序列是:6、2、7、3、9、4、8、5 JAVA: private void setQuickSort(int[] array,int lef...阅读全文

博文 2016-03-04 16:00:00 i6448038

Win7安装golang开发环境--备忘录

首次接触golang,很多东西不熟悉,Git也没有安装。 1 安装golang 1.1 下载golang 我是在Golang中国的下载频道下载的golang1.6。链接如下: http://www.golangtc.com/download 我选择了64位的 go1.6.windows-amd64.msi 这个文件,安装后GOROOT和path等环境配置自动完成。 我们只需要另行配置GOPATH即可。 1.2 配置GOPATH 添加GOPATH系统环境变量;如下图所示: 然后在CMD命令行工具中通过go命令查看环境配置信息。如下图所示 2 安装Sublime Text 3 2.1 下载Sublime Text 3 官网能够访问,下载链接是:http://www.sublimetext.com...阅读全文

博文 2016-04-13 16:00:02 tom06

go语言学习笔记一基本变量

通过看goclipse文档终于将环境搭建完成,本笔记是自己学习过程中产生的,用于自己复习和交流,希望大家多多指点: 第一个go程序: package main import ( "fmt" //我们需要使用fmt包中的Printf()函数 ) func main(){ fmt.Printf("hello world for jackLiang") } 其中要点解读: 1、package 表示go代码所属的包 2、要生成GO可执行程序,必须建立一个main()函数(不能代参数,也不能定义返回值) 3、go语音中所有函数必须以关键字func开头 4、go程序的代码注释与C++保持一致: /* 块注释 */ /// 行注释 变量与变量声明 go变量的声明方式与C和C++有所不同的,go语音引入了关...阅读全文

博文 2014-10-04 19:26:39 jacking124

golang变量作用域问题

func f()(string,error){ return "test scope of variable",nil } func main() { var name string if name,err := f();nil ==err{ println(name) } println(name) fmt.Println("Hello, 世界") } 上面的例子输出: test scope of variable =============(空行) Hello, 世界 期望是: test scope of variable test scope of variable Hello, 世界 原因分析: golang一旦遇到:=这个符号,如果在不同一个作用域中,就会新定义个变量,如果在同一个...阅读全文

博文 2015-06-17 20:04:00 rufidmx

让我们一起Go(十二)

前言: 上篇中,我们讲到了在Go语言中如何定义方法,今天,我们将进一步深入Go语言的面向对象编程。 一、Go语言中的接口 首先来看一个最基本的接口: 和定义一个结构体类似,只不过将struct换成了interface,然后声明了两个函数:draw()和count()。就这么简单,一个接口就定义好了,那么如何实现接口呢?在java中我们会让一个类去实现接口,在实现的时候必须用implements关键字显示声明去实现,如: class myshow implements show{...} 在Go语言中,不需要这么做,我们要做的只是去实现接口声明的所有函数就可以了,如下所示,就实现show这个接口: 上面代码,我们的osArgs结构体实现了文章开头给出的show这个接口。其实就是用到上一篇的内容...阅读全文

博文 2015-09-05 00:00:00 a6652162

Windows下Go语言的环境搭建

在本地搭建了一个开发GO语言的开发环境,给大家分享一下用go语言写的第一个hello world的过程,希望对大家有所帮助。 1.想写GO语言首先得下载go语言的开发包 官方下载地址:https://code.google.com/p/go/downloads/list 我用的是Win7 64位的操作系统,截图如下: 2.把下载好的文件解压到你想解压的文件夹下,解压到的是C盘的根目录下,文件命名为go,然后是设置环境变量: 计算机->属性 ->高级系统设置 -> 环境变量 在系统变量里的Path里面加上C:\go\bin,如下图所示: 测试环境变量是否设置成功: 在CMD里运行go命令,出现如下界面说明设置环境变量成功: 3.在Eclips上安装goclips插件: (1).打开Eclips...阅读全文

博文 2014-11-09 21:00:08 allyes001

你好,Go

你好,Go Go语言是一门类似C语言的编译型语言,它的编译速度非常快。这门语言的关键字一共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 本章中,笔者将带领你去学习Go语言的基础。通过每一小节的介绍,你将发现,Go语言的世界是多么简洁,设计是如此美妙,编写Go语言将会是一件愉快的事情。等回过头来,你就会发现这25个关键字是多么亲切。 在开...阅读全文

博文 2014-10-11 21:00:01 broadview2006

使用协程来模拟发送post请求,但是服务器端没有接收到数据?

package main import ( "fmt" "io/ioutil" "net/http" "net/url" "strings" "strconv" ) func testmulti(flag int){ v := url.Values{} v.Set("name",strconv.Itoa(flag)+"-------") body := ioutil.NopCloser(strings.NewReader(v.Encode())) //把form数据编下码 client := &http.Client{} req, _ := http.NewRequest("POST", "http://new.xx.com.cn/t...阅读全文

Python类方法如何调用?

  类的方法的定义   1.def fun_name(self,...);   Pass   2.其中的参数self代表类的实例,在调用方法时由系统自动提供   3.方法定义时必须指明self参数   类的方法的调用   与普通的函数调用类似   1.类的内部调用:self.<方法名>(参数列表)。   2.在类的外部调用:<实例名>.<方法名>(参数列表)。   注意:以上两种调用方法中,提供的参数列表中都不用包括self。   演示一个类:   wash.py   class Washer:   def __init__(self):   self.water = 0   self.scour ...阅读全文

go语言defer使用

defer Go语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。如下代码所示,我们一般写打开一个资源是这样操作的: func ReadWrite() bool { file.Open("file") // 做一些工作 if failureX { file.Close() return false } if failureY { file.Close() return false } file.Close() return true } 我们看到上面有很多重复的代码,G...阅读全文

博文 2015-01-22 13:00:02 chuanheng

通过 Jaeger 上报 Go 应用数据

在使用链路追踪控制台追踪应用的链路数据之前,需要通过客户端将应用数据上报至链路追踪。本文介绍如何通过 Jaeger 客户端上报 Go 应用数据。 背景信息 数据是如何上报的? 不通过 Agent 而直接上报数据的原理如下图所示。 Report Tracing Data Directly 通过 Agent 上报数据的原理如下图所示。 Report Tracing Data By Agent 如何获取接入点信息? 登录链路追踪控制台,在概览页面上打开查看 Token 开关。 单击需要使用的链路数据采集客户端(Jaeger 或 Zipkin)按钮。 在下方表格中相应地域的相关信息列中,单击接入点信息末尾的复制按钮。 Tracing Analysis Endpoint Section 提示:如果应用...阅读全文

博文 2019-05-19 16:43:59 8588ll

投票证明:基于投票机制和联盟封锁链的高性能一致性协议

Title:投票证明:基于投票机制和联盟封锁链的高性能一致性协议 Abstract:比特币引入了一种革命性的去中心化共识机制。然而,应用于公共区块链的比特币衍生共识机制不适合新兴联盟区块链的部署场景。我们提出了一种新的共识算法,即投票证明(POV)。协商一致由联合体合作伙伴控制的分布式节点协调,这些节点将通过投票进行分散仲裁。关键的想法是为网络参与者建立不同的安全身份,以便在不依赖第三方中介或无法控制的公众意识的情况下,由机构在联盟中的投票决定提交和验证区块。与完全分散的一致性工作证明(POW)相比,POV具有可控的安全性、收敛可靠性、只需一个块配置即可实现事务合理性和低延迟事务验证时间。 Index Terms:区块链,联盟区块链,共识,投票机制。 I、Introduction: 区块链源...阅读全文

博文 2019-02-17 11:17:18 1500250103

如何将本地数据库迁移到云数据库RDS上?

如何将本地数据库迁移到云数据库上? 使用数据传输服务 (DTS) 将本地数据库迁移到 阿里云的云数据库RDS,可以实现应用不停服务的情况下,平滑完成数据库的迁移工作。接下来我们将学习下如何使用DTS将本地数据库迁移到RDS上。 背景 DTS 支持 SQL Server 数据结构迁移和全量迁移。 1. DTS支持结构迁移的对象有:表、视图、表触发器、同义词、SQL 存储过程、SQL 函数、自定义类型、plan guid、rule、default。 2. 全量迁移 DTS 会将本地数据库迁移对象的数据全部迁移到目标实例。如果在迁移过程中有增量更新的话,这些增量不会被迁移到目标库。所以建议在业务无写入时,使用 DTS 进行全量数据迁移。 迁移限制 将本地数据库迁移到 RD...阅读全文

使用shadowsockets和SwitchOmega畅游互联网

作者: vangoleo官网: http://www.vangoleo.com/ss-visit-internet 背景 互联网本是一个开放、自由、精彩的世界。可是由于某些原因,很多网站在中国大陆是不能访问的,比如Google,Facebook。出于工作或者生活需要,尤其是对于技术开发者,设计师,科学上网是必需的。 为什么需要科学上网? Google:珍惜生命,远离某度。而且Google还提供了许多优质的服务,比如Gmail、文档、论文搜索等。 Youtube:有各种高质量的科技、开发类视频。 博客和论文:许多博客和论文都被墙了,比如Blogspot和Medium。 社交:Twitter和Facebook。 编程:许多语言的开发环境都需要翻墙,比如Golang和Rust。 科学上网的方式有多...阅读全文

博文 2019-10-19 19:02:39 vangoleo

Golang下bind: address already in use

今天测试给服务端发消息,结果忘了把端口正常关闭,再次启动时候发现进程运行不了,出现提示说端口地址被占用了,这是由于上次忘了关闭,导致端口还在被使用,所以只能自己在终端查找并手动关闭,具体方法如下: 在终端输入lsof -i:8000,查找被使用的端口,其中8000是端口号,如下图所示 查找结果.jpeg COMMAND表示进程名,PID表示进程编号,输入kill 4707 (4707就是PID) 如果还被占用,就输入kill -9 4707强制结束进程...阅读全文

博文 2018-12-19 15:34:50 单抽律化娜

Mac系统搭建Go语言Sublime Text 2环境配置

Go语言是谷歌自家的编译型语言,旨在不损失性能的前提下降低代码复杂率。其优势是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。 一、安装Golang的SDK 在官网http://golang.org/ 直接下载安装包安装即可。下载pkg格式的最新安装包,直接双击运行,一路按照提示操作即可完成安装。 安装完成后,打开终端,输入go,检测Golang SDK是否安装成功,如下显示,则表示安装成功: 你也可以输入go version 查看你所安装的Golang的版本 二、环境变量配置(GOPATH) GOPATH是用来告诉Golang命令和其他相关工具,在哪里可以找到你系统上的Go包目录。 GOPATH是一个路径列表,类似于PATH的设置: GOPATH=/home/US...阅读全文

博文 2016-03-16 03:00:01 wxd0108

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

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

Go之Json的struct tag

自“灰子学技术”公众号原文链接:https://mp.weixin.qq.com/s/W6yL8aqXvmU7Vyd0riWIJw最近使用go的json包的时候,有一个struct tag标识,关于它的使用规则如下所示:1.这个标识在json调用marshal做序列化操作的时候,会把key值解析为struct tag定义的值。2.如果没有这个标识,在Key值是大写的时候,会将这个值的名字解析为序列化之后的Key值。如果是小写就会忽略,这个是因为Go规定首字母是大写字母是公有,小写字母是私有导致的。问题:一旦我们需要json序列化之后的结果中的Key值名称,希望是小写字母的时候,我们该怎么办?答案就是用struct tag,因为它可以讲大写字母重名命成小写字母。例子:​备注:小写字母 Mars...阅读全文

go语言defer使用

go语言defer使用 分类: golang2013-09-27 12:53 34人阅读 评论(0) 收藏 举报 defer Go语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。如下代码所示,我们一般写打开一个资源是这样操作的: func ReadWrite() bool { file.Open("file") // 做一些工作 if failureX { file.Close() return false } if failureY { file.Close() r...阅读全文

博文 2015-04-26 05:00:07 legend_x

idea开发go

idea开发go 以我的idea版本,2016.1.3为例: 1 从idea插件官网下载开发go所需要的插件:官网地址: https://plugins.jetbrains.com/ go插件地址: https://plugins.jetbrains.com/plugin/5047?pr=idea 注意版本对应参照地址: https://github.com/go-lang-plugin-org/go-lang-idea-plugin 注意哪个版本的idea需要下载哪个版本的插件 2 下载完成之后,需要进行配置, 找File--Settings,这里有好几个插件项 All plugins 显示所有插件。 Enabled 显示当前所有已经启用的插件。 Disabled 显示当期那所有已经禁用的...阅读全文

博文 2016-08-04 20:00:04 君子兰1002

《Go语言编程》【2.7 完整示例】的错误

今天看《Go语言编程》再次发现了两处错误,一处是目录名称algorithms,根据上下文推测,目录名应当是没有最后一个字幕s的algorithm,因为最后main主程序import导入包时、调用排序函数时,以及编译环节时,都采用了algorithm这个名字,书中结构如下图:同时按照书中所示的程序目录结构编译会报错:can't load package cannot find package经过重新整理,修改成如下目录结构后编译不再报无法加载包和无法找到包的错误:下图是修改成正确结构后编译和运行程序的结果:本文出自 “松松” 博客,请务必保留此出处http://dongsong.blog.51cto.com/916653/158890...阅读全文

博文 2015-12-14 19:00:00 dongsong1117

容器时代的堡垒机LAIN Entry

**Entry** 是 LAIN 的 layer2 的一个特殊应用,允许开发者通过 `lain enter` 命令或者 console 的 web 界面远程登录到具有本人管理权限的容器中。 该效果等同于在 LAIN 的节点上执行 `docker exec -it $container_id /bin/bash`。 对于没有权限登录节点的开发者,使用 **Entry** 远程进入自己的容器调试是不错的选择。 使用前要注意 **Entry** 由于需要访问集群的特殊资源,必须要由集群管理员部署,Entry的管理员也必须只能是集群管理员。 **Entry** 使用前要确保集群的 sso 验证机制已经打开,否则客户端可以通过构造 http(s) 的 header 进入其他应用的容器。 整...阅读全文

开源项目 2018-05-02 18:30:00 网友

图解Go语言的gc算法

虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。 以下是Golang GC算法的里程碑: v1.1 STW v1.3 Mark STW, Sweep 并行 v1.5 三色标记法 v1.8 hybrid write barrier 经典的GC算法有三种:引用计数(reference counting)、标记-清扫(mark & sweep)、复制收集(Copy and Collection)。 Golang的GC算法主要是基于标记-清扫(mark and sweep)算法,并在此基础上做了改进。因此,在此主要介绍一下标记-清扫(mark and sweep)算法,关于引用计数(reference counting)和复...阅读全文

博文 2019-04-06 18:34:40 RyuGou

云计算后,Go 的下一个战场:游戏产业

Go 自诞生以来,因其简单高效的处理效率和对于并发的出色支持,得到开发人员的关注和实践。并在 2013 年随着重磅项目 Docker 的诞生和发展,逐步在云计算领域形成燎原之势。在占领了云计算后,Go 的下一个发力点将会在何方? 在 ECUG Con 十周年盛会上,七牛云 CEO、Go 首席布道师许式伟给出了他心中的答案:游戏行业。 以下是对他此次演讲的内容记录 作为一个技术型 CEO,我认为技术人员都是很纯粹的,以数据为导向,理性判断趋势,所以今天我会站在理性角度分析,来聊聊未来 Go 的趋势,重点是在游戏行业。 使用 Go 做游戏开发 图 1 Go@Mobile 由图 1 我们可以看出 Go 在 Mobile 的发展时间轴,从 12 年初开始,实际上最开始它的关注度并不高,直到 14 年...阅读全文

博文 2018-01-31 15:34:36 七牛云

Spring Boot 最佳实践(一)快速入门

一、关于Spring Boot 在开始了解Spring Boot之前,我们需要先了解一下Spring,因为Spring Boot的诞生和Spring是息息相关的,Spring Boot是Spring发展到一定程度的一个产物,但并不是Spring的替代品,Spring Boot是为了让程序员更好的使用Spring。说到这里可能有些人会迷糊,那到底Spring和Spring Boot有着什么样的联系呢? 1.Spring发展史 在开始之前我们先了解一下Spring,Spring的前身是interface21,这个框架最初是为了解决EJB开发笨重臃肿的问题,为J2EE提供了另一种简单又实用的解决方案,并在2004年3月发布了Spring 1.0正式版之后,就引起了Java界广泛的关注和热评,从此S...阅读全文

博文 2018-08-24 17:35:06 王磊的博客

Serverless 架构:用服务代替服务器

Serverless 架构:用服务代替服务器 转载本文需注明出处:EAII企业架构创新研究院(微信号:eaworld),违者必究。如需 加入微信群参与微课堂、架构设计与讨论直播请直接回复此公众号:“加群 姓名 公司 职位 微信号 ”。 还记得在十多年前,SaaS鼻祖SalesForce喊出的口号『No Software』吗?SalesForce在这个口号声中开创了SaaS行业,并成为当今市值520亿美元的SaaS之王。今天谈谈『No Server』有关的事, 继OpenStack、Docker 、MiscroService、Unikernel、Kubernetes和Mesos之后,ServerLess正成为Google、AWS乃至创业公司暗战的新战场,它能否成为云计算领域的颠覆性趋势? 我相...阅读全文

做JAVA开发的同学一定遇到过的爆表问题,看这里解决

**欢迎大家前往[腾讯云+社区](https://cloud.tencent.com/developer/?fromSource=waitui),获取更多腾讯海量技术实践干货哦~** > 本文由[净地](https://cloud.tencent.com/developer/user/1126000?fromSource=waitui)发表于[云+社区专栏](https://cloud.tencent.com/developer/column/3994?fromSource=waitui) > 记一次Java线上服务器CPU过载问题的排查过程,详解排查过程中用到的Java性能监测工具:jvisualvm、jstack、jstat、jmap。 背景:Java线上服务运行一周后,某个周六晚上CP...阅读全文

博文 2018-10-11 17:38:16 qcloudcommunity

golang 如何解析url中的多个参数

以下面的url为例,这个例子实际上是《go语言圣经》中7.7章节http.handler的一个例子。我们需要更新袜子socks的价钱为16,鞋子shoes的价格为100。我们把它们写到同一个url中。对于这种一个url有多个参数的情况该如何处理呢? http://localhost:8000/update?item=socks&price=16&item=shoes&price=100 使用如下的代码来查看请求参数。req.URL.Query()的返回值是Values类型,这个类型实际上是type Values map[string][]string,因此我们可以遍历这个map。 func (db database) update(w http.ResponseWriter, req *ht...阅读全文

博文 2020-04-21 17:36:02 yufeifly

DockOne微信分享(七十六):容器化ICT融合初体验

【编者的话】本次将分享的容器化ICT融合平台是一种面向未来ICT系统的新型云计算PaaS平台,它基于容器这一轻量级的虚拟化技术以及自动化的“微服务”管理架构,能够有效支撑应用快速上线和自动扩缩容,最大化IT基础设施资源利用率并降低总体拥有成本(TCO)。未来的网络正在向IT化、云化方向发展,容器与微服务技术,完美契合“网络即服务”、网络切片等发展理念,将有助于实现更加灵活、智能、高效和开放的5G新型网络。 2015年,NFV和容器无疑都是最热门的技术,被很多业内人士认为是未来的发展趋势;2016年,当NFV遇上容器,会碰撞出什么新的火花?当容器化的CT/IT业务在同一平台内融合部署,又会产生怎样新的体验?下面和大家分享一下,从2015年到2016年,我们做的容器化CT-IT融合方面的工作。I...阅读全文

博文 2017-06-25 16:25:12 yezi

Casbin 实现访问控制

简介 Casbin可以做到: 支持自定义请求的格式,默认的请求格式为{subject, object, action}。 具有访问控制模型model和策略policy两个核心概念。 支持RBAC中的多层角色继承,不止主体可以有角色,资源也可以具有角色。 支持超级用户,如 root 或 Administrator,超级用户可以不受授权策略的约束访问任意资源。 支持多种内置的操作符,如 keyMatch,方便对路径式的资源进行管理,如 /foo/bar 可以映射到 /foo* Casbin不能做到: 身份认证 authentication(即验证用户的用户名、密码),casbin只负责访问控制。应该有其他专门的组件负责身份认证,然后由casbin进行访问控制,二者是相互配合的关系。 管理用户列表...阅读全文

博文 2019-12-21 14:32:41 雨澍生

go 流程控制

载:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/02.3.md 流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑。Go中流程控制分三大类:条件判断,循环控制和无条件跳转。 if if也许是各种编程语言中最常见的了,它的语法概括起来就是:如果满足条件就做某事,否则做另一件事。 Go里面if条件判断语句中不需要括号,如下代码所示 if x > 10 { fmt.Println("x is greater than 10") } else { fmt.Println("x is less than 10") } Go的if还有一个强大的...阅读全文

博文 2016-04-10 01:00:00 yugongpeng_blog

Go在百万亿级搜索引擎中的应用

Poseidon 系统是由 360 开源的日志搜索平台,目前已经用到了生产环节中,可以在数百万亿条、数百 PB 大小的日志数据中快速分析和检索特定字符串。因为 Golang 得天独厚的支持并发编程,Poseidon 的核心搜索引擎、发报器、查询代理是用 Golang 开发的,在核心引擎查询、多天查询、多天数据异步下载中大量使用了 goroutine+channel 。大家上午好,我是郭军,很高兴今天在这里和大家交流。我今天演讲题目,Golang 在百万亿搜索引擎中的应用。Poseidon在希腊意思是海神,在这里是海量数据集的主宰者。之前我的工作一直面向海量用户,去年年中我接触大数据以及海量数据这样的场景,在今天的演讲中,主要会涉及以下几方面内容:设计目标Go 应用场景与遭遇的挑战怎样应对?开...阅读全文

博文 2017-09-18 07:05:02 肆虐的悲傷

Go语言之Once

自公众号“灰子学技术”,原文链接:https://mp.weixin.qq.com/s/DRjuGDwE04f0Yy9QvpYufAsync.Once是sync包中的一个对象,它只有一个方法Do,这个方法很特殊,在程序运行过程中,无论被多少次调用,只会执行一次。1.适用场景:在一个进程之中,如果一个函数里面的一部分代码,希望在很多协程都执行的时候,只被执行一次,那么Once便起到了作用。例如:初始化进程中的共享内存,它只希望被该进程初始化一次,其他协程不需要初始化操作。例子:​结果分析:从上面的输出结果可以看出,使用了once.Do之后,onceBody()函数中的代码只被调用了一次。其他的协程依然还在运行,但是并没有去执行onceBody()函数中的代码。2. 源码如下所示:Once的数据...阅读全文

博文 2019-12-23 14:21:23 ZhDavis

【新功能】GitCafe 已经支持 Go 语言 Package 托管

之前有用户希望 GitCafe 可以支持 go get,使其能够直接导入 GitCafe 上托管的代码。 现在,我们想要告诉各位一个好消息,为了方便更多的开发者,任何托管在 GitCafe 上的 Go 语言 package 都可以直接在项目中使用,通过 go get 工具安装和更新。 例如,我们可以在本机创建一个 hello_world.go 文件,内容如下: package main import "gitcafe.com/rainux/go-hello" func main() { hello.World() } 执行 go get -d 命令可以将 GitCafe 上托管的 go-hello 项目源代码安装到 $GOPATH 中;执行 go run hello_world.go 可以输...阅读全文

博文 2017-02-09 13:43:26 GitCafe

GO语言中间的derfer

defer Go语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行, 最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。如下代码 所示,我们一般写打开一个资源是这样操作的: func ReadWrite() bool { file.Open("file") // 做一些工作 if failureX { file.Close() return false } if failureY { file.Close() return false } file.Close() return true } 我们看到上面有很多重复的代码...阅读全文

博文 2016-06-13 14:00:01 zhangym

Go之一步步学习RabbitMQ(一)

本文来自公众号“灰子学技术”,原文链接:https://mp.weixin.qq.com/s/YDtJzDYn7EMeoupRFwrulg写在前面的话:最近笔者在学习RabbitMQ,便尝试着通过下面的学习过程,来尽量还原RabbitMQ为什么如此设计,以及它是如何解决这些问题的。当中如有不对或者理解偏差的地方,还请大家不吝赐教,多多留言。如果你觉得这篇文章真的帮到了你,还请你顺手转发下。背景知识:在学习RabbitMQ之前,我们需要对下面的知识有些概念,生产者(producer):产生并发送消息的程序。队列(queue):存在RabbitMQ中的邮筒,虽然消息是在应用程序和RabbitMQ中进行传递,但队列才是唯一能够存储消息的地方。队列的大小取决于宿主机器的内存和磁盘容量,它本质上是一个...阅读全文

博文 2019-11-04 08:47:02 ZhDavis

基于pinpoint改造的一种方式的思考【转】

1.Pinpoint简介 Pinpoint 是用 Java 编写的 APM(应用性能管理)工具,用于大规模分布式系统。在 Dapper(dapper.docx) 之后,Pinpoint 提供了一个解决方案,以帮助分析系统的总体结构以及分布式应用程序的组件之间是如何进行数据互联的。 它采用java agent 的方式对 jvm应用的无侵入的改造。同时对性能的影响非常小(只增加约3%资源利用率)。 支持以下模块。 tomcate 6/7/8,Jetty 9 Spring, Spring Boot Apache Http Client 3.x/4.x,JDK HttpConnector,GoogleHttpClinet,OkHttpClient,NingAsyncHttpClient Thrift...阅读全文

博文 2019-05-28 15:34:46 天草二十六_

Golang Array 数组 和 Slice 切片

一 数组简介 数组是内置(build-in)类型,是一组同类型数据的集合,它是值类型,通过从0开始的下标索引访问元素值。在初始化后长度是固定的,无法修改其长度。当作为方法的参数传入时将复制一份数组而不是引用同一指针。数组的长度也是其类型的一部分,通过内置函数len(array)获取其长度。 注意:和C中的数组相比,又是有一些不同的 1. Go中的数组是值类型,换句话说,如果你将一个数组赋值给另外一个数组,那么,实际上就是将整个数组拷贝一份 2. 如果Go中的数组作为函数的参数,那么实际传递的参数是一份数组的拷贝,而不是数组的指针。这个和C要区分开。因此,在Go中如果将数组作为函数的参数传递的话,那效率就肯定没有传递指针高了。 3. array的长度也是Type的一部分,这样就说明[10]in...阅读全文

博文 2015-06-17 20:17:24 Crazy__Programmer