Go
Golang
LitongZero
哪怕命运即为必然,也要拼命相抗
展开
-
Go 并发执行
Go 并发执行需要并发执行的场景有很多:爬虫、拉取数据、更新数据…Go作为天生高并发的语言,在使用并发时是比较方便的。Demo案例package mainimport ( "fmt")func main() { ConcurrentWork(5, func() { // ...业务逻辑 fmt.Println("123123123123") })}/** * @Description: 开启多线程执行 * @param total 启动线程数 * @param原创 2020-12-22 17:01:34 · 782 阅读 · 6 评论 -
Go 错误码初始化
Go 错误码初始化错误码是程序中,经常需要用到的,一般在Map中定义…key为code,value为msg1.Map初始化由于这个Map只需要初始化一次,所以,可以使用Go基础包中的sync.Once。来保证,Init只运行一次,极大的减少了程序的运行开销。2.代码此处以单元测试的形式体现。Go语言的单元测试,可以看我的另一篇博文。import ( "fmt" "sync" "testing")var once sync.Oncevar mapErrMsg map[int原创 2020-12-11 11:28:50 · 821 阅读 · 0 评论 -
Go 单元测试
Go 单元测试单元测试是开发中非常重要的环节之一。在开发完成后、迭代改动后、代码改动后、添加功能后…快速的帮助开发人员完成代码的测试。一.目标不区分语言,一个函数、一个方法、一句SQL、一段业务代码,都可以成为单元测试的目标。单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。我们知道,在开发时越早发现BUG,就能节省更多的时间,降低更多的风险。二.目的单元测试一般由输入数据和预期输出组成。输入数据:Request,输入的请求参数。预期输出:Resp原创 2020-11-27 18:04:08 · 646 阅读 · 1 评论 -
Go-micro异常捕获
Go-micro异常捕获在go-micro服务层,添加异常捕获机制,并发送报警。本文提供的只是一种捕获异常的思路:通过添加Handler实现。1.注入拦截器初始化时,添加异常捕获Handler。部分代码...//初始化服务config.Service = grpc.NewService( micro.Name("MyService"), micro.Address(...), // 添加异常拦截 micro.WrapHandler(utils.WxErrorHandler()),原创 2020-11-25 13:52:51 · 543 阅读 · 0 评论 -
Gorm 只更新某一字段
Gorm 只更新某一字段背景在开发中,可能会遇到,需要更新这一条数据的某一字段,但是并不想修改其的UpdatedAt字段。如:数据浏览量。正常更新...err = d.db.Model(&repository.UserInfo{}).Where("id = ?", id).Update(repository.UserInfo{ ViewsCount: viewsCount+1, }).Error...只更新某一字段(UpdatedAt字段不会更新)...err =原创 2020-11-16 17:08:13 · 7549 阅读 · 2 评论 -
gRPC+ProtoBuf
gRPC+ProtoBuf-微服务传输协议微服务中,常见的传输协议有HTTP+Json、gRPC+ProtoBuf。同HTTP+Json一样,gRPC+ProtoBuf同样适用于跨语言传输。前提是,使用相同的协议原文件(.proto)生成各自的协议文件(.pb.go\.pb.cc\.java)协议格式user.proto// proto 协议版本syntax = "proto3";package user;// 包路径option go_package = "common/proto原创 2020-10-31 15:04:06 · 857 阅读 · 1 评论 -
Gin增删改查demo
Gin增删改查demo一个Gin框架的联手demo、包括增删改查等等。1.使用技术GinGormMysql…2.项目结构目录│ postman_collection.json // postman配置文件│ db.sql // 数据库表结构│ config.yaml // 配置文件│ go.mod // 包依赖配置│ main.go // 程序入口├─api│ └─v1 // api 方法│ sys_user.原创 2020-10-25 16:16:27 · 2029 阅读 · 5 评论 -
assignment mismatch: 2 variables but uuid.NewV4 returns 1 values
assignment mismatch: 2 variables but uuid.NewV4 returns 1 values在使用github.com/satori/go.uuid包生成uuid时,突然发现一个很奇怪的问题。如下图示。编译器和启动时,报错冲突。启动时,报错。报错提示uuid.NewV4()函数,只有一个返回值。点进函数内部去发现确实是两个参数。只接受一个参数发现只接受一个参数,可以启动,但是编译器又报错。最终解决。在该项目的github->issues原创 2020-10-22 10:37:55 · 3495 阅读 · 0 评论 -
Go Http 使用案例
net/http包使用案例。GET、POST请求示例。get请求import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http")func get(id string) { client := &http.Client{} // 创建请求 req, _ := http.NewRequest( "GET", "https://csdn.com?id="+id, nil) // 添加请求头 req..原创 2020-08-29 23:08:30 · 475 阅读 · 1 评论