掘友等级
获得徽章 0
#青训营 x 字节后端训练营# day14
RPC 是远程过程调用的缩写(Remote Procedure Call),是分布式系统中不同节点间流行的通信方式; Protobuf 支持多种不同的语言(甚至不支持的语言也可以扩展支持),其本身特性也非常方便描述服务的接口(也就是方法列表),因此非常适合作为 RPC 世界的接口交流语言
#青训营 x 字节后端训练营# day13
text/template和html/template等模板包,提供了一个将变量值填充到一个文本或HTML格式的模板的机制,可以将格式化代码分离出来以便更安全地修改
#青训营 x 字节后端训练营# day12
JSON是对JavaScript中各种类型的值——字符串、数字、布尔值和对象——Unicode本文编码。它可以用有效可读的方式表示第三章的基础数据类型和本章的数组、slice、结构体和map等聚合数据类型
#青训营 x 字节后端训练营# day11
Gin 特性
快速:路由不使用反射,基于Radix树,内存占用少。
中间件:HTTP请求,可先经过一系列中间件处理,例如:Logger,Authorization,GZIP等。这个特性和 NodeJs 的 Koa 框架很像。中间件机制也极大地提高了框架的可扩展性。
异常处理:服务始终可用,不会宕机。Gin 可以捕获 panic,并恢复。而且有极为便利的机制处理HTTP请求过程中发生的错误。
JSON:Gin可以解析并验证请求的JSON。这个特性对Restful API的开发尤其有用。
路由分组:例如将需要授权和不需要授权的API分组,不同版本的API分组。而且分组可嵌套,且性能不受影响。
渲染内置:原生支持JSON,XML和HTML的渲染
#青训营 x 字节后端训练营# day10
瀑布模型(Waterfall Model)最早强调软件或系统开发应有完整之周期,且必须完整的经历周期之每一开发阶段,并系统化的考量分析与设计的技术、时间与资源之投入等。
#青训营 x 字节后端训练营# day9
无论我们是使用接收者类型的值来调用这个方法,还是使用接收者类型值的指针来调用这个 方法,编译器都会正确地引用或者解引用对应的值
如果通过接口类型的值调用方法,规则有很大不同
- 使用指针作为接收者声明的方法,只能在接口类型的值是一个指针的时 候被调用
- 使用值作为接收者声明的方法,在接口类型的值为值或者指针时,都可以被调用
#青训营 x 字节后端训练营# day8
duck type——如果它叫起来像鸭子,那它可能就是只鸭子
如果一个类型实现了一个接口的所有方法,那么这个类型的实 例就可以存储在这个接口类型的实例中,不需要额外声明
#青训营 x 字节后端训练营# day7
golang语法最后一节,读文件
使用绝对路径:
将文件路径作为命令行参数:导入flag包,flag.String(flag名字,默认值,描述)
将文件与可执行文件绑定在一起:导入embed包,使用//go:embed xxx读取xxx的内容并将xxx赋给下边的变量(导入包时用_"")
#青训营 x 字节后端训练营# day6
【一阶函数】允许函数被赋值给变量
匿名函数:可以赋给函数变量,也可以直接调用,可以传参
定义函数类型
高阶函数:满足 作为参数传递给其他函数,或作为其他函数的返回值
闭包:访问 在函数体外部定义的变量 的匿名函数,每个闭包都和它自己周围的变量绑定
#青训营 x 字节后端训练营# day5
对于程序中出现的大多数异常情况,errors就足够了,但也有一些情况,程序在出现异常情况后无法继续执行,这时,我们使用panic来提前终止程序
- 当函数遇到panic时,执行将停止,所有defer函数都将执行,然后控制返回到caller
如果存在defer调用,则执行defer调用后再返回控制到其调用方,直到到达顶级调用方再打印panic
- 这个过程一直持续到当前goroutine的所有函数都返回,此时程序打印出panic信息和stack trace信息,最后终止
- 可以使用recover重新控制panic程序
只有在defer函数内部调用时,recover才有效
通过恢复正常执行来停止panic序列,并检索传递给panic函数调用的错误消息
如果在deferred函数之外调用recover,它将不会停止panic序列
下一页