关于 Golang defer 的使用规则和案例

golang defer 这个使用的执行流程一直很绕,所以决定写一篇文记录一下。 规则一:当defer被声明时,其参数就会被实时解析 案例一 package main import ( "fmt" ) func main() { test() } func test() { defer f1(f2()) fmt.Println("2") return } func f1(i int) int { return i } func f2() int { fmt.Println("1") return...阅读全文

简书 2020-04-21 17:35:16 DukeAnn

UUID简介及Golang实现

简介 UUID 的目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中心节点指定,无需考虑数据库创建时的名称重复问题。 目前最广泛应用的 UUID 是 RFC4122 协议规范的,有时 GUID 也特指是微软对标准 UUID 的实现,其实 RFC4122 的作者之一也是微软员工。 规范标准 Universally Unique IDentifier, UUID 是一个 128 位的数字,一般通过 32 个十六进制表示,被连字符分为五段,例如: 00d460f0-ec1a-4a0f...阅读全文

简书 2020-04-21 17:35:16 Avery_up

解决vscode中golang插件安装失败方法

在学习go的过程中,使用的是vscode,但是一直提示安装相关插件失败,然后上网查方法,基本上是叫你建立golang.org目录什么的,结果全是错的,而且都是抄袭,很烦。无意之中看到一位博主分享的方法,他也是饱受上述的垃圾博文困扰,然后找到了解决方法,这里向他致敬,秉着让更多人看到正确解决方法的心,我写下正确的解决方法,希望对你有所帮助,也可以点开原博主链接参考:https://www.cnblogs.com/xll970105/p/11906899.htmlGo有一个全球模块代理,设置代理再去...阅读全文

简书 2020-04-21 17:35:15 今晚打打老虎虎

在MAC下安装Go环境和beego

在MAC下安装Go环境和beego 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 在写一个博客系统需要用到beego,但是电脑有重装了一次,所以这次重新安装一下go的环境 下载go 给出一个下载地址 https://golang.google.cn/dl/ mac电脑使用这个版本的就好了 image-20200421143428667 下载之后我们按照步骤安装即可 测试 go version image-202004...阅读全文

简书 2020-04-21 17:35:14 归子莫

Fortify安全编码规则包更新--2020.1.0

Fortify软件安全研究团队将前沿研究转化为增强Fortify产品组合(包括Fortify静态代码分析器(SCA),Fortify WebInspect和Fortify Application Defender)的安全情报。如今,MicroFocus Fortify软件安全性内容支持26种编程语言中的1,019个漏洞类别,涵盖了超过一百万个单独的API。Fortify软件安全研究(SSR)欣然宣布Fortify安全编码规则包(英语,版本2020.1.0),Fortify WebInspect ...阅读全文

简书 2020-04-21 17:32:32 sinocax

分步式一致性缓存解决方案version_cache

# version_cache version_cache是一个分步式一致性缓存解决方案。 原理:job 将数据打包成版本到redis,实例将存在redis的版本load到本地内存并计算最新版本的生效时间,使所有实例的缓存在同一时间生效来达到所有实例数据的一致。 实用场景:数据量少、非及时生效数据、高并发强一致的场景。如:配置服务,门店服务等 优点: 1. 轻松实现水平扩展,实现千万并发的服务不是梦 2. 数据强一至性,不论启动多少实例,同一时间的数据绝对是一致的(服务器...阅读全文

Go语言中文网 2020-04-21 16:56:21 rushui

从零学习 Go 语言(10):流程控制之for 循环

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 **系列导读** [从零学习 Go 语言(01):一文搞定开发环境的搭建](https://studygol...阅读全文

Go语言中文网 2020-04-21 12:31:01 hello_wbm

Go 每日一库之 gron

简介 gron是一个比较小巧、灵活的定时任务库,可以执行定时的、周期性的任务。gron提供简洁的、并发安全的接口。我们先介绍gron库的使用,然后简单分析一下源码。 快速使用 先安装: $ go get github.com/roylee0704/gron 复制代码后使用: package main import ( "fmt" "sync" "time" "github.com/roylee0704/gron" ) func main() { var wg sync.WaitGroup wg....阅读全文

掘金 2020年04月21日 darjun

区块链

区块链技术起源于化名为“中本聪”(SatoshiNakamoto)的学者在 2008 年发表的奠基性论文《比特币: 一种点对点电子现金系统》。狭义来讲, 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。阅读全文

Go语言中文网 2020-04-21 10:05:02 wjl2020

golang实现常用集合原理介绍

# golang实现常用集合原理介绍 ## [ArraySort排序数组](https://github.com/chentaihan/container/blob/master/array/arraySort.go) ArraySort使用数组保存数据,新增的时候通过类似二分查找找到插入位置,插入位置后面的数据往后移动一位,插入新元素,查找就是二分查找,删除就是通过二分查找找到对应的元素,之后的元素都向前移动一位。时间复杂度如下: | 功能 | 时间复杂度 | | :--...阅读全文

Go语言中文网 2020-04-21 09:32:22 chentaihan

Golang——详解Go语言代码规范

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Golang专题的第二篇,我们来看看Go的语言规范。 在我们继续今天的内容之前,先来回答一个问题。 有同学在后台问我,为什么说Golang更适合分布式系统的开发?它和Java相比有什么优势吗? 其实回答这个问题需要涉及很多概念,比如操作系统当中关于进程、线程、协程等很多概念。我们将这些内容进行简化,举一个最简单的线程的例子。我们来写一段在java当中实现多线程的例子: public class MyThread implemnts...阅读全文

掘金 2020年04月20日 承志

「Go」byte、rune与string

不积跬步,无以至千里;不积小流,无以成江海。 码字不易,点赞再看。 byte 占用1个节字,也就是 8 个比特位,所以它和 uint8 类型本质上没有区别,它表示的是 ACSII 表中的一个字符。 如下这段代码,分别定义了 byte 类型和 uint8 类型的变量 a 和 b import "fmt" func main() { var a byte = 65 // 8进制写法: var c byte = '\101' 其中 \ 是固定前缀 // 16进制写法: var c byte = '\x...阅读全文

简书 2020-04-20 21:32:43 不住隔壁的王老师

Let’s Encrypt证书吊销事故的思考

title: "Let’s Encrypt证书吊销事故的思考" date: 2020-03-28T00:11:54+08:00 description: "如何保障代码的安全性?" featured_image: "" categories: "其它" tags: [] 前段时间一则新闻引爆了程序界:《一行Golang代码引发的血案——全网最详细分析2020年3月Let’s Encrypt证书吊销事故》。 这个事故的原因上文已经说得很清楚了,这里摘抄一下: 那么这个软件到底出现了什么问题才会导致...阅读全文

简书 2020-04-20 21:32:41 jmjoy

docker镜像(from 容器)的环境变量

还没学会如何使用DockerFile从头开始创建docker镜像。业务需要,直接从本地的容器里进行环境更新。 系统环境变量 目前的环境需要—— Java sonar-scanner sonar-scanner-eslint (前端扫描自定义的sonar) eslint-cars-server (前端封装后的服务) node go 使用root用户,将需要的环境变量添加到/etc/profile和/root/.bashrc文件下,类似—— export JAVA_HOME=/usr/java/jd...阅读全文

简书 2020-04-20 21:32:40 戈壁堂

golang html template 使用

golang html 模板使用 有时后台开发人员需要将后台数据展示出来, 便于查看, 如果这个时候让前端配合写个页面,人力成本就比较大。自己也没有精力去熟悉响应的web框架。自己上手咯。 我需要展示的数据是表格的形式, 后台代码最终返回处理好的html就行, 但是需要展示的数据量太大,没办法手动写一个html. 此时就可以用到golang的html 模块了。 直接上代码吧. 实例代码 package main import ( "encoding/json" "fmt" "github.com...阅读全文

简书 2020-04-20 21:32:40 he的博客

为什么你总是一个忙碌的项目经理

很多项目经理喜欢把“忙”这个词挂在嘴边。如果看他们的时间表,看上去确实很忙,加班是家常便饭。他们往往陷入了“忙”的误区,认为“忙”是事业成功的必要代价,甚至陷入一种“嗜忙”的状态,一刻都闲不下来。然而,这种“忙”真的是有效率么?1. 农夫的一天 有一个农夫一早起来,告诉妻子说要去耕田,当他走到40号田地时,却发现耕耘机没有油了;原本打算立刻要去加油的,突然想到家里的三四只猪还没有喂;于是转回家去,经过仓库时,望见旁边有几只马铃薯,他想起马铃薯可能正在发芽;于是又走到马铃薯田去;路途中经过木材堆,...阅读全文

简书 2020-04-20 21:32:39 陌若尘_c167

2020 区块链 golang 版本(1)

封面 甜点 现在无论是区块链还是深度神经网,个人感觉都是一种大量相对低级计算组合。用大量简单逻辑来实现对复杂逻辑的模拟的过程。 golang-gopher.png golong 昨天用 rust 写了一个简单区块链,可能大家认为这个连一个区块链玩具都算不上,那么今天我们就用 go 来实现一个区块链玩具。去年学了一段 golang ,然后因为没有派上用场就暂时放下了,最近发现 golang 这门语言发展迅速,主要引用在 容器,docker 其实是 golang 的第一个最佳实践 中台服务 BS 的...阅读全文

简书 2020-04-20 21:32:38 zidea

Golang基础知识-概念篇

1、go中使用struct模拟类和对象 type Bike struct{ color string //首字母小写表示属性私有 Name string //首字母大些表示属性公有 } //首字母大些表示方法对外公开 func (b *Bike) Move() string{ return b.color } 2.三大基本特性 封装:首字母大小写代表公私有权限 继承:使用内嵌的方式,对结构体struct进行组合 多态:使用interface实现 3、五大基本原则 1、单一功能原则(struct)...阅读全文

一个成功的程序员,自然要懂微服务,汇总微服务架构的15钟框架!

这几年来,微服务这个概念越来越火了,火到什么程度呢? 2019年有一个统计说,两千家企业里,45%在使用微服务,16%在实验开发和测试微服务架构,24%在学习微服务准备转型,只有剩下的15%的企业没有使用微服务。 微服务到底有什么好呢? 微服务在2013年才被提出,短短几年就有这么快速的发展。 微服务架构能够实现由小型自主服务组成一个整体应用,各个组成部分之间是松耦合的,复杂性低,各个部分可以独立部署,修复bug或者引入新特性更容易,能够独立扩展,不同技术栈之间可以使用不同框架、不同版本库甚至不...阅读全文

简书 2020-04-20 17:40:23 专攻计算机从业者