教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Go之开发小功能集合(viper获取配置信息,test编写测试单元,用户目录获取,JWT安全校验,字符串去重,Swag...

Go之开发小功能集合(viper获取配置信息,test编写测试单元,用户目录获取,JWT安全校验,字符串去重,Swag...

发布时间:2023-02-19   编辑:jiaochengji.com
教程集为您提供Go之开发小功能集合(viper获取配置信息,test编写测试单元,用户目录获取,JWT安全校验,字符串去重,Swag...等资源,欢迎您收藏本站,我们将为您提供最新的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 中的使用

[关闭]
~ ~