
获得徽章 0
- 学习Redis开发规范。
Redis(Remote Dictionary Server)是一个开源的内存数据库,它被广泛用作缓存系统和键值存储系统。它提供了多种数据结构的支持,包括字符串、哈希、列表、集合和有序集合等。
键值设计:以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如ugc:video:1
value设计:string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000
后面看不懂,这就去用下展开评论点赞 - 学习如何采用测试用例测试函数。
测试函数应该包括以下要求:
一、测试函数的名称以Test开头。
二、测试函数的签名应为func (t *testing.T),其中t是*testing.T类型的参数。这个参数用于报告测试失败或日志信息。
三、测试函数不能有返回值。
满足这些要求在命令行输入go test之后,go查找到测试函数,通过断言语句判断和预期结果是否相符,错误根据Errof语句返回错误地方的信息。展开赞过评论1 - 打卡,对于新版本的Go版本依赖模式,没有必要一定要在src目录下创建源码。可以采用go mod init加上模块名称初始化模块。
go会自动查找依赖包和依赖关系写入gomod中。而下载的第三方包放在pkg目录底下。当项目放在src里面的时候。会根据GO111MODULE选择的形式来处理包依赖的关系。
init生成的gomod名称可以在调用自己项目内包的时候使用。具体使用方法:import模块名+路径即可。
那么有一个问题,为什么现在Goland依旧有src文件的存在。以及大家都普遍把源码放入src里面展开评论点赞 - 学习0值,空值,空结构的概念。
零值是指当你声明变量(分配内存)并未显式初始化时,始终为你的变量自动设置一个默认初始值的策略。以下是自动赋的值:
对于值类型是布尔"false",数值0,字符串""。
对于引用类型是nil包括指针 pointer,函数 function,接口 interface,切片 slice,管道 channel,映射 map。
nil 是 Golang 中预先声明的标识符,其主要用来表示引用类型的零值(指针,接口,函数,映射,切片和通道),表示它们未初始化的值。nil没有默认类型不能直接定义。
其中对于interfac()也是完全不确定类型的。(Type,Value)
var p *int // (T=*int,V=nil)
var i interface{} // (T=nil,V=nil)
fmt.Println(p == i) // (T=*int, V=nil) == (T=nil, V=nil) -> false
struct表示空结构,空结构不占内存
1. 使用 chan struct{} 代替 chan bool 在 goroutines 之间传递信号。使用 bool 容易让人不理解该值,true or false,但是使用 chan struct{} 就很清楚,我们不在乎值,只关心发生的事儿,更容易表达清楚一些。
2. 为了防止 unkeyed 初始化结构,可以添加 _ struct {} 字段:展开评论点赞 - [阅读打卡]
jsoniter是一款Json解释器。可以将构造完的结构体转换成json格式。转换速度比官方快6倍+。性能快速原因包括如下:采用字节流直接计算int值而非通过剪切字符串实现。重用切片而并非创造新的字节保存字段名称。评论点赞 - #青训营 x 字节后端训练营# 打卡第十一天,今天看了二叉树的内容。二叉树是一种树形数据结构,它的每个节点最多有两个子节点,左子节点和右子节点。二叉树的特点是具有唯一的根节点,并且每个节点最多有两个子节点。二叉树被广泛应用于计算机科学中,例如搜索算法,排序算法和编译器等领域。评论点赞
- #青训营 x 字节后端训练营# 打卡第八天。学习MYSQL技术。MySQL是一种关系型数据库管理系统,它是开源的并且广泛使用。MySQL支持在各种操作系统中运行,包括Windows、Unix和Linux等。 MySQL的主要优势包括高性能、可靠性和可扩展性。 使用MySQL可以快速有效地存储、检索和管理数据。 MySQL支持SQL语言,这是一种用于管理和查询数据库的标准语言。MySQL也支持存储过程、触发器、视图等高级功能,可用于更复杂的数据库应用程序。展开评论点赞