![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
XR风云
云计算、边缘计算、VR/AR,是一个奋斗者,坚持没有退路,就是必胜之路。
展开
-
正确使用Golang的Channel
channel 是什么Don't communicate by sharing memory, share memory by communicating.相信写过 Go 的同学都知道这句名言,可以说 channel 就是后边这句话的具体实现。我们来看一下到底 channel 是什么?channel 是一个类型安全的队列(循环队列),能够控制 groutine 在它上面读写消息的行为,比如:阻塞某个 groutine ,或者唤醒某个 groutine。不同的 groutine 可以通..转载 2020-06-04 08:43:44 · 354 阅读 · 0 评论 -
golang的Once研究
通过 Once学习 Go 的内存模型Once 官方描述Once is an object that will perform exactly one action,即 Once 是一个对象,它提供了保证某个动作只被执行一次功能,最典型的场景就是单例模式。单例模式package mainimport ( "fmt" "sync")type Instance struct...转载 2019-12-19 20:07:20 · 2595 阅读 · 0 评论 -
go学习资料以及开源代码
转自:https://shockerli.net/post/go-awesome/?utm_source=tuicool&utm_medium=referral嗯~世界上第二好的语言,这里有你可能想要的:pill:在 GitHub上稳定更新,觉得不错请点个 Star :heart:如转载分享,请保留出处,谢谢 :laughing:原文地址: https://shocker...转载 2019-10-30 08:49:26 · 1131 阅读 · 0 评论 -
分布式ID(唯一性)的生成方法
我们在开发分布式系统的时候,我们对数据库的中的ID要保证唯一性,在数据库分库分表的时候,我们可能利用id的唯一性。今天介绍一种生成分布式ID的方法SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。这 64 个 bit 中,其中 1 个 bit 是不用的,然后用其中的 41 bit 作...原创 2019-04-11 16:45:16 · 915 阅读 · 0 评论 -
go mod 设置代理下载依赖包,溜溜的
最近在做数据库迁移的问题,用到了go版本的migrate工具,这个工具有个bug,需要下载源代码进行编译,苦于go mod下载google的依赖包都不能下载下来,所以想办法来进行下载。数据库迁移源代码git:git clone -b v4.3.1 https://github.com/golang-migrate/migrate.git进入到migrate目录,进行配置代理,我们用公共...原创 2019-05-15 11:40:56 · 5093 阅读 · 1 评论 -
golang版本的数据库迁移工具(数据库升级回滚)
我们在工作中,总会用到数据库升级回滚、版本管理用具,最近迷恋go语言的工具,所有就开始使用golang版本的数据库迁移工具1、数据库迁移darwin- Go 实现的数据库 schema 演进库 goose- 数据库迁移工具。可通过创建增量 SQL 或 Go 脚本来管理数据库的演变 gormigrate- Gorm ORM 的数据库迁移助手 migrate- Go 实现的数据库...原创 2019-05-15 20:28:34 · 4702 阅读 · 0 评论 -
活学活用golang的反射机制
了解和使用golang有一段时间了,由于项目比较赶,基本是现学现卖的节奏。最近有时间会在简书上记录遇到的一些问题和解决方案,希望可以一起交流探讨。需求在golang中,给定一组数据,例如 map[string]interface{}类型的数据,创建一个对应的struct并赋值简易实现var data = map[string]interface{}{ "id": 1...原创 2019-06-13 17:36:28 · 1094 阅读 · 0 评论