随笔分类 - golang
摘要:1.创建go module项目 module的名字假设为go-test module项目创建成功后,将go.mod文件中的 module "go-test" 修改成 module "github.com/tonglin0325/go-test" 避免引用的时候go get报错,如下 go get g
阅读全文
摘要:wire是google开源的使用依赖注入来自动连接组件的代码生成工具 安装 go install github.com/google/wire/cmd/wire@latest 官方使用文档: https://github.com/google/wire/blob/main/docs/guide.md
阅读全文
摘要:gin是一款轻量级的go web开发框架,官方文档 https://gin-gonic.com/docs/examples/ 1.gin web项目结构 参考 https://github.com/voyagegroup/gin-boilerplate gin+protobuf wire参考 htt
阅读全文
摘要:官方文档 https://go-kratos.dev/en/docs/getting-started/start/ 1.安装Go 参考:mac安装go1.20 2.安装Kratos框架 kratos依赖protobuf grpc等框架,需要先进行安装 brew install grpc brew i
阅读全文
摘要:1.查找go依赖 go依赖可以去下面网站查找package https://pkg.go.dev/ 比如 https://pkg.go.dev/github.com/confluentinc/confluent-kafka-go#section-readme 2.go切换源 # 启用 Go Modu
阅读全文
摘要:1.casbin简介 casbin是一个可用于Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Lua (OpenResty), Dart (Flutter)和
阅读全文
摘要:可以使用pprof来分析golang程序的CPU性能,内存占用,block死锁,Goroutine性能等,pprof一般是在需要分析代码性能的时候才加入 1.分析Gin web服务的性能 可以使用 gin-contrib/pprof 这个工具,参考:Gin框架中使用pprof 添加依赖 go get
阅读全文
摘要:golang可以使用text/template来实现模板生成文本,官方文档:https://pkg.go.dev/text/template 1.变量 可以在模板中定义变量,然后将这些变量赋值到模板的变量中 import "text/template" // 定义结构体 type Inventory
阅读全文
摘要:官方文档 https://pkg.go.dev/github.com/go-redis/redis/v8#section-readme 添加依赖 go get github.com/go-redis/redis/v8 go get github.com/go-redis/redis/extra/re
阅读全文
摘要:官方下载地址 https://go.dev/dl/ 1.下载pkg版本的安装包,直接双击安装,比如 https://go.dev/dl/go1.20.12.darwin-amd64.pkg 这时默认的GOPATH路径(go依赖的下载路径)在~/go 2.也可以下载tar的压缩包进行安装 下载mac对
阅读全文
摘要:1.*和&的区别 & 是取地址符号 , 即取得某个变量的地址 , 如 &a * 是指针运算符 , 可以表示一个变量是指针类型 , 也可以表示一个指针变量所指向的存储单元 , 也就是这个地址所存储的值 参考:Go中*和&区别 println打印对象只能打印出其指针,需要使用fmt.Printf,如下
阅读全文
摘要:如果想在Gin Web服务中实现限流功能,可以使用ulule/limiter,uber-go/ratelimit 1.ulule/limiter ulule/limiter是一款支持分布式限流的框架,其可以在Redis中存储和共享限流状态,从而在分布式环境中实现一致的限流逻辑。 1.引用 go ge
阅读全文
摘要:gen是gorm官方推出的一个GORM代码生成工具 官方文档:https://gorm.io/zh_CN/gen/ 1.使用gen框架生成model和dao 安装gorm gen go get -u gorm.io/gen 假设有如下用户表 CREATE TABLE user ( `id` bigi
阅读全文
摘要:1.读取命令行参数 func main() { println("Hello ", os.Args[1]) } 配置arg 输出 Hello World 注意arg[0]是go程序的运行目录 2.使用flag加载环境变量 golang内置的标准库flag,可以用来读取配置文件的路径 func mai
阅读全文
摘要:下面介绍几种go的包管理工具,推荐使用go mod 1.go mod 参考:go学习笔记——引入依赖 2.Glide 参考:golang 依赖管理 /etc/profile #Go export GOROOT=/home/lintong/software/go export PATH=PATH:
阅读全文