随笔分类 -  go-每日一库

go使用sync.Pool的性能对比
摘要:在业务代码编码中,涉及到经常用前创建,用后销毁的资源,为了提高性能,减少内存分配,减轻GC压力,自然而然地就会联想到使用对象池的应用。 go在很多方面都有着sync.Pool的应用,我们经常使用的fmt.Println("balabala"),其实也用到了sync.Pool,不信可以自己去阅读源码。 阅读全文

posted @ 2022-12-20 11:09 进击的davis 阅读(318) 评论(0) 推荐(0)

[go-每日一库] go-gin项目使用realize实现代码、文件改动热更新
摘要:之前用django编写web应用时,每次保存,django应用都是重新加载-热更新,最近在写gin应用,了解到golang常用的热更新可以用到fresh/gin/gowatch/bee/realize/air等,本文主要分享realize的热更新应用。 realize 举个例子,有个叫demo的gi 阅读全文

posted @ 2022-12-05 23:55 进击的davis 阅读(555) 评论(0) 推荐(0)

[go每日一库] go-gin 使用swagger生成api文档
摘要:日常web开发的项目,由于涉及与前端同事沟通,每次修改都要去更新api文档,比较恼火,但好在有款api生成利器-swagger。 本文主要介绍swagger的基本使用,如需深入了解学习,请前往官方:https://github.com/swaggo/gin-swagger env go 1.19 g 阅读全文

posted @ 2022-12-03 14:32 进击的davis 阅读(1491) 评论(0) 推荐(0)

golang 标准库log的封装并实现日志切分
摘要:都知道golang的log库可以拿来就用,但对于生产来说还不够,需要基于log库做点封装。除了这些还有其他问题,比如打印字段定制化,性能问题。本文不讨论太多,只对log进行简单封装,实现log的持久化、loglevel、日志切分等功能。 参考: go原生log模块的简易封装 Golang 语言三方库 阅读全文

posted @ 2022-12-01 12:14 进击的davis 阅读(784) 评论(0) 推荐(0)

go-gin简单实现tls https服务
摘要:1.目录结构 2.代码 由于是demo,可以手动自生成证书和秘钥: 1、 生成服务器端的私钥 # openssl genrsa -out server.key 2048 2、 生成服务器端证书 # openssl req -new -x509 -key server.key -out server. 阅读全文

posted @ 2022-11-23 15:57 进击的davis 阅读(1213) 评论(0) 推荐(0)

go-gin实现文件上传
摘要:单个文件上传见代码 package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" ) func main() { server := gin.Default() gin.SetMode(gin.DebugMode) fmt.Pri 阅读全文

posted @ 2022-10-31 14:53 进击的davis 阅读(391) 评论(0) 推荐(0)

[go-每日一库] golang-grpc库-protoc基本参数与简单实践(一)
摘要:grpc使用protobuf进行序列化、反序列化,通常用protoc作为编译工具,对于go使用grpc作为rpc的框架,由于protoc工具未实现go-generate,我们需要使用protoc-gen-go插件帮我们生成go文件。 本文的分享分为以下方面: 准备工作 protoc工具的相关命令 p 阅读全文

posted @ 2022-07-21 18:22 进击的davis 阅读(2892) 评论(0) 推荐(0)

[go-每日一库] golang实现gin的获取响应体内容,请求与响应体的改写与获取
摘要:参考: gin中获取响应体内容 golang gin 代理和改包 由于在gin中不能直接获取响应体的信息,但可以通过Writer获取。 下面介绍下具体获取gin的响应的步骤。 1.定义新的ResponseWriter 代码: type ResponseWriterWrapper struct { g 阅读全文

posted @ 2022-07-20 10:42 进击的davis 阅读(3971) 评论(0) 推荐(0)

[go-每日一库] golang通过io/bufio库实现文件的读写及解封包操作
摘要:在日常操作中,对文件的操作比较多的是打开文件、关闭文件、读取内容、写入内容、打包、解包,今天分享个这些操作的基本case,用到的库也都是go自带的常用库,包括io、bufio、archive/zip等。 本文用到库的import: import ( "archive/zip" "bufio" "fm 阅读全文

posted @ 2022-07-16 14:47 进击的davis 阅读(980) 评论(0) 推荐(0)

[go-每日一库] golang olivere/elasticsearch/v6 的基本使用 -> 索引|文档常用操作及查询
摘要:准备工作 本文演示内容基于olivere/elasticsearch/v6 下载该库: go get github.com/olivere/elastic/v6 初始化es es初始化代码 func initES() *elastic.Client { sniffopt := elastic.Set 阅读全文

posted @ 2022-06-30 15:03 进击的davis 阅读(2454) 评论(0) 推荐(0)

[go-每日一库] go借助net/http包实现客户端get、post请求
摘要:本文主要通过net/http实现简单server,另外根据net/http,区分简单请求和带参数的复杂请求实现客户端。 1.server端 package main import ( "encoding/json" "log" "net/http" ) func main() { http.Hand 阅读全文

posted @ 2022-06-27 15:11 进击的davis 阅读(384) 评论(0) 推荐(0)

[go-每日一库] go语言文件处理
摘要:TODO 参考: 1.Go语言文件处理 阅读全文

posted @ 2022-06-25 14:53 进击的davis 阅读(44) 评论(0) 推荐(0)

[go-每日一库] golang 通过os/exec执行shell命令
摘要:直接上代码: package main import ( "fmt" "os/exec" "time" ) func main() { // 执行并等待结束,正确执行返回nil error, 同步 fmt.Println("cmd with run,", time.Now()) cmd := exe 阅读全文

posted @ 2022-06-25 11:03 进击的davis 阅读(524) 评论(0) 推荐(0)

[go-每日一库] golang借助json库实现struct/map与json的互转
摘要:话不多说,直接上代码。 1.功能函数 // json -> struct/map, dst should be ptr func Json2StructOrMap(raw string, dst interface{}) { _ = json.Unmarshal([]byte(raw), &dst) 阅读全文

posted @ 2022-06-24 16:00 进击的davis 阅读(287) 评论(0) 推荐(0)

[go-每日一库] golang中借助json等库实现struct和map互转
摘要:1.struct → map 1.1 version-1 指定struct中tag-map // version-1, struct -> map type User struct { Name string `map:"name,omitempty"` Age int `map:"age,omit 阅读全文

posted @ 2022-06-24 15:33 进击的davis 阅读(177) 评论(0) 推荐(0)

[go-每日一库] golang validator常规参数校验及自定义规则校验
摘要:1.validator简介 validator是一个开源的验证器包,可以快速校验输入信息是否符合自定规则。源码地址: https://github.com/go-playground/validator 本地开发安装库: go get github.com/go-playground/validat 阅读全文

posted @ 2022-06-23 10:28 进击的davis 阅读(6545) 评论(0) 推荐(0)

[go-每日一库] golang gin框架路由设置(全面)
摘要:1.一般路由设置 ... r.Any("/ping", anything) // r.POST("/post", posting) // r.PUT("/put", putting) // r.DELETE("/delete", deleting) // r.PATCH("/patch", patc 阅读全文

posted @ 2022-06-22 16:43 进击的davis 阅读(977) 评论(0) 推荐(0)

[go-每日一库]golang-gorm的事务处理(五)
摘要:原文链接: 1.(八)GORM事务处理 https://www.cnblogs.com/infodriven/p/16351565.html 1.自动事务 通过db.Transaction函数实现事务,如果闭包函数返回错误,则回滚事务。 db.Transaction(func(tx *gorm.DB 阅读全文

posted @ 2022-06-11 09:45 进击的davis 阅读(1375) 评论(0) 推荐(0)

[go-每日一库]golang-gorm实现关联查询(四)
摘要:原文链接: 1.(九)GORM 关联查询-属于 https://www.cnblogs.com/infodriven/p/16351582.html 2.(十)GORM 关联查询 - 一对一关系(has one)https://www.cnblogs.com/infodriven/p/1635159 阅读全文

posted @ 2022-06-11 09:41 进击的davis 阅读(4960) 评论(0) 推荐(0)

[go-每日一库]golang-gorm实现增删改查CRUD(三)
摘要:原文链接: 1.(四)GORM插入数据 https://www.cnblogs.com/infodriven/p/16351285.html 2.(五)GORM查询数据 https://www.cnblogs.com/infodriven/p/16351370.html 3.(六)GORM更新数据 阅读全文

posted @ 2022-06-11 09:19 进击的davis 阅读(1565) 评论(0) 推荐(0)

导航