框架开发(一):框架开发-目录介绍和路由设计
1.背景介绍
使用Go开发Web API框架,验证学习成果。在实践中学习。
2.目录介绍
|
|
3. 启动流程

使用Go开发Web API框架,验证学习成果。在实践中学习。
|
|

json-iterator是一款快且灵活的JSON解析器,不但100%兼容标准库encoding/json,而且比其更快。虽然官网说比标准包encoding/json快6倍之多,但是随着Go版本的不断迭代,目前平均比encoding/json快2倍。
Go-funk 是基于反射(reflect )实现的一个现代Go工具库,封装了对slice/map/struct/string等的操作。
|
|
slice)操作funk.Contains: 接收任意类型。funk.ContainsX: X代表具体类型,如:ContainsInt、ContainsString...
|
|
funk.IndexOf: 接收任意类型,不存在则返回-1。funk.IndexOfX: X代表具体类型,不存在则返回-1。
|
|
funk.LastIndexOf: 接收任意类型,不存在则返回-1。funk.LastIndexOfX: X代表具体类型,不存在则返回-1。
|
|
func Every(in interface{}, elements ...interface{}) bool
在pprof的分析中,能够知道一段时间内的CPU占用、内存分配、协程堆栈信息。这些信息都是一段时间内数据的汇总,但是它们并没有提供整个周期内发生的事件,例如指定的Goroutines何时执行、执行了多长时间、什么时候陷入了堵塞、什么时候解除了堵塞、GC如何影响单个Goroutine的执行、STW中断花费的时间是否太长等。这就是在Go1.5之后推出的trace工具的强大之处,它提供了指定时间内程序发生的事件的完整信息,这些事件信息包括:
在pprof的分析中,能够知道一段时间内的CPU占用、内存分配、协程堆栈信息。这些信息都是一段时间内数据的汇总,但是它们并没有提供整个周期内发生的事件,例如指定的Goroutines何时执行、执行了多长时间、什么时候陷入了堵塞、什么时候解除了堵塞、GC如何影响单个Goroutine的执行、STW中断花费的时间是否太长等。这就是在Go1.5之后推出的trace工具的强大之处,它提供了指定时间内程序发生的事件的完整信息,这些事件信息包括:




Go语言中的pprof指对于指标或特征的分析(Profiling),通过分析不仅可以查找到程序中的错误(内存泄漏、race冲突、协程泄漏),也能对程序进行优化(例如CPU利用率不足)。
Go语言中的pprof指对于指标或特征的分析(Profiling),通过分析不仅可以查找到程序中的错误(内存泄漏、race冲突、协程泄漏),也能对程序进行优化(例如CPU利用率不足)。
cobra是一个用来构建现代CLI工具的库。相比flag标准库,它提供更多方便的特性和功能。Cobra 由 Go 项目成员和 hugo 作者 spf13 创建,已经被许多流行的 Go 项目采用,比如 GitHub CLI 和 Docker CLI。