Go连接Hive
经过两天多的资料查找,反复测试从网上找到的多种方案,加上阿里云售后的支持,终于搞定Go语言连接Apache Hive的问题。 测试环境,阿里云E-MapReduce 2.1 中的Hive, Golang 1.7,开发环境win10。 在阿里云hive-site.xml中需要添加:
经过两天多的资料查找,反复测试从网上找到的多种方案,加上阿里云售后的支持,终于搞定Go语言连接Apache Hive的问题。 测试环境,阿里云E-MapReduce 2.1 中的Hive, Golang 1.7,开发环境win10。 在阿里云hive-site.xml中需要添加:
背景 最近使用go开发后端服务,服务关闭需要保证channel中的数据都被读取完,理由很简单,在收到系统的中断信号后,系统需要做收尾工作,保证channel的数据都要被处理掉,然后才可以关闭系统。 后面我会给出方案,见示例代码,但在解决这个问题之前我们先了解下close channel的一些特性。 channel 关闭channel ch := make(chan bool) close(ch) close(ch) // 这样会panic的,channel不能close两次 向已经关闭的channel写数据 ch := make(chan string) close(ch) ch <- "good" // 会panic的 从已经关闭的channel读取数据 需要分两种情况: 无缓冲chann...阅读全文
首先在gogo目录下 go mod init gogo 声明gogo目录为gogo module其他的引用都基于module gogo进行引用文件结构:gogo --Test --helloworld.go --myMath --myMath1.go--myMath2.go测试代码:// helloworld.gopackage mainimport ("fmt""gogo/myMath")func main(){ fmt.Println("Hello World!") fmt.Println(mathClass.Add(1,1)) fmt.Println(mathClass.Sub(1,1))}// myMath1.gopackage mathClassfunc Add(x,y int) ...阅读全文
1 命名规范 在Go中几乎所有的东西都是有名字或标识符的(类似于C家族语言),且它们是对大小写敏感的。相应的规则如下: 必须以字符开头(所有Unicode UTF-8中的字符 或 下划线“_”)后面可以跟0或多个字符或数字,如:x56, _x32等。不能以数字开头或系统保留关键字和操作符。如:1ab, case, a+b。下划线"_"本身在Go中是一个特殊的标识符,称为空标识符。可以代表任何其它的标识符,但是它对应的值会被忽略。所以仅能被作为占位符使用。 同时,在Go中也支持匿名,如匿名变量、自定类型和函数。 2 系统关键字或保留字 在Go中,为了简化代码编译过程中对代码的解析,其定义的保留关键字只有25个。详见如下: break default func interface select ...阅读全文
Golang下如何写单元测试?官方提供的testing package略显简陋,不过好在我们有Gocheck。 什么是好的单元测试? 在进入正题前,先来温习下前人总结的单元测试几条原则:http://www.atatech.org/articles/2523 1 单元测试应该在最低的功能/参数上验证程序的正确性 ... 3 单元测试过后,机器状态保持不变 ... 6 独立性,单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。 好的单元测试,应该遵循上面的原则;好的单元测试框架,应该为我们践行这些原则提供方便。 gocheck,简单好用 gocheck官网:http://labix.org/gocheck Golang官方的testing package算是...阅读全文
摘要: 阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同?大中型企业如何完成公有云/专有云/混合云转型升级,实现高效协同研发? 阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同?大中型企业如何完成公有云/专有云/混合云转型升级,实现高效协同研发?中国近5000万的中小企业如何保证研发过程的稳定性与持续性?企业如何利用工具实现项目管理-应用管理-代码测试-持续交付-运维监控-数据反馈运营的一站式研发生命周期管理服务,体验阿里巴巴的研发速度和流程?2017北京云栖大会,云效企业级协同研发专场为你揭秘!  func main() { db, err := sql.Open("mysql", "root:root@/test") //打开数据库test checkErr(err) stm, err := db.Prepare("DROP TABLE IF EXISTS userinfo;") //准备SQ...阅读全文
佩奇免签支付系统,目前采用收款模式,有代理系统,自己搭建一套系统来运营的话,可放给身边朋友,可以给别人开商户,增加盈利点;也可组建团队开发支付代理,增加盈利点。并且,我们都是统一更新,统一升级,都是免费给你升级,不收取任何费用。 免签支付优点:无论你是企业、个人,无论你有没有企业资质、网站有没有ICP备案,只需提供能正常使用的支付宝或微信账号即可接入支持各种支付场景,灵活易用满足丰富交易场景需求,为用户提供完美支付体验;移动支付将终端设备、互联网、应用提供商以及金融机构相融合;资金不中转,直接转入你自己的账号,资金及时到账,安全可靠,等等。 第四方支付是相对第三方而言的,作为对第三方支付平台服务的拓展。第三方支付介于银行和商户之间,而第四方支付是介于第三方支付和商户之间,没有支付许可牌照的限...阅读全文
用 redis 的 list 数据结构作为轻量级的消息队列,对于小系统确实是小而美,可控能力强。当然与kafka 和 rabbitmq 相比它还有很多缺陷,在服务进行生产和消费的时候,还需要加上部分逻辑进行处理。自己写了点 golang 代码,压力测试 redis 列表的性能。机器配置:双核,4G测试数据:100w压力测试源码(github)生产者,生产 100 w 条数据,平均,每秒能写 13817 条数据。begin time: 2018-07-29 14:03:55.606end time: 2018-07-29 14:05:07.976Produce message: 1000000avg: 13817.860879118389 负载 代码片段 消费者,消费 100 w 条数据,平均...阅读全文
诚聘精英 JOIN US 有前景的行业有空间的平台有梦想的伙伴 京东云智联云期待你的加入 招聘岗位 算法工程师 算法研究员 开发工程师 测试工程师 (详情请见下文) 关于我们 京东智联云(JD Cloud & AI)是京东集团旗下的智能技术提供商,依托京东集团在人工智能、大数据、云计算、物联网等方面的业务实践和技术沉淀,拥有领先的数字化、智能化产品,打造服务于数字企业、数字政府的多维场景解决方案,为客户创造价值。 上有天文下有地理的阅读区域各类图书提供借阅 绿植环绕生机勃勃的会客区域洋溢青春 期待你的加入 招聘岗位 聘算法工程师(视觉研发/人脸识别/OCR/图片内容审核/视频分析/商品识别/知识图谱/NLP) 职位描述: 针对实际业务需求,深入分析现有计算机视觉、深度学习算法与模型,给出有效...阅读全文
`go tool vet -copylocks` 命令简介 Go 语言安装包附带 [vet](https://golang.org/cmd/vet/) 命令行工具。该工具能对程序源码运行一套启发式算法以发现可疑的程序结构,如无法执行的代码或对 `fmt.Printf` 函数的错误调用(指 arguments 没有对齐 format 参数): ```go package main import "fmt" func f() { fmt.Printf("%d\n") return fmt.Println("Done") } ``` ``` > go tool vet vet.go vet.go:8: unreachable code vet.go:6: missing argument for ...阅读全文
课程介绍 E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。 学习入口:[点击这里](http://click.aliyun.com/m/27900/) 课程目标 掌握E-MapReduce的用法 适合人群 大数据工程师 阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场...阅读全文
摘要: 数据安全是大数据发展道路上的重要挑战之一,数据,作为企业的核心资产,80%以上的核心信息是以结构化数据存储,包含个人身份证号、银行账号、电话、客户数据、医疗、交易、薪资等极其重要又敏感的信息。一旦发生数据篡改、盗取、滥用等安全事件,将给企业带来经济和声誉上的双重打击,造成的后果将不堪设想。 近几年随着DT概念在国内持续普及,2016年中国大数据市场规模为168.0亿元,增速达到45%;预计2017-2020增速将保持在30%以上,中国信通院发布大数据发展调查报告(《中国大数据发展调查报告(2017年)》)中指出大部分企业均已意识到数据分析对企业发展的重要性。 59.2%的受访企业已经成立了数据分析相关部门。 35.1% 的受访企业已经应用了大数据,同时, 22.9%的企业计划将...阅读全文
gomonkey 介绍 gomonkey 是 golang 的一款打桩框架,目标是让用户在单元测试中低成本的完成打桩,从而将精力聚焦于业务功能的开发。gomonkey 接口友好,功能强大,目前已被很多项目使用,用户遍及世界多个国家。 gomonkey 1.0 特性列表 gomonkey 1.0 特性列表如下: 支持为一个函数打一个桩 支持为一个成员方法打一个桩 支持为一个全局变量打一个桩 支持为一个函数变量打一个桩 支持为一个函数打一个特定的桩序列 支持为一个成员方法打一个特定的桩序列 支持为一个函数变量打一个特定的桩序列 下载地址: https://github.com/agiledragon/gomonkey/releases/tag/v1.0 习惯用法 gomonkey 提供的 API...阅读全文
可以生成跨数据中心的全局唯一ID,go-id-worker传送门: https://github.com/gitstliu/go-id-worke...阅读全文
有时候看别人的go代码,发现他们有的在代码里面用了指针,有的不使用。 假设有个结构体类型叫做Person, 发现有些方法会用func methodA (*person Person)作为参数, 或者使用 func *(person Person) methodA()作为结构体自己的方法,也就是person这个结构体 可以直接调用methodA,但是用的是指针。 或者在map结构里面看到var personMap map[string]*Person 的用法 如果是从java转过来golang的话,可能不太好理解。因为java的世界是没有指针的,直接传递过去就可以用了,但是到golang上需要注意很多地方。 那么什么时候该用呢?为什么有些地方需要用呢? 不使用指针的话,某些情况是没法赋值给结构...阅读全文
go-sql-driver包是一个第三方包 下载地址http://github.com/go-sql-driver/mysql 下面直接上代码 package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { //连接数据库 db, err := sql.Open("mysql", "root:@tcp(localhost:3306)/go?charset=utf8") if err != nil { fmt.Println("连接数据库失败", err.Error()) return } defer db.Close() //查询数据库 query, err := db...阅读全文
----目录---- 命名 文件命名 package 变量 常量 接口 结构体 方法 注释 README 命名 文件命名 文件命名一律采用小写,不用驼峰式,尽量见名思义,看见文件名就可以知道这个文件下的大概内容。 其中测试文件以test.go结尾,除测试文件外,命名不出现。 例子: stringutil.go, stringutil_test.go 包名package 包名用小写,使用短命名,尽量和标准库不要冲突。 包名统一使用单数形式。 变量 变量命名一般采用驼峰式,当遇到特有名词(缩写或简称,如DNS)的时候,特有名词根据是否私有全部大写或小写。 例子: apiClient、URLString 常量 同变量规则,力求语义表达完整清楚,不要嫌名字长。 如果模块复杂,为避免混淆,可按功能统一...阅读全文
关于Skycoin,你应该知道的50件事1.Skycoin是新一代去中心化互联网和世界上最先进的区块链应用 平台。2.Skycoin是由比特币和以太坊的早期开发者发明的第三代区块链 平台。它还修复了其他区块链网络相关的安全问题,并将加密货币的 创建与挖掘过程分离。使Skycoin真正地做到了去中心化,满足了 Satoshi创建比特币的原始愿景。3. 正在从头开始重建互联网,使得用户可以摆脱对网络服务 提供商(ISP)的依赖。这也解决了过去用户数据被ISP监控,追踪、 销售等问题。Skyminers加密和处理人们的互联网数据。需要使用天线在全球范围 内发送/传输数据,而无需通过地下/海底光纤电缆和卫星以便ISP来 提供互联网。这样,巨型ISP公司就无法控制互联网。人们有权力对 自己的互联网做主...阅读全文
由于疫情,春节待在家里百无聊赖,我又启动了写书的进程。前后历时近一个月,我终于写完了《企业级区块链实战教程》。该课程与市面上区块链课程不同,不只是讲理论,可以说是目前市面最具实战精神的课程,吸取了《大话区块链》这本书的精华以及我在国家电网的项目实施经验。这门课程最大的特色是涉及了大量的实战内容,其中包含了联盟链网络的搭建、智能合约开发、区块链项目实施等内容。经过多次完善之后,我将课程简介发布在我的公众号以及《大话区块链》读者群。一个星期,许多朋友加我微信希望我能够学习《企业级区块链实战教程》。但由于我平常比较忙,所以担心没有时间给大家持续授课,经过一周的思考,我决定将这门课程开源。 对,你没看错,我说的是开源。目前该课程已经更新到第三章,这个月我会在github上完成全部课程的更新。课程开源...阅读全文
我们常常因为传入的参数不确定而头疼不已,golang 为我们提供了接入多值参数用于解决这个问题。但是一般我们直接写已知代码即所有的值都知道一个一个塞进去就好了,但是绝大部分我们是得到用户的大量输入想通过循环传入,但是这样发现无法使用这个多值参数的功能。其实底层实现将多个参数视为传入的一个不定长数组。那么我们就有想法了:既然底层使用数组,那我们传入数组是否可以,结论是不可以的,或者这样说比较合理:数组不能直接传入,需要辅助多参数标识来指明,具体让我们看以下一个简单的测试: func TestMultiParam(t *testing.T) { valueArray := []string{"1", "2", "3", "4", "5"} result := valueArray[0: 3] t...阅读全文
测试环境:ubuntu 14.04 之kylin 版 vim本身不带golang的语法高亮 解决方案: 在 /usr/share/vim/vim74/ 中 有这么几个文件夹:syntax, ftplugin, indent, compiler等, 我们查看syntax可以看到有gcc.vim等其他语法文件,但是没有go.vim, 好在我们可以从源码下载 http://www.golangtc.com/download 下载 go1.3.3.src.tar.gzgo1.3.3 (source only),解压缩, 将下载目录的 go/misc/vim/中有对应的 syntax, ftplugin, indent, compiler 中的go.vim文件复制到/usr/share/vim/vim...阅读全文
//上数据结构,bytes Buffer type Buffer struct { buf []byte // byte切片 off int // 从&buf[off]地址读数据, 从&buf[len(buf)]地址写数据 runeBytes [utf8.UTFMax]byte // avoid allocation of slice on each WriteByte or Rune bootstrap [64]byte // memory to hold first slice; helps small buffers (Printf) avoid allocation. lastRead readOp // last read operation, so that Unread* ca...阅读全文
目前在用go开发一个微信公众号,所以碰到xml转换的问题,类似`
1、代码 2、编译及运行 1、目录结构 1.1) 1 $ tree 2 . 3 ├── mplayer.go 4 └── src 5 ├── mlib 6 │ ├── manager.go 7 │ └── manager_test.go 8 └── mp 9 ├── mp3.go 10 └── play.go 1.2)mlib库的代码 1.2.1)manager.go代码 1 package library 2 3 import "errors" 4 5 type MusicEntry struct { 6 Id string 7 Name string 8 Artist string 9 Genre string 10 Source string 11 Type string 12 } 1...阅读全文
目录 [−] 一个简单的例子更复杂的例子等价的客户端和服务器Read和Write方法集的比较通用多播编程标准库多播编程广播任播参考文档 用户数据报协议(User Datagram Protocol,缩写为UDP),又称用户数据报文协议,是一个简单的面向数据报(package-oriented)的传输层协议,正式规范为RFC 768。UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验。 由于缺乏可靠性且属于非连接导向协议,UDP应用一般必须允许一定量的丢包、出错和复制粘贴。但有些应用,比如TFTP,如果需要则必须在应用层增加根本的可靠机制。但是绝大多数UDP应...阅读全文
> 查看原文:[blog.keyboardman.me](http://blog.keyboardman.me/2018/02/23/early-adopters-versioned-go/) 一直以来,对go来说依赖包的版本控制上没有一个好的方案,当前主要有两种方式`Import Versioning`和`Semantic Versioning`。 * Import Versioning:`gopkg.in`网站,其实是GitHub版本变化的重定向器,你可以通过`gopkg.in/yaml.v1`和`gopkg.in/yaml.v2` 的这样的导入方式来指向Git库的不同提交版本 * Semantic Versioning:制定了一个文件格式规范来描述管理vendor目录下代码的准确源和版...阅读全文
访问一个api, 返回如下数据: ```go { "data": { "trend": { "fields": [ "min_time", "last_px", "avg_px", "business_amount" ], "600570.SS": [ [ 201501090930, 54.98, 54.98, 28327 ], [ 201501090931, 54.63...阅读全文
title: golang 网络编程 golang 网络编程 go-shadowsocks是一个非常好的学习golang网络编程的例子。在本篇博文中重点阐述golang网络通信几个各种不同协议下服务端和客户端的实现。网络通信协议主要有以下两种外加一种增加的协议 golang tcp golang upd golang kcp:在upd上进行增强的协议,KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。 golang的一大优势就是多核、并行、网络编程。通过goroutine与channel可以很方便地协程,协程比线程更轻量级,占用资源更小,可以更好地适用与并行计算。 下面对这三种分别进行说明。 golang...阅读全文
提供给微信公众号入门的小伙伴 1.首先下载ngrok,并开启 2.注册微信测试号 http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index (https://static.studygolang.com/180326/291a13721ecb31fa92fb5410b607be5a.png) 注意:如果有非测试公众号,是需要填写ip白名单,填写的是代理的ip...阅读全文
文:Optimized abs() for int64 in Go,译文:在 Golang 中针对 int64 类型优化 abs(),欢迎转载。 前言 Go 语言没有内置 abs() 标准函数来计算整数的绝对值,这里的绝对值是指负数、正数的非负表示。 我最近为了解决 Advent of Code 2017 上边的 Day 20 难题,自己实现了一个 abs() 函数。如果你想学点新东西或试试身手,可以去一探究竟。 Go 实际上已经在 math 包中实现了 abs() : math.Abs ,但对我的问题并不适用,因为它的输入输出的值类型都是 float64,我需要的是 int64。通过参数转换是可以使用的,不过将 float64 转为 int64 会产生一些开销,且转换值很大的数会发生截断,...阅读全文
一个golang的项目,使用了腾讯云的短信服务,腾讯云的短信服务URL是https://yun.tim.qq.com/v5/tlssmssvr/sendsms?sdkappid=xxxxx&random=xxxx,在开发平台,可以正常使用。编译后部署到生产平台,短信发不出来了。为了定位问题,找了一台干净的测试机,部署后也发不出短信,因此判断生产平台的云服务器没有问题。 在测试机上,经过调试,终于定位错误信息:x509: failed to load system roots and no roots provided 搜索错误信息,首先找到这篇《go语言在不支持cgo的情况下访问https链接》,看完内容后直觉这个解决方法不对,太不优美了。接着看到《go语言获取https报错x509: fa...阅读全文
本文谈谈Go语言的好与坏,并在目尾推荐了一个golang devops开发工程师学习完整体系。 什么是Go语言:Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,它用批判吸收的眼光,融合C语言、Java等众家之长,将简洁、高效演绎得淋漓尽致。Go语言起源于2007年,当时Google的技术大神们备受C++越来越臃肿的困扰,决心开发一种新的语言来取代C++。他们认为:与其在臃肿的语言上不断增加新的特性,不如简化编程语言。于是,Golang这门新语言应运而生。在十年多的时间里,Go语言发展势头强劲,凭借其简洁、高效的特性,在竞争激烈的编程语言市场中占据了一席之地。Google、腾讯、阿里等大公司纷纷选择使用Go语言来开发服务应用项目。当然,和其他的编程语言...阅读全文
[原文链接](https://medium.com/golangspec/introduction-to-bufio-package-in-golang-ad7d1877f762) [bufio](https://golang.org/pkg/bufio/) 用来帮助处理 [I/O 缓存](https://www.quora.com/In-C-what-does-buffering-I-O-or-buffered-I-O-mean/answer/Robert-Love-1)。 我们将通过一些示例来熟悉其为我们提供的:Reader, Writer and Scanner 等一系列功能 ## bufio.Writer 多次进行小量的写操作会影响程序性能。每一次写操作最终都会体现为系统层调用,频繁...阅读全文
之前写习惯了C/CPP,都知道可以使用Linux上的daemon函数来方便的实现守护进程。最近切换到go上,想如法炮制,第一个想到的就是基于cgo直接调用,类似如下代码: //#include
sudo taskset -c 1 ./wrk -c1 -t1 -d30 http://localhost/hello wrk+nginx(helloworld module) sudo taskset -c 0 sbin/nginx nginx: cpu:76% wrk: cpu:70% Running 30s test @ http://localhost/hello 1 threads and 1 connections Thread Stats Avg Stdev Max +/- Stdev Latency 61.55us 27.57us 4.30ms 99.28% Req/Sec 11.58k 682.50 14.44k 76.94% 325276 requests in 30.0...阅读全文
一. 首先先看一下io.copy的定义: func CopyN func CopyN(dst Writer, src Reader, n int64) (written int64, err error) CopyN copies n bytes (or until an error) from src to dst. It returns the number of bytes copied and the earliest error encountered while copying. On return, written == n if and only if err == nil. If dst implements the ReaderFrom interface, the co...阅读全文
一、 自动化测试的现状一般测试,我们会分成上图几个层级,开发人员完成单元测试,测试人员完成第二层和顶层,但是在大部分企业中,往往会忽略第二层,也即集成、接口测试。更多的是侧重于开发人员的单元和ui,或者说功能测试。 二、 为什么做自动化接口测试 1.节省测试成本。底层的一个bug往往会引发上层的多个bug,而且底层的bug很容易引起全网的宕机。相反接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。 2.fail fast。即快速失败,主要是让异常或错误尽快的抛出。在接口测试中,由于接口测试是相对底层的测试,所以,可以更快的发现错误。 3.提高测试效率。接口测试是自动化并且持续集成的,相对UI、功能测试,测试效率也大大的提高。 三、自动化接口测试的选择 1....阅读全文
简历发wangxiaoyi_sh@163.com 声网Agora.io于2014年成立,隶属于上海兆言网络科技有限公司,总部位于硅谷,研发中心位于上海。团队 90% 均为全球技术工程师,包括苹果Apple 视频算法架构师、Vidyo 产品负责人、Polycom 工程总监等,平均行业经验10年以上,团队有年服务数千亿分钟音视频通话经验和千万级并发的互联网直播经验。 知乎一些帖子: https://www.zhihu.com/question/31329375 开发项目经理助理 岗位职责: 协助项目经理完成日常项目管理工作 项目档案管理 Bug 修复状态跟进,小项目状态监控与跟进 招聘要求: 1-2 年工作经验,做过半年以上软件开发项目助理或项目经理; 本科及以上学历,计算机科学等技术类专业毕业...阅读全文
注意:本文中设计的方法,虽然能够隐藏控制台窗口,但并不是真正意义的"后台运行",此时,如果注销服务器,那么所有运行的golang网站服务程序都会终止,解决办法: 点击使用.net完美解决服务器注销后go的web服务停止的问题 如果一个服务器有10个golang的web,每一个都显示一个cmd窗口的话,会很难看,解决如下: 1)go build 你的web 生成一个exe文件 例如 我的项目叫 "myweb",那么我需要在我的项目根目录上面打开cmd,执行一条命令就可以了: go build myweb .就会生成一个myweb.exe文件 2)制作bat文件 通过bat文件启动该exe文件: 新建一个空bat文件,把上一步生成的myweb.exe的绝对路径添加到bat文件中,这样双击bat文...阅读全文
一般为了保证整个系统的稳定性,通常都需要编写大量的单元测试,诸如像java的junit,php的phpunit等都提供了类似的功能。golang中的testing包提供了这个测试的功能,结合go test工具搞起来就很方便了。 golang中的单元测试不单有功能测试,也还提供了性能测试,非常给力。 功能测试 在golang的src目录下新建目录math,测试目录结构如下: golang单元测试目录 fibonacci.go代码如下,主要有一个Fibonacci函数 package lib //斐波那契数列 //求出第n个数的值 func Fibonacci(n int64) int64 { if n < 2 { return n } return Fibonacci(n-1) + Fibon...阅读全文
Heptio Sonobuoy 是一款诊断工具,通过以可访问和非破坏性的方式运行一系列 [Kubernetes](https://www.oschina.net/p/kubernetes) 一致性测试,可以更容易地了解 Kubernetes 群集的状态。 无论部署细节如何,Sonobuoy 都会以可定制的,可扩展的,和集群无关的方式来生成关于集群的清晰详实的报告。 Kubernetes 的部署通常会被供应商或用户做大量修改,这可能会使他们与更新不兼容。Sonobuoy 的工作是去发现这些更改是否引起了不兼容。集群的状态也可以导出并用于诊断报告,Sonobuoy 的测试也可以通过一个插件架构来扩展...阅读全文
序言 作为一个Web开发人员,相信对框架并不陌生。那么什么是Web框架呢?我们学习的语言中有哪些框架呢?带着这两个疑问,来走进我们今天要写的内容。 Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署 Golang学习-第二篇 搭建一个简单的Go Web服务器 正文 什么是Web框架? Web application framework,Web应用框架(Web框架),用来支持动态网站、网络应用程序及网络服务的开发。 Web应用框架有助于减轻网页开发时共通性活动的工作负荷,例如许多框架提供数据库访问接口、标准样板以及会话管理等,可提升代码的可再用性。 认识Go语言中的框架 Web框架,特别是一个好的Web框架,让我们在开发项目的过程中会减少很多的麻烦。不过,作为一个...阅读全文
序章 从2018到2019的那一刻,我是从梦中度过的,今年没有倒数,没有任何的庆祝,只是想好好的利用假期睡回一觉,看起来很丧哦,嗯,还好啦,睡前还是回忆了一下2018年走过的路呢,或许我这辈子最深刻的一年就是2018年吧,这个是我2018在testerhome社区那里立下的flag,现在也来复盘一下吧,这里更多的是生活的回顾吧 goal.png 当然还有自己在朋友圈立的flag了 flag.jpg 生活 新年到了,第一件事还是不要先聊工作吧,聊聊生活吧,男人的3大人生大事,买房,娶妻,生孩子,我今年完成了前面两件 结婚 我和我太太是在大学读第二专业的时候认识的(鼓励第一专业是工科的同学,尤其是计算机系的,可以读个文科或管理类的第二专业,学到知识的同时,分分钟解决人生大事),17年初的时候,我...阅读全文
【关于我司】 法国Alten集团成立于1988年,是全球领先的工程技术咨询公司。Alten(欧立腾)集团已经在全球20个国家(欧洲,北美,亚洲)都设有分支机构,拥有员工数量达18000人,并于欧洲第一大证券交易所(Euronext N.V.)上市。 欧立腾的汽车开发项目团队涵盖从总布置,车身造型,发动机,白车身,底盘,内外饰到电子电器设计的各部分,再结合样车实验验证工程师团队(发动机以及变速箱标定,振动噪声热测试,排放测试,电子架构以及功能测试等),配合了当今市场上整车厂以及一级供应商对于相关设计,测试以及验证项目的技术外包需求;而其生产运营工程师团队也于开发阶段后为多家客户于工艺,流程,产线布局,质量等方面提供支持。帮助客户订制,修改Android原生态系统以及样机软件验证服务...阅读全文
Receivebag = make([]byte, 5000)如果像这样申请了内存,在我不用的时候怎么能把他给释放掉...阅读全文
package main import ( "crypto/tls" "fmt" ) func main() { //LoadX509KeyPair读取并分析一个公用/私有密钥对从一对文件。该文件必须包含PEM编码数据。 _, err := tls.LoadX509KeyPair("./cert_dist.pem", "./key_dist2.pem") fmt.Println(err) //X509KeyPair解析一个公共/私有密钥对从一对PEM编码数据。 // _, err = tls.X509KeyPair(privateKey, publicKey) // fmt.Println(err) } //一、通过P12生成临时文件cert.pem // openssl pkcs12 -c...阅读全文
Compare two string slices in GoLang 开发中经常会遇到需要比较两个slice包含的元素是否完全相等的情况,一般来说有两个思路: reflect比较的方法 循环遍历比较的方法 这里用检查两个字符串slice是否相等的例子来测试一下这两种思路的效率我当然知道你知道reflect方法效率更差啦 reflect比较的方法 func StringSliceReflectEqual(a, b []string) bool { return reflect.DeepEqual(a, b) } 这个写法很简单,就是直接使用reflect包的reflect.DeepEqual方法来比较a和b是否相等 这是我最初完成这个需求的方式,年轻嘛,比较天真,觉得reflect啊,高端大...阅读全文
Boom 是 google 一女工程师使用 Go 语言开发的类似 apache ab 的性能测试工具。相比 ab,boom跨平台性更好,而且更容易安装。
##安装##
`go get github.com/rakyll/boom`
##使用##
```
Usage: boom [options...]