1、标准库 对应 php 核心扩展

fmt
time
flag/os.Args
log 标准化日志库
io操作 os/bufio/ioutil
strconv // 基本数据类型与其字符串表示的转换
html相关 html、html/template、text/template
net/http

2、第三方库 对应 php 扩展

2.0 数据库操作 如:mysql/redis/mongoDB等 操作库
gorm   -- 已了解  -- 已使用
xorm
go get go.mongodb.org/mongo-driver/mongo   // mongoDB官方提供的操作库
go get go.etcd.io/etcd/client/v3           // etcd v3 版本操作库
go get github.com/coreos/etcd/clientv3     // 实现了 v3 的官方 Go etcd 客户端
2.1 redis 操作库
go get github.com/garyburd/redigo/redis   redis操作库(已归档)
go get github.com/gomodule/redigo/redis   redis操作库(新的)
go get github.com/go-redis/redis/v8       redis操作库
2.2 读取配置 .env/ini/yaml 等
go get github.com/joho/godotenv  读取.env中的环境变量              -- 已了解
go get github.com/spf13/viper    读取配置支持多种格式(不支持conf)   -- 已了解
go get gopkg.in/ini.v1           读取ini
go get gopkg.in/yaml.v1/2/3      读取yaml
go get github.com/pelletier/go-toml     // toml解析库
2.3 日志记录
go get go.uber.org/zap                         uber 开发使用的日志库         -- 已了解
go get github.com/sirupsen/logrus              docker使用的第三方日志库
go get github.com/natefinch/lumberjack         日志切割归档
go get github.com/lestrrat-go/file-rotatelogs  日志轮询机制(日志定期清理,保存)
2.4 UUID 实现
go get github.com/satori/go.uuid
2.5 验证库
github.com/go-playground/validator/v10   // 表单验证库 (结构体中 定义验证规则)  -- sy
github.com/go-ozzo/ozzo-validation       // 定义验证函数
2.6 获取系统信息
github.com/shirou/gopsutil    // 系统性能数据库
github.com/StackExchange/wmi  // 使用WMI读取硬盘S.M.A.R.T信息
2.7 权限管理
github.com/casbin/casbin         // 有版本区分
github.com/casbin/gorm-adapter   // Canbin 的 gorm 适配库(有版本区分)
2.8 验证码
github.com/dchest/captcha         // 图片验证码
github.com/mojocn/base64Captcha   // base64的图片验证码
2.9 数据处理/类型转换
github.com/mitchellh/mapstructure  // map转结构体 -- sy
github.com/spf13/cast              // 类型转换库  -- sy
github.com/mailru/easyjson         // 快速进行json序列化与反序列化的工具包
github.com/jehiah/go-strftime      // 格式化时间
github.com/json-iterator/go        // JSON 迭代 解析器
github.com/imdario/mergo           // 合并结构体字段的库 (docker官方使用的库)
github.com/xeipuuv/gojsonschema    // Go 编程语言的 JSON Schema 实现 (docker官方使用的库)
github.com/morikuni/aec            // Go ANSI 转义码的包装器
github.com/fvbommel/sortorder      // 排序和顺序比较功能
github.com/creack/pty              // Pty 是一个使用 unix 伪终端的 Go 包

github.com/moby/term               // 提供结构和辅助函数来处理终端(状态、大小)
2.10 定时插件库
github.com/robfig/cron  -- sy
2.11 命令行参数解析包
github.com/spf13/pflag      // 比官方flag更好用的 命令行解析包 (docker 官方使用的包)
2.12 文件系统库
github.com/spf13/afero
2.13 第三方errors包
github.com/pkg/errors
2.14 身份验证和OAuth
github.com/dgrijalva/jwt-go // JSON Web令牌(JWT)的Golang实现
github.com/golang-jwt/jwt   // JWT -- echo 在用
2.15 邮件处理
github.com/jordan-wright/email  -- ts
2.16 即时消息、实时通信
go get gopkg.in/olahol/melody.v1       // 微型 WebSocket 框架,底层基于 gorilla/websocket, melody 仓库地址: https://github.com/olahol/melody
go get github.com/gorilla/websocket    // WebSocket 框架 ,https://github.com/gorilla/websocket

Centrifugo 用 Golang 实现的基于 Websocket 或者 SockJS 的实时通信平台
项目地址:https://github.com/centrifugal/centrifugo

message-bus 消息队列

go get github.com/vardius/message-bus
2.17 其他
github.com/fsnotify/fsnotify   // 监控文件,并通过文件变化重启程序
github.com/fvbock/endless      // 优雅的实现重启服务

github.com/go-openapi/spec     // openapi
github.com/go-openapi/swag     // openapi
github.com/gookit/color        // 命令行色彩库

github.com/tonistiigi/fsutil   // golang 中的增量文件目录同步工具 (docker 使用的第三方库)
// api 接口生成
github.com/swaggo/swag
github.com/swaggo/gin-swagger


github.com/stretchr/testify    // 测试框架 -- echo 在用
github.com/valyala/fasttemplate  // 模板库 -- echo 在用
github.com/mattn/go-colorable    // 颜色输出代码库 -- echo 在用
备注:

golang.org/x 的包 可能是 官方 带有实验特性的 一些 扩展包

3、Golang单元测试对文件名和方法名

1、文件名必须以xx_test.go命名
2、方法必须是Test[^a-z]开头
3、方法参数必须 t *testing.T
4、使用go test执行单元测试
作者:admin  创建时间:2021-10-08 11:03
最后编辑:joker.liu  更新时间:2023-05-11 09:06