提示:

该链接是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 testimport ("fmt""testing"
)func TestHello(t *testing.T){fmt.Println("Hello World!")
}

上面是简单的test测试,如果进行性能测试的话就要使用testing.B, 不过和testing.T不同的是函数名称需要以Benchmark为开头:

使用说明: 自带N测试次数,是动态的不需要设置,系统会根据代码稳定性进行测试测试:

// 性能测试
func Benchmark1(t *testing.B) {u := U{name: "Tom",age:  20,}for i := 0; i < t.N; i++ {
// 里面写具体的业务测试函数_,err:=json.Marshal(u)if err!=nil {fmt.Println(err)}//fmt.Println(S)}}

测试结果:  (最后的10257645就是执行的次数,  114就是花费的ns时间)

goos: windows
goarch: amd64
pkg: test/testNew
Benchmark1
Benchmark1-12           10257645               114 ns/op
PASS

3.  go-homedir用户路径检索工具(获取用户根目录)

package mainimport (
"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的地址粘贴进去生成字符画,风格还算正常.

实例:

首先在项目的static文件夹下面创建文件例如test.txt;

然后在test.txt中复制上面网站上面生成的自定义图标;类型推荐使用big看起来比较好看。

最后就是在启动代码中添加下面的函数就可以了,下面是go语言的实现方式,Java的类似就是读IO文件流。

 //图标显示content, _ := ioutil.ReadFile("./static/test.txt") //输出图标的字节流fmt.Println(string(content))       

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 = 30TextRedTextGreenTextYellowTextBlueTextMagenta)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方式。TextRedTextGreenTextYellowTextBlueTextMagenta
)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在线接口文档,画字符图像工具,Gin模式的选择,iota枚举,promhttp等)相关推荐

  1. 014-Axios Ajax:前后端分离概述,发送json类型的参数,前后端分离开发:在线接口文档,前端工程化、Element、nginx

    第一节 Ajax概述 1.概述 概念: Asynchronous JavaScript And XML,异步的JavaScript和XML. 作用: 数据交换:通过Ajax可以给服务器发送请求,并获取 ...

  2. 解决调用uni.getLocation获取位置信息,微信高版本用户无法获取位置信息问题

    项目场景: 公司的业务需要涉及到获取用户位置信息,一开始我使用了uni.getLocation来获取用户的位置信息,根据官网api介绍来看只需要调用uni.getLocation方法就能获取位置信息, ...

  3. 强烈推荐 在线接口文档管理工具 小幺鸡 小团队可以省掉测试了

    在朋友那儿看到一个不错的在线文档管理工具 主要特点 : 在线接口测试 在线测试,方便前后端开发,降低错误率. 支持:xml.json.txt.binary.websocket 可视化编辑与分享 可视化 ...

  4. Revit开发小功能集合

    文章目录 1.获取Revit中打开的所有的View(视图) 2.在不打开Revit的情况下读取rvt文件数据 3.获取元素的材质信息 5.编辑族参数(没有成功,后期会更新) 6.访问墙体结构层信息 7 ...

  5. 收藏夹吃灰系列(二):教小师妹通过代码实现Swagger在线接口文档转word文档!教完后...?

    话不多说,工具源码直接分享给大家吧: 如果最后觉得该代码生成器对你有所帮助,请不要吝啬你的赞,直接pia的点亮就完了啦,up up up!!! 如下就是全码,拿走!不谢!!助你趁早解放双手! 本地sw ...

  6. [Golang梦工厂]一个小项目带你学会GIN框架、JWT鉴权、swagger生成接口文档,看这一篇就够了

    前言 哈喽,大家好,我是asong,这是我的第八篇原创文章.听说你们还不会jwt.swagger,所以我带来一个入门级别的小项目.实现用户登陆.修改密码的操作.使用GIN(后台回复Golang梦工厂: ...

  7. 开发接口文档_更优更稳更好,看文档驱动开发模式在AIMS中的优势

    ​[摘要]程序员常会说:我最讨厌别人写的代码没有文档,我也最讨厌自己需要写文档. 有一个很老的梗: 我最讨厌别人写的代码没有文档,我也最讨厌自己需要写文档. 有这种想法的程序员应该算是一个老鸟了,对于 ...

  8. vue后端必须接口吗_前后端分离模式,后端说开发完才能给接口文档,合理吗

    背景: 汇总了下老王在其他平台的原创回复,欢迎关注老王原创公众号[软件老王],关注不迷路. 一.后端开发完接口才给出接口文档,合理吗? 本人所在的项目组做项目过程中,后端不会先给出接口文档,而是要等他 ...

  9. 智表ZCELL产品V1.4.0开发API接口文档 与 产品功能清单

    为了方便大家使用ZCELL,应网友要求,整理编写了相关文档,现与产品一起同步发布,供大家下载使用,使用过程中如有疑问,请与我QQ联系. 智表(ZCELL)V1.4.0版本  功能清单文档下载地址: 功 ...

最新文章

  1. 最权威北美放射学会年会回顾:AI的进化与下一个前沿
  2. python编程 从入门到实践怎么样-python编程从入门到实践这本书怎么样
  3. LiveVideoStack线上分享第五季(五):用FFmpeg搭建基于CNN的视频分析方案
  4. Eclipse中显示文件字符乱码
  5. mondrain配置mysql_mondrian 4.7 源码部署(示例代码)
  6. [JavaWeb-CSS]CSS概述
  7. 网页中文乱码--UTF-8和GB2312互转
  8. 为什么用python写爬虫_零基础,是怎么开始写Python爬虫的
  9. 在android的jni线程C传回调函数给java
  10. Java虚拟机(三)垃圾标记算法与Java对象的生命周期
  11. 判断用户输入的是数字还是字符串
  12. Linux打印全部的内容,linux提取指定列字符并打印所有内容(awk)
  13. 【Kubernetes】k8s使用stargz光速分发镜像
  14. 台式WIN7和os x yosemite 10.10.1懒人版双系统安装教程
  15. 2006-10-30 18:37:00 著名Linux内核程序员大鹰 ox啊
  16. JavaScript 教程「1」:与君初相识
  17. CSS 中 a 标签为什么不能继承父类的颜色?
  18. ArrayDeque(双端队列的线性实现)详解
  19. 转载一位老码农的技术理想
  20. Oracle Database 12c Security - 6. Real Application Security

热门文章

  1. 计算机开机吱吱响,电脑启动运行时里面有吱吱吱的声音是怎么回事?
  2. 如何用Python优雅的登录校园网?
  3. Matlab 画多根线,matlab plot画多条不同颜色的线
  4. 收藏(Flash欣赏类)
  5. PAT 1074 Reversing Linked List——双端队列解法
  6. Apache Spark+PyTorch 案例实战
  7. 前端build工具介绍
  8. tplink 2.4g弱信号剔除_双频路由器,2.4G和5G两个WiFi信号连哪个才好?
  9. liblinear--使用方法
  10. 海康 nvr获取历史视频流