Go之开发小功能集合(viper获取配置信息,test编写测试单元,用户目录获取,JWT安全校验,字符串去重,Swag...
提示:
该链接是go语言小工具:
https://www.kancloud.cn/congzaifeng/go_third_party_libraries/467593
Go语言学习全面文档:http://www.topgoer.com/
1. 需求在开发中采用非beego框架,的一些项目比如Gin需要进行相关的配置,那么配置文件就是关键,如何获取配置文件的内容是最大的需求,下面就是关于Goland获取配置文件的方式。
Golang首先就是开发过程中遇到的viper配置模块:
https://blog.csdn.net/sd653159/article/details/83143760
步骤: 创建项目配置文件和主函数,配置文件和主函数
/**
* @Author GCG
* @Date : 2020/11/11
* @Description: 功能描述,获取配置文件小工具,Viper
*/
func Test3(t *testing.T) {
fmt.Println("--------------测试相关的Viper,配置文件信息获取------------")
//读取yaml文件
v := viper.New()
//设置读取的配置文件
v.SetConfigName("settings")
//添加读取的配置文件路径
v.AddConfigPath("./conf/")
//设置配置文件类型
v.SetConfigType("yml")
if err := v.ReadInConfig(); err != nil {
fmt.Printf("err:%s\n", err)
}
fmt.Println(v.Get("settings.application.name"))
v.Set("gg","gcg") //viper提供了键值对的设置,采用set将值写进v中,然后就是可以像配置文件中的字段值获取方式相同。
fmt.Println(v.Get("gg"))
}
2. 一步步教你编写可测试的Go语言代码(在Goland中添加单元测试)
相信每位编程开发者们应该都知道,Golang作为一门标榜工程化的语言,提供了非常简便、实用的编写单元测试的能力。本文通过Golang源码包中的用法,来学习在实际项目中如何编写可测试的Go代码。有需要的朋友们可以参考借鉴,下面跟着小编一起去学习学习吧。
Golang单元测试对文件名和方法名,参数都有很严格的要求。
例如:
1、文件名必须以xx_test.go命名
2、方法必须是Test[^a-z]开头
3、方法参数必须 t *testing.T
步骤:
首先: 在项目中创建test文件夹,然后在test中添加文件名xxx_test.go(注意,一定按照这种规范进行命名)
其次:编写相关的代码,如下图所示:
package test
import (
"fmt"
"testing"
)
func TestHello(t *testing.T){
fmt.Println("Hello World!")
}
3. go-homedir用户路径检索工具(获取用户根目录)
package main
import (
"fmt"
"github.com/mitchellh/go-homedir"
)
func main() {
home, _ := homedir.Dir()
fmt.Println("home->", home)
}
windows下结果 : C:\Users\cc
linux 下结果: /root
4. JWT安全校验工具(基于gin进行相关的设计)
https://blog.csdn.net/gcglhd/article/details/109667750
5. go语言字符串去重(高效处理,采用map主键唯一方式,将每次遍历的数据费map的主键k值)
唯一需要考虑的就是再返回新的字符串切片的之前先将map赋值为nil便于map的内存回收.
https://blog.csdn.net/qq_21794823/article/details/88076662
6. Swag在线接口文档 (采用gin-swag 包实现swagger接口文档 )
https://www.jb51.net/article/195124.htm
7. 画字符图像网址:(该功能是自定义实现图像的生成,然后产生字符的文件,可以直接进行相关的启动获取,本人在启动项目的时候添加了该图标,类似于Beego的图标)
几个常用的字符画生成网站
http://www.network-science.de/ascii/ 这个是比较常用的,可以根据输入的字符生成字符画
http://patorjk.com/software/taag/
http://www.degraeve.com/img2txt.php 可以根据在线的图片网址生成字符画,比如可以直接将公司logo的地址粘贴进去生成字符画,风格还算正常.
8. Gin的模式选择
https://blog.csdn.net/helen920318/article/details/105044847
9. Iota枚举的创建(Iota会根据换行自动的加1)
https://www.cnblogs.com/nulige/p/10199722.html
iota会自动换行 1,不使用iota的效果如下:
const (
TextBlack = 30
TextRed
TextGreen
TextYellow
TextBlue
TextMagenta
)
func Test19(t *testing.T) {
fmt.Println(TextGreen)
fmt.Println(TextBlue)
}
结果:
log.level:INFO
=== RUN Test19
30
30
--- PASS: Test19 (0.00s)
PASS
添加iota的测试如下:
const (
TextBlack = iota 30 //添加Iota方式。
TextRed
TextGreen
TextYellow
TextBlue
TextMagenta
)
func Test19(t *testing.T) {
fmt.Println(TextGreen)
fmt.Println(TextBlue)
}
结果:
log.level:INFO
=== RUN Test19
32
34
--- PASS: Test19 (0.00s)
PASS
10.基于promhttp的监控器
https://blog.csdn.net/ayqy42602/article/details/109066342
到此这篇关于“Go之开发小功能集合(viper获取配置信息,test编写测试单元,用户目录获取,JWT安全校验,字符串去重,Swag...”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!您可能感兴趣的文章:
Go之开发小功能集合(viper获取配置信息,test编写测试单元,用户目录获取,JWT安全校验,字符串去重,Swag...
Golang库集合
使用 Go 添加文档
Golang 实现JWT认证
Go语言爱好者周刊:第 78 期 — 这道关于 goroutine 的题
Go语言的几大优势和特性
golang之JWT实现
学习单元测试,告别祈祷式编程
高并发秒杀项目总结笔记(Golang, Redis, lua)
JWT 在 Gin 中的使用