关于golang指针的理解与使用

Go指针理解 Go 有指针,但是没有指针运算。你不能用指针变量遍历字符串的各个字节。在 Go 中调用函数的时候,得记得变量是值传递的。 通过类型作为前缀来定义一个指针’ * ’:var p * int。现在 p 是一个指向整数值的指针。所有新定义的变量都被赋值为其类型的零值,而指针也一样。一个新定义的或者没有任何指向的指针,有值 nil。在其他语言中,这经常被叫做空(NULL)指针,在 Go 中就是 nil 。让指针指向某些内容,可以使用取址操作符 ( & ),像这样: package main...阅读全文

简书 2020-06-13 17:32:45 不屈真实

golang单元测试、压力测试详细介绍

Go为何需要test测试用例 软件项目开发过程中需要写一些函数解决某一问题,这时候就需要考虑函数是否可以正确运行,是否能实现预期结果,函数代码质量等问题。那么如何函数是否符合这些要求呢?这时候就需要对函数进行全面的单元测试。单元测试的重点在于发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点在于发现程序设计上的一些问题,让线上的程序能够在高并发的情况下还能保持稳定。 本小节将详细讲解Golang语言中如何来实现单元测试和性能测试。 Go语言中自带有一个轻量级的测试...阅读全文

简书 2020-06-13 17:32:45 不屈真实

Golang——接口

接口(interface)定义一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 在go语言中,接口(interface)是一种抽象的类型。 interface是一组method 的集合,是duck-type programming的一种体现,不关心属性(数据),只关心行为(方法)。 Go语言提倡面向接口编程。 定义接口如下: type 接口类型名 interface { 方法名1(参数列表1) 返回值列表1 方法名2(参数列表2) 返回值列表2 } 其中, 接口名:Go语言中...阅读全文

简书 2020-06-13 17:32:45 Cici冬雪

从单体结构到微服务架构,企业要做多少准备?

“微服务”是时下热门技术话题,今天云片联手网易云、网易云音乐、美洽技术大咖,在武汉光谷一起探讨,企业要落地微服务架构将跨过多少坑?本次活动邀请嘉宾网易云企业解决方案资深架构师 袁梓超 、云片 Java 技术专家 刘斌、网易云音乐资深开发工程师 薛广顺、美洽技术负责人 吴昊,共同讨论《微服务架构落地的最佳实践》。干货分享 微服务在传统领域的落地实践内容介绍:微服务已经成为互联网化架构的明显特征,从大型互联网公司业务架构中显示,服务已经拆得非常细,微服务是一个演进的过程,是企业在发展过程中业务遭遇痛...阅读全文

简书 2020-06-13 11:32:58 杭州云片

独立测评机构:AOS在隐私行业属领先水平,给予A+评级

0.引言在以太坊在加密货币中引入智能合约,开启区块链技术2.0来,公链阵营基本上划分成了两大阵营,一个是以以太坊(ETH)、柚子(EOS)等为首的公链项目,其继承了比特币的信息可追溯的特点。 另一类则是从比特币分叉出来,以门罗币(Monero)、大零币(Zcash)等为代表的以保护隐私为目的的匿名公链。今天给大家带来的项目分析是最近刚刚发布的一个全球首个支持零知识证明编程的隐私公链AOS的项目。1.项目立项AOS全称:Anonymous Operating System (AOS),即匿名操作系...阅读全文

简书 2020-06-13 11:32:58 AOS社区

Go 包管理机制深入分析

前言 随着 Go 语言的深入使用,其依赖管理机制也一直是各位 Gopher 热衷于探讨的话题。Go 语言的源码依赖可通过 go get 命令来获取,但自动化程度不高,于是官方提供了 Dep 这样的自动化批量管理依赖的工具。虽然 Go 语言的依赖管理在很多方面还是不如人意,但整个体系正在日趋完善,本篇就将从最基本的依赖管理场景出发,一同探讨 Go 语言依赖管理的一些最佳实践。Go 依赖管理的基本思路在 Go 语言中,我们通过 go get 命令将 GitHub 或者 Google Code 上的代...阅读全文

简书 2020-06-13 11:32:50 JFrog杰蛙科技

使用 Golang 编写的 Web版 Nmon Analyser

模仿 Nmon-Analyser(Excel版本)的 Web 版本。 原本做好了就放 线上 没咋去管了,今天才发现原来线上的版本还引用了一个访问很慢的 css 文件,还一直以为是我服务器的带宽太低了。。。 之前也想着做一个离线版本,拖到现在。。 线上的版本是前后端分离的,为了偷个懒,我就继续用 esc 把前端都给打包进来了。 所以呢,访问页面的端口也是被固定了 下载地址 执行后,浏览器 (Chrome/Safari) 访问 http://localhost:10001/nmon/ 通过左上角的上...阅读全文

简书 2020-06-13 11:32:48 雷系泡泡

[gwda] Golang 版 WebDriverAgent 客户端库

总算是把这个项目补完了 项目地址:https://github.com/ElectricBubble/gwda 使用 Golang 实现了 appium/WebDriverAgent 的客户端库 appium 其实也是提供了不少语言的客户端库 只是。。感觉太依赖 appium 的那套东西了。。 然后发现了 facebook-wda (python) 但是吧。。python 我是能选择不用就不用。。 写点小插件用下我倒是无所谓,比如 LaunchBar 6 的 Bing 翻译 插件 再加上愈发喜欢...阅读全文

简书 2020-06-13 11:32:47 雷系泡泡

2020最新Gin框架中文文档(更新于2020.06)定期维护

## 前言 哈喽,大家好,我是asong。最近在学习Gin框架。在学习的过程 中,一直看英文文档,对于英语渣渣的我来说,很痛苦,就想着给 他翻译过来,弄成中文文档,可以提高我们的学习下效率。网上翻 译过来的文档有很多,不过都很旧了,许多更新也没有处理,不是 很完整。所以我就自己一边学英语、一边翻译了这篇中文文档,现 在分享给你们,希望对你们有用。备注:由于文档是我自己翻译, 有错误欢迎指出。文档已上传个人 github:https://github.com/sunsong2020/Golang_...阅读全文

简书 2020-06-13 11:32:46 sunsong1997

.NET Core微服务实践

.NET Core微服务实践 微服务架构 基于Consul实现服务治理 Consul是一个分布式,高可用、支持多数据中心的服务注册、发现、健康检查和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发。 与市面上其他系统比较如下: 总体而言, Consul用Golang实现,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可无缝配合。 此外,关于Consul的架构以及相关的角色,如下图所示: ...阅读全文

简书 2020-06-13 11:32:46 Bobby0322

Go 包管理机制深入分析

前言 随着 Go 语言的深入使用,其依赖管理机制也一直是各位 Gopher 热衷于探讨的话题。Go 语言的源码依赖可通过 go get 命令来获取,但自动化程度不高,于是官方提供了 Dep 这样的自动化批量管理依赖的工具。虽然 Go 语言的依赖管理在很多方面还是不如人意,但整个体系正在日趋完善,本篇就将从最基本的依赖管理场景出发,一同探讨 Go 语言依赖管理的一些最佳实践。 Go 依赖管理的基本思路 在 Go 语言中,我们通过 go get 命令将 GitHub 或者 Google Code 上...阅读全文

51CTO博客 2020-06-12 18:39:52 JFrog中国

GO 里面的比较好用的一些工具方法【值得收藏】

今天在一个源码里面看到里面的 util 包,里面的好多的工具都是我们可以直接拿来使用的,之前没有这个习惯,所以每次就喜欢到处找。现在开始在这些源码里面去记录一下。方便日后的使用。 // 这里是引入的包 import ( "crypto/rand" "crypto/sha256" "crypto/md5" "encoding/base64" "encoding/hex" "errors" "golang.org/x/crypto/pbkdf2" "strings" "github.com/graf...阅读全文

Segmentfault 2020-06-17 08:32:33 IT猿看视界

重复

工具由来 为什么要写这样的一个工具呢?这是因为我司有多个 kubernetes 集群(8+),且都是云托管服务无法接触到Apiserver配置,这就给我们带来一个痛点,开发、sre需要登录k8s dashbaord且不同部门和角色间需要不同的授权,原先都是通过 sa token 进行登录dashboard,但随着k8s集群的增长,每增加一个集群,就需要告知使用方对应dashboard访问地址以及对应的token,这不管是提供方还是使用方都让人感觉非常的痛苦。那是否有一款工具能提供统一地址统一登录...阅读全文

Segmentfault 2020-06-16 17:32:34 icyboy

多集群k8s dashboard ldap统一登录与授权工具

工具由来 为什么要写这样的一个工具呢?这是因为我司有多个 kubernetes 集群(8+),且都是云托管服务无法接触到Apiserver配置,这就给我们带来一个痛点,开发、sre需要登录k8s dashbaord且不同部门和角色间需要不同的授权,原先都是通过 sa token 进行登录dashboard,但随着k8s集群的增长,每增加一个集群,就需要告知使用方对应dashboard访问地址以及对应的token,这不管是提供方还是使用方都让人感觉非常的痛苦。那是否有一款工具能提供统一地址统一登录...阅读全文

Segmentfault 2020-06-16 15:32:35 icyboy

Go语言的原子操作和互斥锁的区别

这个系列的文章里介绍了很多并发编程里经常用到的技术,除了Context、计时器、互斥锁还有通道外还有一种技术--原子操作在一些同步算法中会被用到。今天的文章里我们会简单了解一下Go语言里对原子操作的支持,然后探讨一下原子操作和互斥锁的区别。 文章的主要话题如下: 原子操作 Go对原子操作的支持 原子操作和互斥锁的区别 原子操作 原子操作即是进行过程中不能被中断的操作,针对某个值的原子操作在被进行的过程中,CPU绝不会再去进行其他的针对该值的操作。为了实现这样的严谨性,原子操作仅会由一个独立的CP...阅读全文

Segmentfault 2020-06-16 11:32:36 Kevin

如何在 1 s内快速创建数百G超大文件?

常规的创建文件方式有: touch vi(m) tee > 或 >> 但是这几种都只适合创建小的文本文件,某些情况下出于测试的需要,你需要快速创建一个超大的文件,可能要 上百G。这时候要使用上面几个命令,你可能要等一天的时间,效率非常低。 接下来介绍几种我常用的方法 1. dd dd命令,可以从标准输入或指定的文件中读取数据,拷贝至新文件。 $ dd if=/dev/zero of=big_file count=10 bs=1G 使用 time 命令,可以算出创建一个 10G的文件需要耗时多久?...阅读全文

Segmentfault 2020-06-16 22:32:35 Python编程时光