Etcd使用go module的灾难

最近几个月,或者最近一年,使用etcd做开发的朋友,如果你开启了go module的功能的话,难道没有出现翻车的现象吗?或者, 你go get -u .更新一下项目依赖试试看。 因为我使用visual studio code的方式是打开整个GOPATH文件夹,而gopls对于整个GOPATH并不友好,非常的慢,所以我设置了全局变量GO111MODULE=off,还是采用传统的老的库依赖方式开发。 但是我并不排斥使用go module,并且觉得它对解决库依赖的冲突至关重要,所以我一般在项目中也会时...阅读全文

鸟窝 2020年04月09日 smallnest

2020年,为什么我强烈建议你学习Go语言!

​前几天,何冰老师的《后浪》刷爆朋友圈,其中有一句文案:“你们正在把传统的变成现代的,把经典的变成流行的”至今记忆犹新。抖音把专业的视频制作变成大众娱乐,微信把传统报业变成人人参与的自媒体行业。比起阳春白雪,下里巴人的事物是每个行业未来发展的趋势所在。 image 放到编程界来说,Python的火爆,最大的原因是Python把编程的难度降到最低,即使不是专业的程序员也能用Python实现很多的事情。同样的,还有另外一个编程语言,那就是Go!Go继承了C\C++这类语言超高运行效率的优势,又把复杂...阅读全文

简书 2020-05-11 19:33:07 知了编程

Golang——流程控制

常用if和for,switch和goto属于扩展的 注意:Go 没有三目运算符,所以不支持 ...?...:...形式的条件判断。 1.条件语句 if else func main() { a := 1 if a < 0 { fmt.Println("小于0") } else if a == 0 { fmt.Println("等于0") } else { fmt.Println("大于0") } } 注意: 1.不需要使用括号()将条件包含起来; 2.无论语句体内有几条语句,花括号{}都是必须存...阅读全文

简书 2020-05-11 19:32:50 Cici冬雪

Golang面试之HTTPS

引用 HTTPS协议详解(一):HTTPS基础知识 TLS/SSL工作原理 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 深入HTTPS系列四(中间人攻击) HTTPS中间人攻击及防御 建议阅读 SSL/TLS 握手过程详解 细说 CA 和证书 扯一扯HTTPS单向认证、双向认证、抓包原理、反抓包策略 HTTPS协议 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是...阅读全文

简书 2020-05-11 19:32:50 网管同学

Golang面试之微服务

引用 微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的 API 进行通信的小型独立服务组成。这些服务由各个小型独立团队负责。 微服务架构使应用程序更易于扩展和更快地开发,从而加速创新并缩短新功能的上市时间。 微服务的特点 单一职责 每个微服务都需要满足单一职责原则,微服务本身是内聚的,因此微服务通常比较小。比如示例中每个微服务按业务逻辑划分,每个微服务仅负责自己归属于自己业务领域的功能。 自治 一个微服务就是一个独立的实体,它可以独立部署、升级,服务与服务之间通过REST等形式的标...阅读全文

简书 2020-05-11 19:32:47 网管同学

2020-05-11

我为何要弃 Java、JavaScript、Ruby 于不顾,而去寻找新的编程语言? 我喜欢编程语言。每种语言都有自己的特点。最近,我开始纠结一个问题:如果开始自己的项目的话,我该用什么语言。 好多优秀的编程语言在阅读此文之前,需要先说明几件事情。虽然在工作中大部分的时候我都用 Java、JavaScript 和 Ruby 来创建产品应用,但我一直在学习新的语言和新的框架。我相信,语言和语言(或框架)特有的社区能给你带来新的思想,这些思想早晚会有用处:函数式编程可以给你带来许多面向对象的编程知识...阅读全文

简书 2020-05-11 19:32:47 java木子

面试官:如何开发一个万级并发的抽奖系统?我:给你五个

每个生活在互联网时代的人,都一定经历过抢红包、秒杀、集卡、双色球等抽奖活动,这类活动其实有一个共同点:就是在某个时间点会瞬间涌入大量流量,给系统造成瞬间高于平时百倍、千倍甚至几十万倍的压力。 在企业面试中,「如何设计一个支持高并发的抽奖系统」也是常见问题之一,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了,因为如果你确实有开发高并发系统的经验,那 offer 对你来说基本如探囊取物了。 提到「高并发」,就不得不提大名鼎鼎的 Go 语言了。Go 天生为高并发而生,Goroutine 和 ch...阅读全文

简书 2020-05-11 19:32:46 实验楼

14. Go 语言中的类型断言是什么?

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:golang.iswbm.com 我的 Github:github.com/iswbm/GolangCodingTime Type Assertion Type Assertion(中文名叫:类型断言),通过它可以做...阅读全文

掘金 2020年05月11日 王一白

Excelize 发布 2.2.0 版本, Go 语言 Excel 文档基础库

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。入选 2018 开源中国码云...阅读全文

Segmentfault 2020-05-16 21:32:36 续日

让我们一起啃算法----合并两个有序数组

合并两个有序数组(Merge-Sorted-Array) 题干: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 输出: [1...阅读全文

Segmentfault 2020-05-15 22:32:35 三斤和他的朋友们

14. Go 语言中的类型断言是什么?

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:http://golang.iswbm.com我的 Github:github.com/iswbm/GolangCodingTime Type Assertion Type Assertion(中文名叫:类型断言),...阅读全文

Segmentfault 2020-05-14 22:32:34 Python编程时光

go grpc(protobuf) 简单使用教程

go gprc 使用 教程 技术栈 grpc go protobuff 1.环境 1.1. 安装protoc 项目地址 https://github.com/protocolbuffers/protobuf 下载protobuff, 有条件的github上直接下载,github下载地址,或者可以从maven仓库下载 在maven仓库中找到对应的版本,进行下载,linux ,windows 都有 1589089027209.png 这里我下载 windows 64 位的这个 下载下来的是可执行文件...阅读全文

简书 2020-05-11 07:32:47 路人甲Boger

plan9 汇编

声明 golang使用的是plan9汇编,不少调度的底层代码都是通过plan9实现,因此了解plan9汇编对Go源码剖析有非常重要的意义,以下的内容均针对golang中使用的plan9汇编。 汇编知识比较杂,如果有需要可以专门去学,本文只是为了看懂golang使用的汇编代码,因此只是简单介绍。 以下内容均来自网上整理,非原创,如有雷同,见谅。 通用寄存器 rax, rbx, rcx, rdx, rdi, rsi, r8~r15 共15个通用寄存器。 在golang中这些寄存器对应了R1-R15,...阅读全文

简书 2020-05-11 07:32:46 不争_900c

我就想试试github.com/gin-gonic/gin,为什么死活都run不起来

准备学习go语言,打算用go的gin框架来写写web接口。然而用文档的教程来运行,却死活都跑不起来,写下问题和解决方法,让遇到问题的同伴早日脱离苦海首先简单的说下正常要运行一个项目步骤,我是windows环境: 安装golang 1. 下载安装包安装 2. 在cmd中输入go回车,有输出则说明安装正常 3. 一般安装的时候程序会自动添加,无需人工干预 检查GOPATH 1. 可以在cmd中查看set GOPATH 2. 或者在"我的电脑"-"属性"-"高级"-"环境变量"中查看和添加 3. 正常...阅读全文

简书 2020-05-11 07:32:46 passerby123

golang 源码学习之GMP (goroutine)

源码 版本 1.14.1 相关目录 runtime/asm_amd64.s runtime/proc.go runtime/runtime2.go 关键概念 G - 我们代码写的go func(){ } M - 内核线程 P - M调度G的上下文, P中存储了很多G,M通过调用P来获取并执行G。为了方便,下文中称它为==局部调度器== schedt - 全局调度器,主要存储了一些空闲的G、M、P G、M、P、schedt之间的关系 graph TB; subgraph schedt A(空闲G集...阅读全文

简书 2020-05-11 07:32:45 ihornet

Goroutine的调度

G状态转换图 G状态转换 声明 下面的分析均基于Golang1.14版本。 Gosched--主动让出 在用户代码中执行runtime.Gosched()时执行以下代码。 // Gosched yields the processor, allowing other goroutines to run. It does not // suspend the current goroutine, so executioexecutionn resumes automatically. func G...阅读全文

简书 2020-05-11 07:32:43 不争_900c

一文看懂golang的sync包

一文看懂golang的sync包 sync包里包含的struct以及其功能 sync.Mutex: 互斥量(锁),主要是处理多个goroutine竞争同一个资源时候的同步问题。 sync.RWMutex: 读写互斥量(锁),相对Mutex而言能进行更细腻的控制,主要用在读多写少的情景下。 sync.WaitGroup: WaitGroup用于等待一组goroutine结束。 sync.Cond:实现一个条件变量,即等待或宣布事件发生的goroutines的会合点。 sync.Pool:临时对象池...阅读全文

简书 2020-05-11 07:32:42 一条大菜狗HS