go module基本使用
前提
go版本为1.13及以上
官方文档
如果你想更深层次的了解GO MODULE的意义及开发者们的顾虑,可以直接访问官方文档(EN)
https://github.com/golang/go/wiki/Modules
go module介绍
go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用
Go module 构建模式是在 Go 1.11 版本正式引入的,为的是彻底解决 Go 项目复 ...
go mod 安装依赖 unkown revision问题解决
文章以后首发在yuque上,https://www.yuque.com/qianwang/testway/isdt9n
背景
公司一个golang的项目,使用到了公司的私有仓库,去执行go mod tidy(下载依赖)的时候,到download公司私有库的时候就报错,报错信息也不明显,只是提示找不到影响版本unkown revision
小知识
go mod
golang用来管理用来的,类似java的ma ...
如何快速高效率地学习Go语言
要想快速高效率地掌握Go语言,关键是要通过不断写代码去训练,熟能生巧。方法是没问题的,但具体的路径呢?就像开车,能不能给个导航?我希望这篇文章能起到一个导航的作用,这里提供的路径,应该对很多人都适合。当然每个人的具体情况不同,因此路径会有差异。你可以对这个路径进行剪裁,得到最适合自己的。
目标(快速, ...
golang jwt-go的使用
JWT(json web token)
jwt
jwt的原理和session有点相像,其目的是为了解决rest api中无状态性
因为rest接口,需要权限校验。但是又不能每个请求都把用户名密码传入,因此产生了这个token的方法
流程:
https://blog.wangjunfeng.com/post/golang-jwt/#3-%E7%AD%BE%E5%90%8D-signature
用户访问auth接口,获取token
服务器 ...
Go标准库之html/template
html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容。它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用html/template`这个包。
一、模板与渲染
在一些前后端不分离的Web架构中,我们通常需要在后端将一些数据渲染到HTML文档中,从而实现动态的网页(网页的布局和样式大致 ...
Go语言命名规范
一、变量命名规范
变量命名一般采用驼峰式,当遇到特有名词(缩写或简称,如DNS)的时候,特有名词根据是否私有全部大写或小写。例子:
var apiClient
var URLString
二、常量命名规范
同变量规则,力求语义表达完整清楚,不要嫌名字长。 如果模块复杂,为避免混淆,可按 ...
Go进行wasm编程
wasm即webAssemble,是一种不针对特定平台的二进制格式文件。Go从1.11开始支持wasm,最初通过js.NewCallBack()注册函数,1.12开始换成了FuncOf()。
Go开发wasm需要一个go文件用于编写实现代码,编译成.wasm文件;需要一个wasm_exec.js文件,这个是Go提供的,可以从 Go 安装目录的 misc 子目录里找到,将它直接拷贝过来。它 ...
Go性能分析大杀器PPROF
这是什么
想要进行性能优化,Go本身自带的工具链就包含了性能分析工具,而且也非常棒,pprof就是Go性能分析的利器,它是Go语言自带的包,有如下两种:
runtime/pprof:采集程序(非 Server)的运行数据进行分析
net/http/pprof:采集 HTTP Server 的运行时数据进行分析,这个其实在上面的功能中包了一层提供了http接口。
...
Go 的位操作
在计算机内存昂贵,处理能力有限的美好旧时光里,用比较骇客的位运算方式去处理信息是首选方式(某些情况下只能如此)。时至今日,直接使用位运算仍然是很多计算领域中不可或缺的部分,例如底层系统编程,图形处理,密码学等。
Go 编程语言支持以下按位运算符:
& bitwise AND
| bitwise OR
^ bitwise XOR
&^ AND NOT
<< l ...
go go-metrics
go-metrics介绍
go-metrics — 对Go应用的某个服务做监控、做统计,应用级监控和测量。
源码 : https://github.com/rcrowley/go-metrics
文档:http : //godoc.org/github.com/rcrowley/go-metrics。
Metrics提供5种基本的度量类型:Gauges, Counters, Histograms, Meters和 Timers。
Gauge
Ga ...
Go 流式 IO
原文链接:基本的 IO 接口
原文链接:方便的IO操作函数集
图片来源:图片显示来源
1. 1.1 io — 基本的 IO 接口
io 包为 I/O 原语提供了基本的接口。它主要包装了这些原语的已有实现。
由于这些被接口包装的I/O原语是由不同的低级操作实现,因此,在另有声明之前不该假定它们的并行执行是安全的。
在 io 包中最重要的是两个 ...
Go 原子操作sync.atomic
sync.atomic
atomic 提供的原子操作能够确保任一时刻只有一个goroutine对几种简单的类型进行原子操作进行操作,善用atomic能够避免程序中出现大量的锁操作。这些类型包括int32,int64,uint32,uint64,uintptr,unsafe.Pointer,共6个。这些函数的原子操作共有5种:增或减,比较并交换、载入、存储和交换它们提供了不同的 ...
go 一步步实现Goroutine Pool
Goroutine Pool架构
超大规模并发的场景下,不加限制的大规模的goroutine可能造成内存暴涨,给机器带来极大的压力,吞吐量下降和处理速度变慢。
而实现一个Goroutine Pool,复用goroutine,减轻runtime的调度压力以及缓解内存压力,依托这些优化,在大规模goroutine并发的场景下可以极大地提高并发性能。
&nb ...
goland设置go module
goland版本2019.3.2
go版本1.14
网上一大堆乱七八糟的什么破文章,讲了半天都没讲清这个go module怎么实际运用,真滴烦躁,一giao我哩giaogiao!!!!!
这边我直接介绍下goland怎么用go module导包好了,其他功能不做介绍
1.打开setting
镜像有很多种,上网找
2.go init m ...
Go语言SQL注入和防注入
Go语言SQL注入和防注入
一、SQL注入是什么
SQL注入是一种注入攻击手段,通过执行恶意SQL语句,进而将任意SQL代码插入数据库查询,从而使攻击者完全控制Web应用程序后台的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序验证,比如绕过登录验证登录Web身份验证和授权页面;也可以绕过网页,直接检索数据库的所有内容; ...
Go Mysql驱动
Golang中MYSQL驱动
Mysql库https://github.com/go-sql-driver/mysql
Go本身不提供具体数据库驱动,只提供驱动接口和管理。
各个数据库驱动需要第三方实现,并且注册到Go中的驱动管理中。
安装golang mysql drvier
go get github.com/go-sql-driver/mysql
代码中需要注册mysql数据库驱动,通过引入空白导入mysql包 ...
go.js
gojs插件
是一个前端插件,可以通过代码动态的生成流程图,各自展示图
参考网址:https://gojs.net/latest/index.html
如果你想使用,需要先下载对应的文件
我们能用的到的其实就三个文件
"""
gojs.js 上线 需要导入的js文件
go-debug.js 开发 会帮你打印错误日志
上面两个文件就类似于一个是压缩的一个是没有压缩的
...
go 优雅的检查channel关闭
原文作者:shitaibin
链接:https://www.jianshu.com/p/79d27f200bcf
來源:简书
goroutine作为Golang并发的核心,我们不仅要关注它们的创建和管理,当然还要关注如何合理的退出这些协程,不(合理)退出不然可能会造成阻塞、panic、程序行为异常、数据结果不正确等问题。这篇文章介绍,如何合理的退出goroutine,减少软 ...
Go操作Elasticsearch
Elasticsearch
Elasticsearch
下载
https://www.elastic.co/cn/start
运行
解压后cd到解压目录 ./bin/elasticsearch
介绍
Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数 ...
Go操作influxDB
influxDB
安装
下载
https://portal.influxdata.com/downloads/
这里需要注意因为这个网站引用了google的api所以国内点页面的按钮是没反应的,怎么办呢?
按照下图所示,按F12打开浏览器的控制台,然后点击Elements,按下Ctrl/Command+F搜索releases/influxdb,按回车查找自己所需版本的下载地址。&nbs ...