-
GOLANG接口适配,组合方式的灵活接口演化
所属栏目:[大数据] 日期:2020-12-16 热度:139
原文:https://gocn.io/article/326 在OO(Object Oriented)原则中,有一条叫做:优先使用组合,而不是继承。虽然GOLANG并不是OO的语言(没有继承和多态),但是不妨碍GOLANG使用这条原则,而GOLANG的作者就强调过这一点,在GOLANG中是使用组合而非继承来扩展[详细]
-
golang代码案例
所属栏目:[大数据] 日期:2020-12-16 热度:106
1.网络 mgo nsq etcd consul[详细]
-
golang程序版本管理
所属栏目:[大数据] 日期:2020-12-16 热度:72
版本管理主要用于对运行程序的版本追踪,从而可以管理线上服务的运行版本,避免各个版本的服务程序混淆.这里通常的做法为在程序中埋入版本标志,同时该版本号会对应到git上的tag或release版本.从而对线上服务更改有一个更全面的信息说明.这里将介绍基于GNU风格[详细]
-
GOLANG简单类型定义,在协议解析的妙用
所属栏目:[大数据] 日期:2020-12-16 热度:64
原文:https://gocn.io/article/322 在协议解析中,经常需要用到转换不同的含义,比如声音的采样率,在FLV中定义和AAC中定义是不同的。在FLV中只有4中采样率 5512,11025,22050,44100 。而在AAC中有16种采样率 96000,88200,64000,48000,44100,32000,24000,160[详细]
-
GOLANG实现类似C++模板,返回符合类型的对象
所属栏目:[大数据] 日期:2020-12-16 热度:189
原文参考:https://gocn.io/article/319 在协议解析中,C++的模板有比较大的作用,有时候我们希望丢弃所有的包,只留下特定类型的包。参考SRS的代码SrsRtmpClient::connect_app2: 类型系统的设计, SrsConnectAppResPacket 继承自 SrsPacket : class SrsPac[详细]
-
Golang 读写 Excel
所属栏目:[大数据] 日期:2020-12-16 热度:182
Excelize 是Golang 编写的一个用来操作 Office Excel 文档类库,基于微软的 Office OpenXML 标准。可以使用它来读[详细]
-
golang的模板处理Parse与ParseFiles写法区别
所属栏目:[大数据] 日期:2020-12-16 热度:135
golang可以选择从 字符串 或 文件 来获得模板。 字符串通过Parse函数 文件通过ParseFiles函数 两者写法有些区别,容易混淆,笔者趟了半天的坑,特此做个总结。 package mainimport ( "html/template" "os" "log" "fmt")var tplString=`!DOCTYPE htmlhtmlhead[详细]
-
GOLANG的context和并发模型
所属栏目:[大数据] 日期:2020-12-16 热度:148
GOLANG1.7新增了context,最初这个package是在 golang.org/x/net/context 中的,后来证实对很多程序都是必须的,就纳入了标准库。 对context的介绍是在context,读这个blog之前,要先读pipelines(pipelines提出了使用 close(chan) 的方式广播退出事件)。[详细]
-
golang使用protobuf
所属栏目:[大数据] 日期:2020-12-16 热度:73
为什么要使用protobuf 最近的项目中,一直使用Json做数据传输。Json用起来的确很方便。但相对于protobuf数据量更大些。做一个移动端应用,为用户省点流量还是很有必要的。正好也可以学习一下protobuf的使用 跟Json相比protobuf性能更高,更加规范 编解码速度[详细]
-
golang使用原始套接字构造UDP包
所属栏目:[大数据] 日期:2020-12-16 热度:119
RAW SOCKET 介绍 TCP/IP协议中,最常见的就是原始(SOCKET_RAW)、tcp(SOCKET_STREAM)、udp(SOCKET_DGRA)三种套接字。原始套接字能够对底层传输进行控制,允许自行组装数据包,比如修改本地IP,发送Ping包,进行网络监听。这里不做详细介绍,要了解更多可以网[详细]
-
golang使用Nsq
所属栏目:[大数据] 日期:2020-12-16 热度:116
为什么要使用Nsq 最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯。一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golang原汁原味的东西,功能齐全,关键是性能还不错。其中支持动态拓展,[详细]
-
golang学习笔记
所属栏目:[大数据] 日期:2020-12-16 热度:181
安装 下载 http://golangtc.com/download 安装 https://golang.org/doc/install?download=go1.8.3.darwin-amd64.pkg //osx 环境变量 $vi ~/.zshrc export GOROOT=/Users/lucifer/Documents/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOP[详细]
-
supervisor运行golang守护进程
所属栏目:[大数据] 日期:2020-12-16 热度:143
最近在鼓捣golang守护进程的实现,无意发现了supervisor这个有意思的东西。supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。当然也可以用来实现golang的守护进程,下面描述下具体实现。 安装sup[详细]
-
Golang gRPC实践 连载三 Protobuf语法
所属栏目:[大数据] 日期:2020-12-16 热度:162
Protobuf语法 gRPC推荐使用proto3,本节只介绍常用语法,更多高级使用姿势请参考官方文档 Message定义 一个message类型定义描述了一个请求或相应的消息格式,可以包含多种类型字段。例如定义一个搜索请求的消息格式,每个请求包含查询字符串、页码、每页数目[详细]
-
ctags5.8通过自定义扩展支持golang语言
所属栏目:[大数据] 日期:2020-12-16 热度:190
Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基[详细]
-
golang 标准命令详解
所属栏目:[大数据] 日期:2020-12-16 热度:55
去年工作原因,接触到了golang,今年开始,自身感兴趣,开始在自学Golang。首先简短介绍下golang,Go语言是Google开发的一种编译型,并发型,具有垃圾回收功能的系统编程语言,官方支持FreeBSD,Linux,Mac OS和Windows四大操作系统。其出于Google公司,由众[详细]
-
Golang里的Future/Promise
所属栏目:[大数据] 日期:2020-12-16 热度:175
现如今,应用执行时最普遍存在的瓶颈就是网络请求了。网络请求只要几毫秒,但是等到返回却要百倍的时间。所以,如果你执行多个网络请求,让他们都并行执行就是减少延迟最好的选择了。Future/Promise就是实现这一目的的手段之一。 一个Future就是说“将来”你[详细]
-
golang非阻塞锁的简单实现
所属栏目:[大数据] 日期:2020-12-16 热度:105
对于复杂类型如 container/list ,需要在所有读写操作上使用 sync.mutex 互斥锁以保证数据一致性,互斥锁并发情况下,Lock 操作会阻塞,一直等到其他线程Unlock,但是有的时候因为有一个耗时比较长的操作一直占用锁,我们想让其他线程不在Lock上一直阻塞,而[详细]
-
Golang、python中随机生成汉字的方法。。
所属栏目:[大数据] 日期:2020-12-16 热度:177
代码很简洁,每个人能看得懂,不多说了。 GO语言: func main() { a:=make([]rune,100) for i:=range a {a[i]=rune( RandInt(19968,40869)) } fmt.Println(string( a))}func RandInt(min,max int64) int64 { rand.Seed(time.Now().UnixNano()) return min +[详细]
-
golang gopath的新用法
所属栏目:[大数据] 日期:2020-12-16 热度:178
从使用golang开发项目以来,golang的项目代码依赖问题就一直困扰着我,主要是对gopath的用法不明了导致了项目结构很混乱,最近突然想到一个很好的gopath用法,仔细研究了一下确实可行,这里就写下来了分享给大家参考 需求 首先我想实现的项目结构是,有一个单[详细]
-
golang面试题解析
所属栏目:[大数据] 日期:2020-12-16 热度:74
最近在很多地方看到了golang的面试题,看到了很多人对Golang的面试题心存恐惧,也是为了复习基础,我把解题的过程总结下来。 面试题 1. 写出下面代码输出内容。 packagemainimport("fmt")funcmain(){defer_call()}funcdefer_call(){deferfunc(){fmt.Println([详细]
-
Golang面试题解析
所属栏目:[大数据] 日期:2020-12-16 热度:87
最近在很多地方看到了golang的面试题,看到了很多人对Golang的面试题心存恐惧,也是为了复习基础,我把解题的过程总结下来。 面试题 1. 写出下面代码输出内容。 package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() {[详细]
-
支持GoLang,类似 Source Insight的vim编辑器搭建
所属栏目:[大数据] 日期:2020-12-16 热度:85
,曾经配置过一个类似source insight的vim编辑器,(http://www.jb51.cc/article/p-abnyxlim-bpt.html)默认对C,C++语言是支持的,只是不支持golang,下面介绍下如果打造一个vim-go的编辑器,类似source insight,自动补齐等等,我使用的是ubuntu16.04 LTS 32b[详细]
-
Golang - 阿里大于最新sdk 2017-05-25
所属栏目:[大数据] 日期:2020-12-16 热度:60
alidayu 阿里大于最新sdk 2017-05-25 本sdk基于阿里大于java最新版,版本为2017-05-25 因开发中需求短信发送,一开始没准备自己写,找了几个go版本的,发现怎么调用都会错, 后来在阿里的sdk中发现原来所有的都改变了,原sdk已经无法现使用,没办法,只好自[详细]
-
golang 接口
所属栏目:[大数据] 日期:2020-12-16 热度:200
1、自定义类型存入接口的内存布局 接口值是一个两个字节长度数据结构,第一个字节包含一个指向内部表的指针(iTable),包含了存储的值的类型信息及和这个值判刑的一组方法。第二个字节指向所存储值的指针。 如果将指针赋值给接口,则类信息会存储一个指向保[详细]
